Forráskód Böngészése

Fix exception caused by skypump recivemessage length && socket don't connect

hecl 11 hónapja%!(EXTRA string=óta)
szülő
commit
4109b056f2

+ 2 - 1
Venus/Framework/Common/Communications/AsyncSocketDevice.cs

@@ -180,9 +180,10 @@ namespace MECF.Framework.Common.Communications
             {
                 lock (_locker)
                 {
+                    if(_socket.Connected)
                     // Convert the string data to byte data using ASCII encoding.     
                     //byte[] byteData = Encoding.ASCII.GetBytes(data);
-                    _socket.BeginSend(byteData, 0, byteData.Length, 0, new AsyncCallback(SendCallback), _socket);
+                       _socket.BeginSend(byteData, 0, byteData.Length, 0, new AsyncCallback(SendCallback), _socket);
 
                     //LOG.Info(string.Format("Communication {0}:{1:D} Send {2}.", _ip, _port, data.TrimEnd('\n').TrimEnd('\r')));
                 }

+ 7 - 1
Venus/Venus_MainPages/Unity/CommonFunction.cs

@@ -18,7 +18,13 @@ namespace Venus_MainPages.Unity
             {
                 try
                 {
-                    return (T)Convert.ChangeType(RtDataValues[str], typeof(T));
+                    if(RtDataValues[str]!=null)
+                        return (T)Convert.ChangeType(RtDataValues[str], typeof(T));
+                    else
+                    {
+                        return default(T);
+                    }
+                    
                 }
                 catch
                 {

+ 4 - 1
Venus/Venus_RT/Devices/SkyPump.cs

@@ -304,7 +304,10 @@ namespace Venus_RT.Devices
                 _timerReceiveStatus.Stop();
                 _timerReceiveStatus.Start(CHK_REC_INTERVAL);
                 _trigReceiveStatus.RST = true;
-
+                if (obj.Length<2) 
+                {
+                    return;
+                }
 
                 if (obj[0] == 0x40 && obj[1] == 0x30)
                 {