yangxingliang 1 год назад
Родитель
Сommit
030d4a0ae3

+ 17 - 16
Assets/BowArrow/Scripts/ArrowSerialPort.cs

@@ -20,17 +20,19 @@ public class ArrowSerialPort : MonoBehaviour
         }
     }
 
-    private void LOG(string msg)
+    private void LOG(string msg, bool warning = false)
     {
-        Debug.Log($"<color=#00FF00>{msg}</color>");
+        if (!warning)
+            Debug.Log($"<color=#00FF00>{msg}</color>");
+        else
+            Debug.LogWarning($"<color=#00FF00>{msg}</color>");
     }
-    
+
     private void Init()
     {
         _isInit[gameObject.name] = GetInstanceID();
-        serialPortUtility = gameObject.GetComponent<SerialPortUtilityPro>();
-        serialPortUtility.IsAutoOpen = false;
 #if UNITY_ANDROID && !UNITY_EDITOR
+        serialPortUtility = gameObject.GetComponent<SerialPortUtilityPro>();
         serialPortUtility.OpenMethod = openMode;
         serialPortUtility.DeviceName = PortName;
         serialPortUtility.BaudRate = baudrate;
@@ -50,7 +52,7 @@ public class ArrowSerialPort : MonoBehaviour
 
     private void TrySerialOpenPort()
     {
-        serialPortUtility.Open();
+        serialPortUtility?.Open();
     }
 
     private void SystemEventObject(SerialPortUtilityPro arg0, string msg)
@@ -60,7 +62,7 @@ public class ArrowSerialPort : MonoBehaviour
 #if UNITY_ANDROID && !UNITY_EDITOR
             Invoke("TrySerialOpenPort", 1f);
 #endif
-            LOG($"{PortName} 串口打开失败 重试中");
+            LOG($"{PortName} 串口打开失败 重试中", true);
         }
         else if (msg.Equals("OPENED"))
         {
@@ -80,8 +82,8 @@ public class ArrowSerialPort : MonoBehaviour
         if (_isInit.TryGetValue(gameObject.name, out var instanceID) && instanceID == GetInstanceID())
         {
             LOG($"{PortName} 串口关闭");
-            SerialPortHelper.ins.OnDisConnect(serialPortUtility.DeviceName);
-            serialPortUtility.Close();
+            SerialPortHelper.ins.OnDisConnect(serialPortUtility?.DeviceName);
+            serialPortUtility?.Close();
             _isInit.Remove(gameObject.name);
         }
     }
@@ -139,7 +141,7 @@ public class ArrowSerialPort : MonoBehaviour
         data[2] = 0x05;//长度
         data[3] = 0x85;//异或校验
         data[4] = 0x55;//结束码
-        serialPortUtility.Write(data.ToArray());
+        serialPortUtility?.Write(data.ToArray());
     }
     #endregion
     
@@ -164,19 +166,18 @@ public class ArrowSerialPort : MonoBehaviour
             {
                 case 0x01:
                     UserSettings.ins.selectDevicesName = "HOUYI Pro";
+                    DevicesHolder.ins.SwitchDeviceByType(AimDeviceType.HOUYIPRO);
                     break;
                 case 0x02:
                     UserSettings.ins.selectDevicesName = "ARTEMIS Pro";
+                    DevicesHolder.ins.SwitchDeviceByType(AimDeviceType.ARTEMISPRO);
                     break;
                 case 0x03:
-                    UserSettings.ins.selectDevicesName = "Pistol 1";
+                    UserSettings.ins.selectDevicesName = "Pistol M9";
+                    DevicesHolder.ins.SwitchDeviceByType(AimDeviceType.Gun);
                     break;
             }
-            //0x01 移动手机
-            //0x02 PC电脑
-            //0x03 VR设备
-            var systemType = bytes[4];//系统类型
-
+            
             //刷新界面
             var setting = FindAnyObjectByType<CustomUIView.BoxUserSettings>();
             setting?.FlushDeviceSelect();

+ 10 - 15
Assets/BowArrow/Scripts/SerialPortExample.cs

