forked from espressif/esp-modbus
freemodbus: potential loss of significant bits and auto merge issues
* Original commit: espressif/esp-idf@9457555173
This commit is contained in:
@ -184,7 +184,7 @@ eMBFuncReadHoldingRegister( UCHAR * pucFrame, USHORT * usLen )
|
|||||||
usRegAddress++;
|
usRegAddress++;
|
||||||
|
|
||||||
usRegCount = ( USHORT )( pucFrame[MB_PDU_FUNC_READ_REGCNT_OFF] << 8 );
|
usRegCount = ( USHORT )( pucFrame[MB_PDU_FUNC_READ_REGCNT_OFF] << 8 );
|
||||||
usRegCount = ( USHORT )( pucFrame[MB_PDU_FUNC_READ_REGCNT_OFF + 1] );
|
usRegCount |= ( USHORT )( pucFrame[MB_PDU_FUNC_READ_REGCNT_OFF + 1] );
|
||||||
|
|
||||||
/* Check if the number of registers to read is valid. If not
|
/* Check if the number of registers to read is valid. If not
|
||||||
* return Modbus illegal data value exception.
|
* return Modbus illegal data value exception.
|
||||||
|
@ -384,7 +384,7 @@ static esp_err_t mbc_tcp_master_set_request(char* name, mb_param_mode_t mode, mb
|
|||||||
continue; // The length of strings is different then check next record in the table
|
continue; // The length of strings is different then check next record in the table
|
||||||
}
|
}
|
||||||
// Compare the name of parameter with parameter key from table
|
// Compare the name of parameter with parameter key from table
|
||||||
uint8_t comp_result = memcmp((const char*)name, (const char*)reg_ptr->param_key, (size_t)param_key_len);
|
int comp_result = memcmp((const void*)name, (const void*)reg_ptr->param_key, (size_t)param_key_len);
|
||||||
if (comp_result == 0) {
|
if (comp_result == 0) {
|
||||||
// The correct line is found in the table and reg_ptr points to the found parameter description
|
// The correct line is found in the table and reg_ptr points to the found parameter description
|
||||||
request->slave_addr = reg_ptr->mb_slave_addr;
|
request->slave_addr = reg_ptr->mb_slave_addr;
|
||||||
|
Reference in New Issue
Block a user