SerialPortUtilityProConfiger.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using System;
  5. using System.IO;
  6. using System.Text;
  7. using Newtonsoft.Json;
  8. /// <summary>
  9. /// 通常来说设置产品的VID/PID就足以识别硬件了
  10. /// 填入序列号将导致识别唯一
  11. /// </summary>
  12. public class SerialPortUtilityProConfiger : MonoBehaviour
  13. {
  14. public static SerialPortUtilityProConfiger Instance;
  15. #region Path
  16. private string spupConfigPath = $"{Application.streamingAssetsPath}/configs/serialportutilityproconfig.json";
  17. #endregion
  18. #region Value
  19. public List<DeviceInfoData> DeviceInfoDatas;
  20. #endregion
  21. // ==================================================
  22. private void Awake()
  23. {
  24. Instance = this;
  25. Init();
  26. }
  27. // ==================================================
  28. private void Init()
  29. {
  30. ReadConfig();
  31. return;
  32. }
  33. private void ReadConfig()
  34. {
  35. string ssupSettingJson = File.ReadAllText(spupConfigPath, Encoding.UTF8);
  36. Dictionary<string, List<string>> dic = JsonConvert.DeserializeObject<Dictionary<string, List<string>>>(ssupSettingJson);
  37. List<string> DeviceInfos = dic["device_info"];
  38. for (int i = 0; i < DeviceInfos.Count; i++)
  39. {
  40. DeviceInfoData tempDID = new DeviceInfoData();
  41. string[] infoSlice = DeviceInfos[i].Split('_');
  42. tempDID.VendorID = infoSlice[0];
  43. tempDID.ProductID = infoSlice[1];
  44. tempDID.SerialNumber = infoSlice[2];
  45. DeviceInfoDatas.Add(tempDID);
  46. }
  47. return;
  48. }
  49. // ==================================================
  50. public string GetDeviceVendorID(int index)
  51. {
  52. return DeviceInfoDatas[index].VendorID;
  53. }
  54. public string GetDeviceProductID(int index)
  55. {
  56. return DeviceInfoDatas[index].ProductID;
  57. }
  58. public string GetDeviceSerialNumber(int index)
  59. {
  60. return DeviceInfoDatas[index].SerialNumber;
  61. }
  62. }
  63. [Serializable]
  64. public class DeviceInfoData
  65. {
  66. public string VendorID;
  67. public string ProductID;
  68. public string SerialNumber;
  69. }