Я пытаюсь создать простой клиент mqtt и подписаться на определенный топи c. Мне нужно взять полезную нагрузку (полученное сообщение) из функции подписки.
Полезная нагрузка - это строковая переменная, содержащая в Json следующий формат:
WorkOrder Request
{"siteNumber":"client2780","testNumber":"1004","vehicle":{"make":"Dummy","model":"Vehicle","vrm":"ABC 123V","vin":"12345678901234567","vehicleClass":"4","firstRegistrationDate":"2016-12-20","fuelType":"PETROL"},"workOrderState":"COMPLETE"}
К сожалению, я не могу использовать пример версии C ++ SDK AWS, потому что я ' Я использую RAD Studio для создания моего приложения. Вместо этого я использую версию Amazon Embedded C, чтобы сделать ее кросс-совместимой с Embarcadero IDE.
Это была моя попытка, но вместо строки полезной нагрузки показывается ключ клиента, который требуется при попытке показать полезную нагрузку:
// Subscribing
IOT_INFO("Subscribing...");
rc = aws_iot_mqtt_subscribe(&client, "mot/in/client2780", 17, QOS0, iot_subscribe_callback_handler, NULL);
ShowMessage(rc);
if(SUCCESS != rc)
{
IOT_ERROR("Error subscribing : %d ", rc);
}
// Display PayLoad on screen
paramsQOS0.payload = (void *) sPayload; // Showing client key instead of payload string
char * sp = &sPayload[100];
ShowMessage(sp);