Создание клиента mqtt и подписка на Amazon AWS Embedded C SDK - PullRequest
1 голос
/ 21 января 2020

Я пытаюсь создать простой клиент 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);

enter image description here

...