static int deviceMethodCallback()

in mxdevice/Device/MXDeviceDemo.ino [75:110]


static int deviceMethodCallback(const char *methodName, const unsigned char *payload, int size, unsigned char **response, int *response_size)
{
  LogInfo("Try to invoke method %s", methodName);
  const char *responseMessage = "\"Successfully invoke device method\"";
  int result = 200;
  
  if (strcmp(methodName, DIRECT_METHOD_NAME) == 0)
  {
    messageReceived = true;

    char *temp = (char *)malloc(size + 1);
    memcpy(temp, payload, size);
    temp[size] = '\0';

    if (temp != NULL)
    {
      Screen.init();
      Screen.print(0, "NEW MESSAGE!");
      Screen.print(2, temp);
    }

    free(temp);
  }
  else
  {
    LogInfo("No method %s found", methodName);
    responseMessage = "\"No method found\"";
    result = 404;
  }

  *response_size = strlen(responseMessage);
  *response = (unsigned char *)malloc(*response_size);
  strncpy((char *)(*response), responseMessage, *response_size);

  return result;
}