Browse Source

修正modbus接收数据时接收不完 一包完整的包的BUG

disinfection_machine
zhaohe 2 years ago
parent
commit
f3b003e904
  1. 6
      core/components/modbus/modbus.cpp

6
core/components/modbus/modbus.cpp

@ -1,4 +1,5 @@
#include "modbus.hpp" #include "modbus.hpp"
#include "iflytopcpp/core/components/stringutils.hpp" #include "iflytopcpp/core/components/stringutils.hpp"
extern "C" { extern "C" {
@ -151,11 +152,10 @@ int ModbusMaster::modbus10(uint8_t deviceid, uint16_t startreg, uint16_t regnum,
* : * :
* add(1)+0x10(1)+startreg(2)+regnum(2)+crc(2) * add(1)+0x10(1)+startreg(2)+regnum(2)+crc(2)
* *
* ADD+0x90+ErrorCode还是ADD+0x10+
* *
*/ */
uint8_t rxbuf[3] = {0};
int rxsize = 3;
uint8_t rxbuf[8] = {0};
int rxsize = 8;
ret = uartdev->receive((char*)rxbuf, rxsize, overtime); ret = uartdev->receive((char*)rxbuf, rxsize, overtime);
if (ret != rxsize) { if (ret != rxsize) {
logger->error("modbus10(d {},reg {}:{})::receive_packet_safe fail", deviceid, startreg, regnum); logger->error("modbus10(d {},reg {}:{})::receive_packet_safe fail", deviceid, startreg, regnum);

Loading…
Cancel
Save