void ConnectTask() { if (IsInConnected) return; IsInConnected = true; while (true) { while (RTUDevice == null || !RTUDevice.connected) { try { Console.WriteLine(this.ControlID + " Connecting!"); RTUDevice = new Master(); RTUDevice.connect(IP, (ushort)Port); RTUDevice.OnResponseData += RTUDevice_OnResponseData; RTUDevice.OnException += RTUDevice_OnException; } catch (Exception ex) { Console.WriteLine(ex.Message + "," + ex.StackTrace); continue; ; } finally { System.Threading.Thread.Sleep(1000); } Console.WriteLine("connected!"); } System.Threading.Thread.Sleep(1000); } IsInConnected = false; }
void ConnectTask() { if (IsInConnected) return; IsInConnected = true; while (true) { while (RTUDevice == null || !RTUDevice.connected || reading_fail_cnt>5) { try { try { if (RTUDevice != null) { RTUDevice.disconnect(); RTUDevice.Dispose(); } } catch { ;} finally { reading_fail_cnt = 0; } Console.WriteLine(this.PDName + " Connecting!"); RTUDevice = new Master(); RTUDevice.connect(IP, (ushort)Port); RTUDevice.OnResponseData += RTUDevice_OnResponseData; RTUDevice.OnException += RTUDevice_OnException; Console.WriteLine("connected!"); } catch (Exception ex) { Console.WriteLine(ex.Message + "," + ex.StackTrace); continue; ; } finally { System.Threading.Thread.Sleep(5000); } } System.Threading.Thread.Sleep(1000); } IsInConnected = false; }