Explorar el Código

fflush for debug, buffersize increased

Reinhard Russinger hace 6 años
padre
commit
a469374ff0
Se han modificado 2 ficheros con 5 adiciones y 1 borrados
  1. 3 1
      src/modbus-rtu.c
  2. 2 0
      src/modbus.c

+ 3 - 1
src/modbus-rtu.c

@@ -269,7 +269,7 @@ static void _modbus_rtu_ioctl_rts(modbus_t *ctx, int on)
 
 
 ssize_t _modbus_rtu_write_n_read(modbus_t *ctx, const uint8_t *req, int req_length) {
 ssize_t _modbus_rtu_write_n_read(modbus_t *ctx, const uint8_t *req, int req_length) {
  ssize_t w, r, i;
  ssize_t w, r, i;
- uint8_t rb[req_length];
+ uint8_t rb[512];
 
 
  // Transmit
  // Transmit
  w = write(ctx->s, req, req_length);
  w = write(ctx->s, req, req_length);
@@ -282,6 +282,7 @@ ssize_t _modbus_rtu_write_n_read(modbus_t *ctx, const uint8_t *req, int req_leng
   for (i = 0; i < r; ++i)
   for (i = 0; i < r; ++i)
   fprintf(stderr, "|%02X|", rb[i]);
   fprintf(stderr, "|%02X|", rb[i]);
   fprintf(stderr, "\n");
   fprintf(stderr, "\n");
+  fflush(stderr);
  }
  }
 
 
  return w;
  return w;
@@ -413,6 +414,7 @@ static int _modbus_rtu_check_integrity(modbus_t *ctx, uint8_t *msg,
         if (ctx->debug) {
         if (ctx->debug) {
             fprintf(stderr, "ERROR CRC received 0x%0X != CRC calculated 0x%0X\n",
             fprintf(stderr, "ERROR CRC received 0x%0X != CRC calculated 0x%0X\n",
                     crc_received, crc_calculated);
                     crc_received, crc_calculated);
+            fflush(stderr);
         }
         }
 
 
         if (ctx->error_recovery & MODBUS_ERROR_RECOVERY_PROTOCOL) {
         if (ctx->error_recovery & MODBUS_ERROR_RECOVERY_PROTOCOL) {

+ 2 - 0
src/modbus.c

@@ -174,6 +174,7 @@ static int send_msg(modbus_t *ctx, uint8_t *msg, int msg_length)
         for (i = 0; i < msg_length; i++)
         for (i = 0; i < msg_length; i++)
             printf("[%.2X]", msg[i]);
             printf("[%.2X]", msg[i]);
         printf("\n");
         printf("\n");
+        fflush(stdout);
     }
     }
 
 
     /* In recovery mode, the write command will be issued until to be
     /* In recovery mode, the write command will be issued until to be
@@ -427,6 +428,7 @@ int _modbus_receive_msg(modbus_t *ctx, uint8_t *msg, msg_type_t msg_type)
             int i;
             int i;
             for (i=0; i < rc; i++)
             for (i=0; i < rc; i++)
                 printf("<%.2X>", msg[msg_length + i]);
                 printf("<%.2X>", msg[msg_length + i]);
+            fflush(stdout);
         }
         }
 
 
         /* Sums bytes received */
         /* Sums bytes received */