Browse Source

上传,更改连接发送

zhouw 3 weeks ago
parent
commit
e997e745fd

BIN
build/CMakeFiles/app_XHHW.dir/src/goose_HW.c.o


BIN
build/CMakeFiles/app_XHHW.dir/src/modbus_TCP_HW.c.o


BIN
build/app_XHHW


+ 1 - 1
src/goose_HW.c

@@ -202,7 +202,7 @@ static int goose_HW_ShuntdownRequest_send(goose_HW_t* dev, ShutdownRequest_t* pd
     dev->needsCommission = false;
     dev->confRev = 1;
 
-    printd("goose:%p, ST:%d, SQ:%d, reason:%hd\n", dev, dev->stNum, dev->sqNum, dev->shutdown_request.reason);
+    //printd("goose:%p, ST:%d, SQ:%d, reason:%hd\n", dev, dev->stNum, dev->sqNum, dev->shutdown_request.reason);
 
     gettimeofday(&dev->timestamp, NULL);
     index0 = goose_HW_encode_ShuntdownRequest(dev, buff0, index0, pdu);

+ 30 - 1
src/modbus_TCP_HW.c

@@ -378,6 +378,35 @@ int modbus_TCP_connect(modbus_TCP_t* dev)
     return ret;
 }
 
+int modbus_TCP_connect1(modbus_TCP_t* dev)
+{
+    int ret =0;
+    if (dev && dev->fd <= 0)
+    {
+        sleep(10);
+        pthread_mutex_lock(&dev->mutex);
+        dev->fd = create_inet_stream_socket(dev->serverip, dev->port, '4', 0);
+        printd("dev->fd:%d\n", dev->fd);
+        if (dev->ssl_enable)
+        {
+            ret = modbus_TCP_init_SSL(dev);
+            
+        }else{
+            dev->ctx = NULL;
+            dev->ssl = NULL;
+            ret = dev->fd;
+        }
+        // if (dev->fd > 0)
+        // {
+        //     int flags = fcntl(dev->fd , F_GETFL);
+        //     flags |= O_NONBLOCK;
+        //     fcntl(dev->fd , F_SETFL, flags);
+        // }
+        pthread_mutex_unlock(&dev->mutex);
+    }
+    return ret;
+}
+
 int modbus_TCP_recv_with_timeout(modbus_TCP_t* dev, int timeout)
 {
     int ret, readb;
@@ -846,7 +875,7 @@ void* modbus_TCP_loop(void* argv)
 
         while(dev->quit == 0)
         {
-            modbus_TCP_connect(dev);
+            modbus_TCP_connect1(dev);
 
             modbus_TCP_recv_with_timeout(dev, 1000);