|
|
@@ -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);
|
|
|
|