Protocols

[中文]

JSON

Removed Built-in JSON Component

The built-in json component has been removed from ESP-IDF. Users should migrate to using the espressif/cjson component from the IDF Component Manager.

Migration Steps

  1. Remove json from CMakeLists.txt

    In your component's CMakeLists.txt, remove json from the REQUIRES or PRIV_REQUIRES list:

    # Before
    idf_component_register(SRCS "main.c"
                           PRIV_REQUIRES json esp_http_server)
    
    # After
    idf_component_register(SRCS "main.c"
                           PRIV_REQUIRES esp_http_server)
    
  2. Add espressif/cjson to idf_component.yml

    Add the espressif/cjson dependency to your component's idf_component.yml file. If this file doesn't exist, create it in your component directory (e.g., main/idf_component.yml):

    dependencies:
      espressif/cjson: "^1.7.19"
    
  3. No Code Changes Required

    The API remains the same. Your existing code using cJSON functions will continue to work without modifications:

    #include "cJSON.h"
    
    // Existing code works unchanged
    cJSON *root = cJSON_Parse(json_string);
    cJSON *item = cJSON_GetObjectItem(root, "key");
    cJSON_Delete(root);
    

For more information:

ESP-TLS

Removed Deprecated API

The deprecated esp_tls_conn_http_new() function has been removed. Use either:

The new API requires you to create the esp_tls_t structure using esp_tls_init() and provides better control over the connection process.

ESP-Modbus

The Espressif ESP-Modbus Library (esp-modbus) supports Modbus communication in the networks based on RS485, Wi-Fi, and Ethernet interfaces.

The component esp-modbus v2 (v2.x.x) is the current supported component version:

Documentation

Application Examples

Since ESP-IDF version v6.0, the examples for component esp-modbus v1 which is obsolete have been removed from ESP-IDF.

The examples below demonstrate the ESP-Modbus library of serial and TCP ports for both slave and master implementations respectively.

  • mb_serial_slave - demonstrates how to use ESP32 as a Modbus serial slave device with the esp-modbus stack, enabling an external Modbus host to read and write device parameters using the Modbus protocol.

  • mb_serial_master - demonstrates how to use the esp-modbus stack port on ESP32 as a Modbus serial master device, capable of reading and writing values from slave devices in a Modbus segment.

  • mb_tcp_slave - demonstrates the esp-modbus TCP slave stack port, allowing an external Modbus host to read and write device parameters via the Modbus protocol.

  • mb_tcp_master - demonstrates how to use the esp-modbus stack port on ESP32 as a Modbus TCP master device, capable of reading and writing values from slave devices in a Modbus network.

Please refer to the README.md documents of each specific example for details.

Discussions


Was this page helpful?