// using System; // using System.IO.Ports; // using GeneralTools; // using UnityEngine; // public class SerialPortSender : MonoBehaviour // { // public static SerialPortSender Instance { get; private set; } // private SerialPort serialPort; // // 端口号根据你的实际设备设置(如 "COM3") // string portName = "COM1"; // int baudRate = 9600; // void Awake() // { // Instance = this; // portName = ConfigHelper.PortName; // baudRate = ConfigHelper.BaudRate; // OpenSerialPort(); // } // void OnApplicationQuit() // { // CloseSerialPort(); // } // public void OpenSerialPort() // { // try // { // serialPort = new SerialPort(portName, baudRate, Parity.None, 8, StopBits.One); // serialPort.Open(); // serialPort.ReadTimeout = 1000; // serialPort.WriteTimeout = 1000; // Debug.Log("串口打开成功"); // } // catch (Exception e) // { // Debug.LogError("串口打开失败: " + e.Message); // } // } // public void CloseSerialPort() // { // if (serialPort != null && serialPort.IsOpen) // { // serialPort.Close(); // Debug.Log("串口关闭"); // } // } // /// // /// 发送十六进制命令,例如 "FF 01 02" // /// // public void SendHexCommand(string hexCommand) // { // if (serialPort == null || !serialPort.IsOpen) // { // Debug.LogWarning("串口未打开!"); // return; // } // try // { // byte[] buffer = HexStringToBytes(hexCommand); // serialPort.Write(buffer, 0, buffer.Length); // Debug.Log("发送指令: " + hexCommand); // } // catch (Exception ex) // { // Debug.LogError("发送失败: " + ex.Message); // } // } // private byte[] HexStringToBytes(string hex) // { // string[] hexValues = hex.Trim().Split(' '); // byte[] bytes = new byte[hexValues.Length]; // for (int i = 0; i < hexValues.Length; i++) // { // bytes[i] = Convert.ToByte(hexValues[i], 16); // } // return bytes; // } // }