1
0

SerialPortUtilityProManager.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. namespace PomellatoPomPomDotHeartbeat
  9. {
  10. /// <summary>
  11. /// 通常来说设置产品的VID/PID就足以识别硬件了
  12. /// 填入序列号将导致识别唯一
  13. /// </summary>
  14. public class SerialPortUtilityProStorage : MonoBehaviour
  15. {
  16. public static SerialPortUtilityProStorage Instance;
  17. #region Path
  18. private string ssupSettingPath = Application.streamingAssetsPath + "/SerialPortUtilityProSetting.json";
  19. #endregion
  20. #region Value
  21. public List<DeviceInfoData> DeviceInfoDatas;
  22. #endregion
  23. // ==================================================
  24. private void Awake()
  25. {
  26. Instance = this;
  27. }
  28. private void Start()
  29. {
  30. Init();
  31. }
  32. // ==================================================
  33. private void Init()
  34. {
  35. string ssupSettingJson = File.ReadAllText(ssupSettingPath, Encoding.UTF8);
  36. Dictionary<string, List<string>> dic = JsonConvert.DeserializeObject<Dictionary<string, List<string>>>(ssupSettingJson);
  37. List<string> DeviceInfos = dic["DeviceInfo"];
  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. public string GetDeviceVendorID(int index)
  50. {
  51. return DeviceInfoDatas[index].VendorID;
  52. }
  53. public string GetDeviceProductID(int index)
  54. {
  55. return DeviceInfoDatas[index].ProductID;
  56. }
  57. public string GetDeviceSerialNumber(int index)
  58. {
  59. return DeviceInfoDatas[index].SerialNumber;
  60. }
  61. }
  62. [Serializable]
  63. public class DeviceInfoData
  64. {
  65. public string VendorID;
  66. public string ProductID;
  67. public string SerialNumber;
  68. }
  69. }