SerialPortTest.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using TMPro;
  5. using Unity.VisualScripting;
  6. using UnityEngine;
  7. using UnityEngine.UI;
  8. public class SerialPortTest : MonoBehaviour
  9. {
  10. public Button SendButton;
  11. public Button ArrowButton;
  12. public TMP_InputField InputField;
  13. private ArrowSerialPort targetPort;
  14. public TMP_InputField PortInputField;
  15. public SerialPortExample[] SerialPortExampleGroup;
  16. private void OnEnable()
  17. {
  18. PortInputField.text = "1";
  19. InputField.text = string.Empty;
  20. SendButton.onClick.AddListener(OnSendPortData);
  21. DontDestroyOnLoad(this);
  22. targetPort = GameObject.FindObjectOfType<ArrowSerialPort>();
  23. ArrowButton.onClick.AddListener(OnShoot);
  24. }
  25. private void OnShoot()
  26. {
  27. List<byte> data = new List<byte>();
  28. data.Add(0xaa);
  29. data.Add(0x81);
  30. data.Add(0x07);
  31. data.Add(0x1f);
  32. data.Add(0x24);
  33. data.Add(0xbd);
  34. data.Add(0x55);
  35. targetPort?.TestRead(data.ToArray());
  36. }
  37. private void OnSendPortData()
  38. {
  39. SerialPortExampleGroup = FindObjectsOfType<SerialPortExample>();
  40. var portIndex = int.Parse(PortInputField.text);
  41. var msg = InputField.text;
  42. List<byte> data = new List<byte>();
  43. var strs = msg.Split(' ');
  44. for (int i = 0; i < strs.Length; i++)
  45. {
  46. data.Add(Convert.ToByte(strs[i], 16));
  47. }
  48. switch (portIndex)
  49. {
  50. case 0://묶숫눔왯
  51. targetPort.TestRead(data.ToArray());
  52. break;
  53. case 4://尻귑분綾
  54. foreach (var item in SerialPortExampleGroup)
  55. {
  56. if (item.name.Contains("com4"))
  57. {
  58. item.PrintFrame(data.ToArray());
  59. break;
  60. }
  61. }
  62. break;
  63. case 6://尻귑샙
  64. foreach (var item in SerialPortExampleGroup)
  65. {
  66. if (item.name.Contains("com6"))
  67. {
  68. break;
  69. }
  70. }
  71. break;
  72. }
  73. }
  74. private void Update()
  75. {
  76. if (Input.GetKeyDown(KeyCode.Space))
  77. {
  78. AimHandler.ins.ExitIntoEvent();
  79. }
  80. }
  81. }