mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
35 lines
1.6 KiB
ReStructuredText
35 lines
1.6 KiB
ReStructuredText
|
.. _modbus_api_port_initialization:
|
||
|
|
||
|
Modbus Port Initialization
|
||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
|
|
||
|
The ESP_Modbus supports Modbus SERIAL and TCP ports and a port must be initialized before calling any other Modbus API. The functions below are used to create and then initialize Modbus controller interface (either master or slave) over a particular transmission medium (either Serial or TCP/IP):
|
||
|
|
||
|
- :cpp:func:`mbc_slave_init`
|
||
|
- :cpp:func:`mbc_master_init`
|
||
|
- :cpp:func:`mbc_slave_init_tcp`
|
||
|
- :cpp:func:`mbc_master_init_tcp`
|
||
|
|
||
|
The API call uses the first parameter to recognize the type of port being initialized. Supported enumeration for different ports: :cpp:enumerator:`MB_PORT_SERIAL_MASTER`, :cpp:enumerator:`MB_PORT_SERIAL_SLAVE` accordingly.
|
||
|
The parameters :cpp:enumerator:`MB_PORT_TCP_MASTER`, :cpp:enumerator:`MB_PORT_TCP_SLAVE` are reserved for internal usage.
|
||
|
|
||
|
.. code:: c
|
||
|
|
||
|
void* master_handler = NULL; // Pointer to allocate interface structure
|
||
|
// Initialization of Modbus master for serial port
|
||
|
esp_err_t err = mbc_master_init(MB_PORT_SERIAL_MASTER, &master_handler);
|
||
|
if (master_handler == NULL || err != ESP_OK) {
|
||
|
ESP_LOGE(TAG, "mb controller initialization fail.");
|
||
|
}
|
||
|
|
||
|
This example code to initialize slave port:
|
||
|
|
||
|
.. code:: c
|
||
|
|
||
|
void* slave_handler = NULL; // Pointer to allocate interface structure
|
||
|
// Initialization of Modbus slave for TCP
|
||
|
esp_err_t err = mbc_slave_init_tcp(&slave_handler);
|
||
|
if (slave_handler == NULL || err != ESP_OK) {
|
||
|
// Error handling is performed here
|
||
|
ESP_LOGE(TAG, "mb controller initialization fail.");
|
||
|
}
|