using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using System.Text; using SerialPortUtility; public class SerialPortUtilityProManager : MonoBehaviour { public static SerialPortUtilityProManager Instance; private SerialPortUtilityPro serialPortUtilityPro; // ============================== private void Awake() { Instance = this; } private void Start() { Init(); } // ============================== private void Init() { serialPortUtilityPro = GetComponent(); return; } // ============================== /// /// /// /// 设备序号 public void LoadPortInfo(int portInfoIndex) { serialPortUtilityPro.VendorID = SerialPortUtilityProStorage.Instance.GetDeviceVendorID(portInfoIndex); serialPortUtilityPro.ProductID = SerialPortUtilityProStorage.Instance.GetDeviceProductID(portInfoIndex); serialPortUtilityPro.SerialNumber = SerialPortUtilityProStorage.Instance.GetDeviceSerialNumber(portInfoIndex); return; } /// /// 串口开关 /// /// public void SwitchSerialPortUtilityPro(bool value) { if (value) { serialPortUtilityPro.Open(); } else { serialPortUtilityPro.Close(); } return; } // ============================== // 发包 /// /// 发送信号给设备 /// /// /// public void SendMessage2Device(string value) { // byte[] data = OutMessageProcessing(value); // serialPortUtilityPro.Write(data); serialPortUtilityPro.Write(Encoding.ASCII.GetBytes(value)); // 插件 Debug.Log("SerialPort Send: " + value); return; } // ============================== // 收包 /// /// 读原流 /// 配合SerialPortUtilityPro使用 /// /// public void ReadStreaming(object streaming) { Debug.Log("Arduino Recive: " + streaming); string stringRawData = streaming.ToString(); InMessageProcessing(stringRawData); return; } /// /// 读二进制流 /// 配合SerialPortUtilityPro使用 /// /// public void ReadBinaryStreaming(object byteData) { Debug.Log(byteData); string stringRawData = BitConverter.ToString((byte[])byteData); // 比特流翻译 Debug.Log("Arduino Recive: " + stringRawData.Replace('-', ' ')); InMessageProcessing(stringRawData); return; } private void InMessageProcessing(string value) { int resultValue; bool canTrans = int.TryParse(value, out resultValue); if (!canTrans) // 转换失败 { return; } return; } }