| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using System;
- using System.IO;
- using System.Text;
- using Newtonsoft.Json;
- /// <summary>
- /// 通常来说设置产品的VID/PID就足以识别硬件了
- /// 填入序列号将导致识别唯一
- /// 仅读取配置
- /// </summary>
- public class SerialPortUtilityProConfiger : MonoBehaviour
- {
- public static SerialPortUtilityProConfiger Instance;
- #region Path
- private string spupConfigPath = $"{Application.streamingAssetsPath}/configs/serialportutilityproconfig.json";
- #endregion
- #region Value
- [SerializeField] private List<DeviceInfoData> deviceInfoDatas;
- #endregion
- // ==================================================
- private void Awake() => Init();
- // ==================================================
- private void Init()
- {
- Instance = this;
- ReadConfig();
- return;
- }
- private void ReadConfig()
- {
- string ssupSettingJson = File.ReadAllText(spupConfigPath, Encoding.UTF8);
- Dictionary<string, List<string>> dic = JsonConvert.DeserializeObject<Dictionary<string, List<string>>>(ssupSettingJson);
- List<string> 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
- }
|