SPUPDeviceList.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using System;
  5. public class SPUPDeviceList : MonoBehaviour
  6. {
  7. //SPUP
  8. List<SerialPortUtility.SerialPortUtilityPro> spList = new List<SerialPortUtility.SerialPortUtilityPro>();
  9. public int baudrate = 115200;
  10. public SerialPortUtility.SerialPortUtilityPro.OpenSystem openMode = SerialPortUtility.SerialPortUtilityPro.OpenSystem.USB;
  11. public UnityEngine.UI.Text nodeviceText = null;
  12. // Use this for initialization
  13. void Awake()
  14. {
  15. //Because processing of plugin carries out by start, it is necessary to generate by Awake.
  16. SerialPortUtility.SerialPortUtilityPro.DeviceInfo[] devicelist =
  17. SerialPortUtility.SerialPortUtilityPro.GetConnectedDeviceList(openMode);
  18. if (devicelist == null)
  19. return;
  20. foreach (SerialPortUtility.SerialPortUtilityPro.DeviceInfo d in devicelist)
  21. {
  22. //serialPort = new SerialPortUtility.SerialPortUtilityPro(); //do not use
  23. String GameObjectName = "NONE";
  24. if (openMode == SerialPortUtility.SerialPortUtilityPro.OpenSystem.USB)
  25. GameObjectName = "VID:" + d.Vendor + ", PID:" + d.Product;
  26. else if (openMode == SerialPortUtility.SerialPortUtilityPro.OpenSystem.BluetoothSSP)
  27. GameObjectName = d.SerialNumber;
  28. else if (openMode == SerialPortUtility.SerialPortUtilityPro.OpenSystem.PCI)
  29. GameObjectName = d.Vendor;
  30. GameObject obj = new GameObject(GameObjectName);
  31. SerialPortUtility.SerialPortUtilityPro serialPort = obj.AddComponent<SerialPortUtility.SerialPortUtilityPro>();
  32. //Debug.Log(d.PortName); //Get PortName
  33. //config
  34. serialPort.SetDebugConsoleMonitorView(true);
  35. serialPort.OpenMethod = openMode;
  36. serialPort.VendorID = d.Vendor;
  37. serialPort.ProductID = d.Product;
  38. serialPort.SerialNumber = d.SerialNumber;
  39. serialPort.BaudRate = baudrate; //115200kbps
  40. serialPort.ReadProtocol = SerialPortUtility.SerialPortUtilityPro.MethodSystem.Streaming;
  41. serialPort.RecvDiscardNull = true;
  42. serialPort.IsAutoOpen = false;
  43. spList.Add(serialPort);
  44. nodeviceText.enabled = false;
  45. }
  46. }
  47. void OnDestory()
  48. {
  49. foreach (SerialPortUtility.SerialPortUtilityPro item in spList)
  50. {
  51. item.Close();
  52. }
  53. }
  54. // Update is called once per frame
  55. void Update ()
  56. {
  57. if (Input.GetKey(KeyCode.Home) || Input.GetKey(KeyCode.Escape) || Input.GetKey(KeyCode.Menu))
  58. {
  59. Application.runInBackground = false;
  60. Application.Quit();
  61. return;
  62. }
  63. }
  64. //for
  65. public void ReadComprateString(object data)
  66. {
  67. var text = data as string;
  68. Debug.Log(text);
  69. }
  70. }