Updated on 2024-10-12 GMT+08:00

Codec Definition

IoTDA uses codecs to convert data between the binary and JSON formats as well as between JSON formats.

In the NB-IoT scenario, a codec can decode binary data reported by a device into the JSON format for the application to read, and encode the commands delivered by the application into the binary format for the device to understand and execute. CoAP is used for communications between NB-IoT devices and the IoT platform. The payload of CoAP messages carries data at the application layer, at which the data type is defined by the devices. As NB-IoT devices require low power consumption, data at the application layer is generally in binary format instead of JSON. However, the platform sends data in JSON format to applications. Therefore, codec development is required for the platform to convert data between binary and JSON formats.

Data Reporting

Figure 1 Codecs for data reporting

In the data reporting process, the codec is used in the following scenarios:

  • Decoding binary data reported by a device into JSON data and sending the decoded data to an application
  • Encoding JSON data returned by an application into binary data that can be identified by the device and sending the encoded data to a device

Command Delivery

Figure 2 Codec usage in command delivery

In the command delivery process, the codec is used in the following scenarios:

  • Encoding JSON data delivered by an application into binary data and sending the encoded data to a device
  • Decoding binary data returned by a device into JSON data and reporting the decoded data to an application

Graphical Development and Script-based Development

The platform provides three methods for developing codecs.