diff --git a/modbus/mb_controller/common/include/esp_modbus_master.h b/modbus/mb_controller/common/include/esp_modbus_master.h index 2558df3..75349f3 100644 --- a/modbus/mb_controller/common/include/esp_modbus_master.h +++ b/modbus/mb_controller/common/include/esp_modbus_master.h @@ -133,10 +133,11 @@ typedef enum { PARAM_SIZE_FLOAT = 0x04, /*!< Float 32 size */ PARAM_SIZE_ASCII = 0x08, /*!< ASCII size default*/ PARAM_SIZE_ASCII24 = 0x18, /*!< ASCII24 size */ + PARAM_SIZE_ASCII_MAX = 0xFF, /*!< ASCII maximum size */ PARAM_SIZE_I64 = 0x08, /*!< Signed integer 64 size */ PARAM_SIZE_U64 = 0x08, /*!< Unsigned integer 64 size */ PARAM_SIZE_DOUBLE = 0x08, /*!< Double 64 size */ - PARAM_MAX_SIZE + PARAM_SIZE_MAX = 0x7FFF } mb_descr_size_t; /** @@ -169,7 +170,7 @@ typedef struct { uint16_t mb_size; /*!< Size of mb parameter in registers */ uint32_t param_offset; /*!< Parameter name (OFFSET in the parameter structure or address of instance) */ mb_descr_type_t param_type; /*!< Float, U8, U16, U32, ASCII, etc. */ - mb_descr_size_t param_size; /*!< Number of bytes in the parameter. */ + size_t param_size; /*!< Number of bytes in the parameter. */ mb_parameter_opt_t param_opts; /*!< Parameter options used to check limits and etc. */ mb_param_perms_t access; /*!< Access permissions based on mode */ } mb_parameter_descriptor_t; diff --git a/test_apps/cpp/modbus_serial_cpp_test/main/serial_test.cpp b/test_apps/cpp/modbus_serial_cpp_test/main/serial_test.cpp index 39f0a4f..66b3261 100644 --- a/test_apps/cpp/modbus_serial_cpp_test/main/serial_test.cpp +++ b/test_apps/cpp/modbus_serial_cpp_test/main/serial_test.cpp @@ -16,7 +16,8 @@ enum { // Enumeration of all supported CIDs for device (used in parameter definition table) enum { - CID_DEV_REG0 = 0 + CID_DEV_REG0 = 0, + CID_DEV_STRING }; #define STR(fieldname) ((const char*)( fieldname )) @@ -26,11 +27,13 @@ static void *pmaster_handle = nullptr; static void *pslave_handle = nullptr; // Example Data (Object) Dictionary for Modbus parameters -const mb_parameter_descriptor_t dummy_dict[] = { +constexpr mb_parameter_descriptor_t dummy_dict[] = { // CID, Name, Units, Modbus addr, register type, Modbus Reg Start Addr, Modbus Reg read length, // Instance offset (NA), Instance type, Instance length (bytes), Options (NA), Permissions { CID_DEV_REG0, STR("MB_hold_reg-0"), STR("Data"), MB_DEVICE_ADDR1, MB_PARAM_HOLDING, 0, 1, 0, PARAM_TYPE_U16, PARAM_SIZE_U16, OPTS( 0,0,0 ), PAR_PERMS_READ_WRITE_TRIGGER }, + { CID_DEV_STRING, STR("MB_hold_reg string"), STR("String"), MB_DEVICE_ADDR1, MB_PARAM_HOLDING, 2, 30, + 0, PARAM_TYPE_ASCII, 60, OPTS( 0,0,0 ), PAR_PERMS_READ_WRITE_TRIGGER } }; // Calculate number of parameters in the table