SerialPortUtilityProStorage.cs 1.9 KB

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