test2.py 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. import asyncio
  2. from test1 import LakiBeamHTTP, Firmware, Monitor, NetWork, OverView, ScanRange, Filter, Host
  3. # 主测试函数
  4. async def main():
  5. laki_http = LakiBeamHTTP(
  6. local_ip="192.168.198.1",
  7. local_port="8080",
  8. web_ip="192.168.8.2",
  9. web_port="80"
  10. )
  11. # 检查 IP 配置
  12. if laki_http.check_ipconfig():
  13. print("IP 配置有效")
  14. else:
  15. print("IP 配置无效,已使用默认值")
  16. # 测试获取固件信息
  17. firmware = Firmware("", "", "", "", "")
  18. if await laki_http.get_firemware(firmware):
  19. print("+------------------+--------------------------------------+\n"
  20. "| Device Information| |\n"
  21. "+------------------+--------------------------------------+\n"
  22. f"| Model | {firmware.model:<38} |\n"
  23. f"| SN | {firmware.sn:<38} |\n"
  24. f"| FPGA | {firmware.fpga:<38} |\n"
  25. f"| Core | {firmware.core:<38} |\n"
  26. f"| Aux | {firmware.aux:<38} |\n"
  27. "+------------------+--------------------------------------+")
  28. else:
  29. print("获取固件信息失败")
  30. # 测试获取监控信息
  31. monitor = Monitor(0.0, 0.0, 0.0)
  32. if await laki_http.get_monitor(monitor):
  33. print("+------------------+--------------------------------------+\n"
  34. "| System Monitor | |\n"
  35. "+------------------+--------------------------------------+\n"
  36. f"| Load Average | {monitor.load_average:<38} |\n"
  37. f"| Mem Usage | {monitor.men_useage}%{' '*(37-len(str(monitor.men_useage)+'%'))} |\n"
  38. f"| Uptime | {monitor.uptime:.2f}s{' ' * (38 - len(f'{monitor.uptime:.2f}s'))} |\n"
  39. "+------------------+--------------------------------------+")
  40. else:
  41. print("获取监控信息失败")
  42. # 测试获取网络信息
  43. network = NetWork(False, "", "", "", False, "", "", 0)
  44. if await laki_http.get_network(network):
  45. print("+------------------+--------------------------------------+\n"
  46. "| Network Information | |\n"
  47. "+------------------+--------------------------------------+\n"
  48. f"| Carrier | {'True' if network.carrier else 'False':<38} |\n"
  49. f"| Duplex | {network.duplex:<38} |\n"
  50. f"| Ethaddr | {network.ethaddr:<38} |\n"
  51. f"| Hostname | {network.hostname:<38} |\n"
  52. f"| Speed | {network.speed:<38} |\n"
  53. "+------------------+--------------------------------------+")
  54. else:
  55. print("获取网络信息失败")
  56. # 测试获取概述信息
  57. overview = OverView(0, 0, False, 0.0, 0, 0, 0, 0, 0, 0, 0, "", 0)
  58. if await laki_http.get_overview(overview):
  59. print("+------------------+--------------------------------------+\n"
  60. "| Overview Information | |\n"
  61. "+------------------+--------------------------------------+\n"
  62. f"| Scan Frequency | {overview.scanfreq:<38} |\n"
  63. f"| Motor RPM | {overview.motor_rpm:<38} |\n"
  64. f"| Laser Enable | {'True' if overview.laser_enable else 'False':<38} |\n"
  65. f"| Resolution | {overview.resolution:<38} |\n"
  66. f"| Scan Range Start | {overview.scan_range_start:<38} |\n"
  67. f"| Scan Range Stop | {overview.scan_range_stop:<38} |\n"
  68. f"| Filter Level | {overview.filter_level:<38} |\n"
  69. f"| Window | {overview.filter_window:<38} |\n"
  70. f"| Min Angle | {overview.filter_min_angle:<38} |\n"
  71. f"| Max Angle | {overview.filter_max_angle:<38} |\n"
  72. f"| Neighbors | {overview.filter_neighbors:<38} |\n"
  73. f"| Host IP | {overview.host_ip:<38} |\n"
  74. f"| Host Port | {overview.host_port:<38} |\n"
  75. "+------------------+--------------------------------------+")
  76. else:
  77. print("获取概述信息失败")
  78. # 测试获取扫描范围
  79. scan_range = ScanRange(0, 0)
  80. if await laki_http.get_scan_range(scan_range):
  81. print("+------------------+--------------------------------------+\n"
  82. "| Scan Range | |\n"
  83. "+------------------+--------------------------------------+\n"
  84. f"| Start | {scan_range.start:<38} |\n"
  85. f"| Stop | {scan_range.stop:<38} |\n"
  86. "+------------------+--------------------------------------+")
  87. else:
  88. print("获取扫描范围失败")
  89. # 测试获取滤波器设置
  90. filter_settings = Filter(0, 0, 0, 0, 0)
  91. if await laki_http.get_filter_level(filter_settings):
  92. print("+------------------+--------------------------------------+\n"
  93. "| Filter Settings | |\n"
  94. "+------------------+--------------------------------------+\n"
  95. f"| Level | {filter_settings.level:<38} |\n"
  96. f"| Window | {filter_settings.window:<38} |\n"
  97. f"| Min Angle | {filter_settings.min_angle:<38} |\n"
  98. f"| Max Angle | {filter_settings.max_angle:<38} |\n"
  99. f"| Neighbors | {filter_settings.neighbors:<38} |\n"
  100. "+------------------+--------------------------------------+")
  101. else:
  102. print("获取滤波器设置失败")
  103. # 测试获取主机配置
  104. host = Host("", 0)
  105. if await laki_http.get_host(host):
  106. print("+------------------+--------------------------------------+\n"
  107. "|Host Configuration | |\n"
  108. "+------------------+--------------------------------------+\n"
  109. f"| IP | {host.ip:<38} |\n"
  110. f"| Port | {host.port:<38} |\n"
  111. "+------------------+--------------------------------------+")
  112. else:
  113. print("获取主机配置失败")
  114. # 测试获取主机 IP
  115. if await laki_http.get_host_ip(host):
  116. print("+------------------+--------------------------------------+\n"
  117. "| Host IP | |\n"
  118. "+------------------+--------------------------------------+\n"
  119. f"| IP | {host.ip:<38} |\n"
  120. "+------------------+--------------------------------------+")
  121. else:
  122. print("获取主机 IP 失败")
  123. # 测试获取主机端口
  124. if await laki_http.get_host_port(host):
  125. print("+------------------+--------------------------------------+\n"
  126. "| Host Port | |\n"
  127. "+------------------+--------------------------------------+\n"
  128. f"| Port | {host.port:<38} |\n"
  129. "+------------------+--------------------------------------+")
  130. else:
  131. print("获取主机端口失败")
  132. # 测试获取激光状态
  133. laser_state = ""
  134. if await laki_http.get_laser_enable():
  135. laser_state = "true" if laser_state else "false"
  136. print("+------------------+--------------------------------------+\n"
  137. "| Laser State | |\n"
  138. "+------------------+--------------------------------------+\n"
  139. f"| Laser Enable | {laser_state:<38} |\n"
  140. "+------------------+--------------------------------------+")
  141. else:
  142. print("获取激光状态失败")
  143. # 测试获取激光分辨率
  144. overview = OverView(0, 0, False, 0.0, 0, 0, 0, 0, 0, 0, 0, "", 0)
  145. success, resolution = await laki_http.get_resolution(overview)
  146. if success:
  147. print("+------------------+--------------------------------------+\n"
  148. "|Laser Resolution | |\n"
  149. "+------------------+--------------------------------------+\n"
  150. f"| Resolution | {resolution:<38} |\n"
  151. "+------------------+--------------------------------------+")
  152. else:
  153. print("获取激光分辨率失败")
  154. # 测试获取激光扫描起始角度
  155. scan_range_start = ScanRange(0, 0)
  156. success, scan_range_start = await laki_http.get_laser_start(scan_range_start) # 解构返回值
  157. if success: # 检查操作是否成功
  158. print("+------------------+--------------------------------------+\n"
  159. "| Laser Start Angle | |\n"
  160. "+------------------+--------------------------------------+\n"
  161. f"| Start | {scan_range_start.start:<38} |\n"
  162. "+------------------+--------------------------------------+")
  163. else:
  164. print("获取激光扫描起始角度失败")
  165. # 测试获取激光扫描结束角度
  166. scan_range_stop = ScanRange(0, 0) # 创建 ScanRange 对象用于结束角度
  167. success, scan_range_stop = await laki_http.get_laser_stop(scan_range_stop) # 调用获取结束角度的函数
  168. if success: # 检查操作是否成功
  169. print("+------------------+--------------------------------------+\n"
  170. "| Laser Stop Angle | |\n"
  171. "+------------------+--------------------------------------+\n"
  172. f"| Stop | {scan_range_stop.stop:<38} |\n"
  173. "+------------------+--------------------------------------+")
  174. else:
  175. print("获取激光扫描结束角度失败")
  176. # 设置扫描频率
  177. freq1 = LakiBeamHTTP.put_scanfreq(10)
  178. # 设置开始角度
  179. scan_range = ScanRange(45, 200)
  180. result1, updated_scan_range, message1 = await laki_http.put_laser_start(scan_range)
  181. # 设置结束角度
  182. scan_range2 = ScanRange(100, 315)
  183. result2, updated_scan_range1, message2 = await laki_http.put_laser_stop(scan_range2)
  184. # 设置滤波器等级
  185. filter = Filter(2, 0, 0, 0, 0)
  186. result3 = await laki_http.put_filter_level(filter)
  187. # 设置滤波器窗口
  188. filter2 = Filter(0, 1, 0, 0, 0)
  189. result4 = await laki_http.put_filter_window(filter2)
  190. # 设置滤波器最大角度
  191. filter3 = Filter(0, 0, 0, 150, 0)
  192. result5 = await laki_http.put_filter_max_angle(filter3)
  193. # 设置滤波器最小角度
  194. filter4 = Filter(0, 0, 20, 150, 0)
  195. result6 = await laki_http.put_filter_min_angle(filter4)
  196. # 设置滤波器邻居
  197. filter5 = Filter(0, 0, 0, 0, 1)
  198. result7 = await laki_http.put_filter_neighbors(filter5)
  199. # 设置 IP
  200. # host1 = Host("192.168.198.3",2368)
  201. # result8 = await laki_http.put_host_ip(host1)
  202. # 设置 port
  203. # host2 = Host("192.168.198.1",2367)
  204. # result8 = await laki_http.put_host_port(host2)
  205. if __name__ == "__main__":
  206. asyncio.run(main())