Merge branch 'bugfix/fix_data_shift_issue' into 'master'

bugfix next message shifting

See merge request idf/esp-modbus!31
This commit is contained in:
Alex Lisitsyn
2023-02-22 21:54:23 +08:00
2 changed files with 120 additions and 110 deletions

View File

@ -174,9 +174,11 @@ static esp_err_t mbc_serial_master_send_request(mb_param_request_t* request, voi
MB_MASTER_CHECK((data_ptr != NULL),
ESP_ERR_INVALID_ARG, "mb incorrect data pointer.");
eMBMasterReqErrCode mb_error = MB_MRE_NO_REG;
eMBMasterReqErrCode mb_error = MB_MRE_MASTER_BUSY;
esp_err_t error = ESP_FAIL;
if (xMBMasterRunResTake(MB_RESPONSE_TICS)) {
uint8_t mb_slave_addr = request->slave_addr;
uint8_t mb_command = request->command;
uint16_t mb_offset = request->reg_start;
@ -186,6 +188,8 @@ static esp_err_t mbc_serial_master_send_request(mb_param_request_t* request, voi
mbm_opts->mbm_reg_buffer_ptr = (uint8_t*)data_ptr;
mbm_opts->mbm_reg_buffer_size = mb_size;
vMBMasterRunResRelease();
// Calls appropriate request function to send request and waits response
switch(mb_command)
{
@ -235,6 +239,7 @@ static esp_err_t mbc_serial_master_send_request(mb_param_request_t* request, voi
mb_error = MB_MRE_NO_REG;
break;
}
}
// Propagate the Modbus errors to higher level
switch(mb_error)

View File

@ -255,9 +255,11 @@ static esp_err_t mbc_tcp_master_send_request(mb_param_request_t* request, void*
MB_MASTER_CHECK((request != NULL), ESP_ERR_INVALID_ARG, "mb request structure.");
MB_MASTER_CHECK((data_ptr != NULL), ESP_ERR_INVALID_ARG, "mb incorrect data pointer.");
eMBMasterReqErrCode mb_error = MB_MRE_NO_REG;
eMBMasterReqErrCode mb_error = MB_MRE_MASTER_BUSY;
esp_err_t error = ESP_FAIL;
if (xMBMasterRunResTake(MB_RESPONSE_TIMEOUT)) {
uint8_t mb_slave_addr = request->slave_addr;
uint8_t mb_command = request->command;
uint16_t mb_offset = request->reg_start;
@ -267,6 +269,8 @@ static esp_err_t mbc_tcp_master_send_request(mb_param_request_t* request, void*
mbm_opts->mbm_reg_buffer_ptr = (uint8_t*)data_ptr;
mbm_opts->mbm_reg_buffer_size = mb_size;
vMBMasterRunResRelease();
// Calls appropriate request function to send request and waits response
switch(mb_command)
{
@ -317,6 +321,7 @@ static esp_err_t mbc_tcp_master_send_request(mb_param_request_t* request, void*
mb_error = MB_MRE_NO_REG;
break;
}
}
// Propagate the Modbus errors to higher level
switch(mb_error)