using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using System.IO; using System.Text; using Newtonsoft.Json; /// /// 通常来说设置产品的VID/PID就足以识别硬件了 /// 填入序列号将导致识别唯一 /// 仅读取配置 /// public class SerialPortUtilityProConfiger : MonoBehaviour { public static SerialPortUtilityProConfiger Instance; #region Path private string spupConfigPath = $"{Application.streamingAssetsPath}/configs/serialportutilityproconfig.json"; #endregion #region Value [SerializeField] private List deviceInfoDatas; #endregion // ================================================== private void Awake() => Init(); // ================================================== private void Init() { Instance = this; ReadConfig(); return; } private void ReadConfig() { string ssupSettingJson = File.ReadAllText(spupConfigPath, Encoding.UTF8); Dictionary> dic = JsonConvert.DeserializeObject>>(ssupSettingJson); List DeviceInfos = dic["device_info"]; for (int i = 0; i < DeviceInfos.Count; i++) { DeviceInfoData tempDID = new DeviceInfoData(); string[] infoSlice = DeviceInfos[i].Split('_'); if (infoSlice.Length == 3) { tempDID.VendorID = infoSlice[0]; tempDID.ProductID = infoSlice[1]; tempDID.SerialNumber = infoSlice[2]; } else { tempDID.VendorID = infoSlice[0]; tempDID.ProductID = infoSlice[1]; tempDID.SerialNumber = null; } deviceInfoDatas.Add(tempDID); } return; } // ================================================== public string GetDeviceVendorID(int index) { return deviceInfoDatas[index].VendorID; } public string GetDeviceProductID(int index) { return deviceInfoDatas[index].ProductID; } public string GetDeviceSerialNumber(int index) { return deviceInfoDatas[index].SerialNumber; } // ================================================== #region Value [Serializable] public class DeviceInfoData { public string VendorID; public string ProductID; public string SerialNumber; } #endregion }