@@ -45,17 +45,13 @@ public class SerialPortExample : MonoBehaviour
     private void Init()
     {
         _isInit[gameObject.name] = GetInstanceID();
-        serialPortUtility = gameObject.GetComponent<SerialPortUtilityPro>();
-        serialPortUtility.IsAutoOpen = false;
 #if UNITY_ANDROID && !UNITY_EDITOR
+        serialPortUtility = gameObject.GetComponent<SerialPortUtilityPro>();
         serialPortUtility.OpenMethod = openMode;
         serialPortUtility.DeviceName = PortName;
         serialPortUtility.StopBit = SerialPortUtilityPro.StopBitEnum.OneBit;
         serialPortUtility.DataBit = SerialPortUtilityPro.DataBitEnum.EightBit;
         serialPortUtility.Open();
-        //serialPortUtility.ReadCompleteEventObject.AddListener(ReadStreamingBinary);
-        //byte[] datas = new byte[8] { 0xAA, 0x08, 0x04, 0x01, 0x00, 0x00, 0x3C, 0xBB };
-        //serialPortUtility.Write(datas);
 
         LOG($"{PortName} 串口打开");
         if (PortName.Contains("/dev/ttyS0"))
@@ -65,6 +61,9 @@ public class SerialPortExample : MonoBehaviour
             //拉取后台数据
             ReqSettingData();
         }
+#endif
+#if UNITY_EDITOR
+        TestBackUrl();
 #endif
     }
 
@@ -157,7 +156,7 @@ public class SerialPortExample : MonoBehaviour
         }
         response.Add(temp);//校验位
         Debug.LogError($"responseCheck={responseCheck}  tempResponseCheck={tempResponseCheck} data ={data} dataIndex={dataIndex}  temp={temp}");
-        serialPortUtility.Write(response.ToArray());
+        serialPortUtility?.Write(response.ToArray());
 
         if (data == 0X01)
             StandaloneAPI.InsertCoint(bytes[6]);
@@ -181,7 +180,7 @@ public class SerialPortExample : MonoBehaviour
         byte temp = (byte)(request[1] ^ request[2]);
         request.Add(temp);//校验 (校验 = 命令 ^ 数据长度)
         request.Add(0x55);//结束
-        serialPortUtility.Write(request.ToArray());
+        serialPortUtility?.Write(request.ToArray());
         LOG($"请求后台数据!");
     }
 
@@ -281,7 +280,7 @@ public class SerialPortExample : MonoBehaviour
         request.Add(temp);
         //数据包结束------------------------->(1个字节)->55
         request.Add(0x55);//结束
-        serialPortUtility.Write(request.ToArray());
+        serialPortUtility?.Write(request.ToArray());
         LOG($"请求保存后台数据!");
     }
 
@@ -392,12 +391,8 @@ public class SerialPortExample : MonoBehaviour
         LOG($"请求后台支付URL");
         byte[] datas = new byte[7] { 0xAA, 0x55, 0x04, dataIndex, 0xAA, 0x01, 0xAE };
         datas[6] = GetXor(datas);
-        serialPortUtility.Write(datas);
+        serialPortUtility?.Write(datas);
         Invoke("CheckURLBack", 5f);
-
-#if UNITY_EDITOR
-        TestBackUrl();
-#endif
     }
 
     private void CheckURLBack()
@@ -459,7 +454,7 @@ public class SerialPortExample : MonoBehaviour
         List<byte> s = new List<byte>(bytes);
         s.RemoveAt(index);
         bytes = s.ToArray();
-        serialPortUtility.Write(bytes);
+        serialPortUtility?.Write(bytes);
     }
 
     byte GetXor(byte[] btyes)
@@ -476,7 +471,7 @@ public class SerialPortExample : MonoBehaviour
         if (_isInit.TryGetValue(gameObject.name, out var instanceID) && instanceID == GetInstanceID())
         {
             LOG($"{PortName} 串口程序被销毁");
-            serialPortUtility.Close();
+            serialPortUtility?.Close();
             _isInit.Remove(gameObject.name);
         }
     }

+ 1 - 1
Assets/Game_Hyperspace/StompyRobot/SRDebugger/Scripts/Settings.cs

@@ -572,7 +572,7 @@ namespace SRDebugger
 
         #region Serialization
 
-        [SerializeField] private bool _isEnabled = false;
+        [SerializeField] private bool _isEnabled = true;
 
         [SerializeField] private bool _disableWelcomePopup = false;