Is there a porting guide from older version (202002 and 201906) to the last one 202012?

Hi @EyalG,

We do not have a porting guide for the move to the current APIs, although we have included a compatibility layer to allow you to use the latest version with your current API calls.

For the move to the latest MQTT, I can provide some information on equivalent structures and functions for the move from the older MQTT API (v4 of the Embedded C SDK) to the current one:

Removed Features:

  • Taskpool
    Version 4 uses a taskpool for scheduling MQTT operations in the background. Version 202011.00 and subsequent releases do not spawn any threads and have no need for a taskpool.
  • Thread support
    Version 4 relies on a platform’s threading capabilities for multi-threading use cases. Version 202011.00 and subsequent releases do not spawn any threads and therefore, do not require the use of a platform’s multithreading. If threading support or connection sharing is desired, please see our connection sharing demo for an example of using the MQTT library in a multithreaded environment.

Data Types:

Version 4 Version 202011.00 and subsequent releases Notes
IotMqttQos_t MQTTQoS_t MQTT Quality of service.
IotMqttError_t MQTTStatus_t Return codes of API functions.
IotMqttConnection_t MQTTContext_t MQTT connection handle.
IotMqttPublishInfo_t MQTTPublishInfo_t Parameters of an MQTT publish.
IotMqttConnectInfo_t MQTTConnectInfo_t Parameters of an MQTT connect.
IotMqttSubscription_t None Version 202011.00 and subsequent releases leave subscription tracking to the application.
IotMqttPacketInfo_t MQTTPacketInfo_t MQTTDeserializedInfo_t Deserialized MQTT Packet information.
IotMqttCallbackInfo_t MQTTEventCallback_t Function pointer of application callback to receive incoming data.

Functions:

Version 4 Version 202011.00 and subsequent releases Notes
IotMqtt_Init MQTT_Init In v4, this function initializes the entire library. In 202011.00 and subsequent releases, it initializes a single client.
IotMqtt_Cleanup None 202011.00 and subsequent releases does not allocate any memory and therefore, has nothing to free.
IotMqtt_Connect MQTT_Connect
IotMqtt_PublishAsync IotMqtt_PublishSync MQTT_Publish From the perspective of the v4 library, all of version 202011.00’s publishes are asynchronous. To receive any expected acknowledgment packet, MQTT_ProcessLoop must be called.
IotMqtt_SubscribeAsync IotMqtt_SubscribeSync MQTT_Subscribe From the perspective of the v4 library, all of version 202011.00’s subscribe operations are asynchronous. To receive the acknowledgment packet, MQTT_ProcessLoop must be called.
IotMqtt_UnsubscribeAsync IotMqtt_UnsubscribeSync MQTT_Unsubscribe From the perspective of the v4 library, all of version 202011.00’s unsubscribe operations are asynchronous. To receive the acknowledgment packet, MQTT_ProcessLoop must be called.
IotMqtt_Disconnect MQTT_Disconnect
None MQTT_ProcessLoop MQTT_ReceiveLoop is the equivalent function without any keep-alive mechanism.

Let us know if you need any further assistance in migrating to the latest version