Przeglądaj źródła

examples: change max register area size to maximum value

esp-idf/components/freemodbus/modbus_controller/modbus_controller.c: The MB_INST_MAX_SIZE is changed to max value=(65535*2);
Update support for coils read into freemodbus.c;

TW#28143
Closes https://github.com/espressif/esp-idf/issues/2884
aleks 7 lat temu
rodzic
commit
e3a786f2cf

+ 1 - 1
components/freemodbus/Kconfig

@@ -22,7 +22,7 @@ config MB_SERIAL_BUF_SIZE
     default 256
     default 256
     help
     help
         Modbus serial task RX and TX buffer size for UART driver initialization.
         Modbus serial task RX and TX buffer size for UART driver initialization.
-        This buffer is used for modbus frame transfer. The Modbus protocol maximum 
+        This buffer is used for Modbus frame transfer. The Modbus protocol maximum 
         frame size is 256 bytes. Bigger size can be used for non standard implementations.
         frame size is 256 bytes. Bigger size can be used for non standard implementations.
         
         
 config MB_SERIAL_TASK_PRIO
 config MB_SERIAL_TASK_PRIO

+ 1 - 1
components/freemodbus/modbus_controller/mbcontroller.h

@@ -26,7 +26,7 @@
 
 
 /* ----------------------- Defines ------------------------------------------*/
 /* ----------------------- Defines ------------------------------------------*/
 #define MB_INST_MIN_SIZE                    (2) // The minimal size of Modbus registers area in bytes
 #define MB_INST_MIN_SIZE                    (2) // The minimal size of Modbus registers area in bytes
-#define MB_INST_MAX_SIZE                    (2048) // The maximum size of Modbus area in bytes
+#define MB_INST_MAX_SIZE                    (65535 * 2) // The maximum size of Modbus area in bytes
 
 
 #define MB_CONTROLLER_STACK_SIZE            (CONFIG_MB_CONTROLLER_STACK_SIZE) // Stack size for Modbus controller
 #define MB_CONTROLLER_STACK_SIZE            (CONFIG_MB_CONTROLLER_STACK_SIZE) // Stack size for Modbus controller
 #define MB_CONTROLLER_PRIORITY              (CONFIG_MB_SERIAL_TASK_PRIO - 1) // priority of MB controller task
 #define MB_CONTROLLER_PRIORITY              (CONFIG_MB_SERIAL_TASK_PRIO - 1) // priority of MB controller task

+ 2 - 1
examples/protocols/modbus_slave/main/freemodbus.c

@@ -129,7 +129,8 @@ void app_main()
         mb_event_group_t event = mbcontroller_check_event((MB_EVENT_HOLDING_REG_WR
         mb_event_group_t event = mbcontroller_check_event((MB_EVENT_HOLDING_REG_WR
                                                         | MB_EVENT_INPUT_REG_RD
                                                         | MB_EVENT_INPUT_REG_RD
                                                         | MB_EVENT_HOLDING_REG_RD
                                                         | MB_EVENT_HOLDING_REG_RD
-                                                        | MB_EVENT_DISCRETE_RD));
+                                                        | MB_EVENT_DISCRETE_RD
+                                                        | MB_EVENT_COILS_RD));
         // Filter events and process them accordingly
         // Filter events and process them accordingly
         if((event & MB_EVENT_HOLDING_REG_WR) || (event & MB_EVENT_HOLDING_REG_RD)) {
         if((event & MB_EVENT_HOLDING_REG_WR) || (event & MB_EVENT_HOLDING_REG_RD)) {
             // Get parameter information from parameter queue
             // Get parameter information from parameter queue