فهرست منبع

modbus rtu tcp debug port

chenbin 5 سال پیش
والد
کامیت
aee36d33a1
4فایلهای تغییر یافته به همراه10 افزوده شده و 9 حذف شده
  1. 1 1
      inc/small_modbus.h
  2. 1 0
      port_rtos/modbus_rtu_rtos.c
  3. 4 4
      src/small_modbus_rtu.c
  4. 4 4
      src/small_modbus_tcp.c

+ 1 - 1
inc/small_modbus.h

@@ -49,7 +49,7 @@ enum exceptionsCode{
 enum returnCode
 {
     MODBUS_EXCEPTION = -0x80,
-    MODBUS_ERROR_READ = 0x00,
+    MODBUS_ERROR_READ = -8,
     MODBUS_FAIL_CHECK = -7,
     MODBUS_FAIL_ADRR = -6,
     MODBUS_FAIL_POLL = -5,

+ 1 - 0
port_rtos/modbus_rtu_rtos.c

@@ -165,6 +165,7 @@ static int rtu_write(small_modbus_t *smb,uint8_t *data, uint16_t length)
     if(config->rts_set)
         config->rts_set(smb,0);
 
+		rt_thread_mdelay(smb->write_timeout);
     if(smb->debug_level == 2)
     {
         int i;

+ 4 - 4
src/small_modbus_rtu.c

@@ -119,12 +119,12 @@ int _rtu_check_wait_poll(small_modbus_t *smb,uint8_t *buff,int length)
     uint16_t crc_recv = (buff[length - 2] << 8) | buff[length - 1];
     if (crc_cal != crc_recv)
     {
-        smb->port->debug(smb,0,"crc  0x%0X != 0x%0X\n",crc_cal, crc_recv);
+        modbus_debug_error(smb,"crc  0x%0X != 0x%0X\n",crc_cal, crc_recv);
         return MODBUS_FAIL_CHECK;
     }
     if (addr != smb->slave_addr && addr != MODBUS_BROADCAST_ADDRESS)
     {
-        smb->port->debug(smb,0,"slave adrr: 0x%0X != 0x%0X\n", addr,smb->slave_addr);
+        modbus_debug_error(smb,"slave adrr: 0x%0X != 0x%0X\n", addr,smb->slave_addr);
         return MODBUS_FAIL_ADRR;
     }
     return length;
@@ -137,12 +137,12 @@ int _rtu_check_wait_confirm(small_modbus_t *smb,uint8_t *buff,int length)
     uint16_t crc_recv = (buff[length - 2] << 8) | buff[length - 1];
     if (crc_cal != crc_recv)
     {
-        smb->port->debug(smb,0,"crc  0x%0X != 0x%0X\n",crc_cal, crc_recv);
+        modbus_debug_error(smb,"crc  0x%0X != 0x%0X\n",crc_cal, crc_recv);
         return MODBUS_FAIL_CHECK;
     }
     if (addr != smb->slave_addr && addr != MODBUS_BROADCAST_ADDRESS)
     {
-        smb->port->debug(smb,0,"slave adrr: 0x%0X != 0x%0X\n", addr,smb->slave_addr);
+        modbus_debug_error(smb,"slave adrr: 0x%0X != 0x%0X\n", addr,smb->slave_addr);
         return MODBUS_FAIL_ADRR;
     }
     return length;

+ 4 - 4
src/small_modbus_tcp.c

@@ -97,12 +97,12 @@ int _tcp_check_wait_poll(small_modbus_t *smb,uint8_t *buff,int length)
                 return length;
             }else
             {
-                smb->port->debug(smb,0,"slave adrr: 0x%0X != 0x%0X\n", addr,smb->slave_addr);
+                modbus_debug_error(smb,"slave adrr: 0x%0X != 0x%0X\n", addr,smb->slave_addr);
                 return MODBUS_FAIL_ADRR;
             }
         }
     }
-    smb->port->debug(smb,0,"not is modbus tcp data\n");
+    modbus_debug_error(smb,"not is modbus tcp data\n");
     return MODBUS_FAIL_CHECK;
 }
 
@@ -123,13 +123,13 @@ int _tcp_check_wait_confirm(small_modbus_t *smb,uint8_t *buff,int length)
                     return length;
                 }else
                 {
-                    smb->port->debug(smb,0,"slave adrr: 0x%0X != 0x%0X\n", addr,smb->slave_addr);
+                    modbus_debug_error(smb,"slave adrr: 0x%0X != 0x%0X\n", addr,smb->slave_addr);
                     return MODBUS_FAIL_ADRR;
                 }
             }
         }
     }
-    smb->port->debug(smb,0,"not is modbus tcp data\n");
+    modbus_debug_error(smb,"not is modbus tcp data\n");
     return MODBUS_FAIL_CHECK;
 }