import asyncio from test1 import LakiBeamHTTP, Firmware, Monitor, NetWork, OverView, ScanRange, Filter, Host # 主测试函数 async def main(): laki_http = LakiBeamHTTP( local_ip="192.168.198.1", local_port="8080", web_ip="192.168.8.2", web_port="80" ) # 检查 IP 配置 if laki_http.check_ipconfig(): print("IP 配置有效") else: print("IP 配置无效,已使用默认值") # 测试获取固件信息 firmware = Firmware("", "", "", "", "") if await laki_http.get_firemware(firmware): print("+------------------+--------------------------------------+\n" "| Device Information| |\n" "+------------------+--------------------------------------+\n" f"| Model | {firmware.model:<38} |\n" f"| SN | {firmware.sn:<38} |\n" f"| FPGA | {firmware.fpga:<38} |\n" f"| Core | {firmware.core:<38} |\n" f"| Aux | {firmware.aux:<38} |\n" "+------------------+--------------------------------------+") else: print("获取固件信息失败") # 测试获取监控信息 monitor = Monitor(0.0, 0.0, 0.0) if await laki_http.get_monitor(monitor): print("+------------------+--------------------------------------+\n" "| System Monitor | |\n" "+------------------+--------------------------------------+\n" f"| Load Average | {monitor.load_average:<38} |\n" f"| Mem Usage | {monitor.men_useage}%{' '*(37-len(str(monitor.men_useage)+'%'))} |\n" f"| Uptime | {monitor.uptime:.2f}s{' ' * (38 - len(f'{monitor.uptime:.2f}s'))} |\n" "+------------------+--------------------------------------+") else: print("获取监控信息失败") # 测试获取网络信息 network = NetWork(False, "", "", "", False, "", "", 0) if await laki_http.get_network(network): print("+------------------+--------------------------------------+\n" "| Network Information | |\n" "+------------------+--------------------------------------+\n" f"| Carrier | {'True' if network.carrier else 'False':<38} |\n" f"| Duplex | {network.duplex:<38} |\n" f"| Ethaddr | {network.ethaddr:<38} |\n" f"| Hostname | {network.hostname:<38} |\n" f"| Speed | {network.speed:<38} |\n" "+------------------+--------------------------------------+") else: print("获取网络信息失败") # 测试获取概述信息 overview = OverView(0, 0, False, 0.0, 0, 0, 0, 0, 0, 0, 0, "", 0) if await laki_http.get_overview(overview): print("+------------------+--------------------------------------+\n" "| Overview Information | |\n" "+------------------+--------------------------------------+\n" f"| Scan Frequency | {overview.scanfreq:<38} |\n" f"| Motor RPM | {overview.motor_rpm:<38} |\n" f"| Laser Enable | {'True' if overview.laser_enable else 'False':<38} |\n" f"| Resolution | {overview.resolution:<38} |\n" f"| Scan Range Start | {overview.scan_range_start:<38} |\n" f"| Scan Range Stop | {overview.scan_range_stop:<38} |\n" f"| Filter Level | {overview.filter_level:<38} |\n" f"| Window | {overview.filter_window:<38} |\n" f"| Min Angle | {overview.filter_min_angle:<38} |\n" f"| Max Angle | {overview.filter_max_angle:<38} |\n" f"| Neighbors | {overview.filter_neighbors:<38} |\n" f"| Host IP | {overview.host_ip:<38} |\n" f"| Host Port | {overview.host_port:<38} |\n" "+------------------+--------------------------------------+") else: print("获取概述信息失败") # 测试获取扫描范围 scan_range = ScanRange(0, 0) if await laki_http.get_scan_range(scan_range): print("+------------------+--------------------------------------+\n" "| Scan Range | |\n" "+------------------+--------------------------------------+\n" f"| Start | {scan_range.start:<38} |\n" f"| Stop | {scan_range.stop:<38} |\n" "+------------------+--------------------------------------+") else: print("获取扫描范围失败") # 测试获取滤波器设置 filter_settings = Filter(0, 0, 0, 0, 0) if await laki_http.get_filter_level(filter_settings): print("+------------------+--------------------------------------+\n" "| Filter Settings | |\n" "+------------------+--------------------------------------+\n" f"| Level | {filter_settings.level:<38} |\n" f"| Window | {filter_settings.window:<38} |\n" f"| Min Angle | {filter_settings.min_angle:<38} |\n" f"| Max Angle | {filter_settings.max_angle:<38} |\n" f"| Neighbors | {filter_settings.neighbors:<38} |\n" "+------------------+--------------------------------------+") else: print("获取滤波器设置失败") # 测试获取主机配置 host = Host("", 0) if await laki_http.get_host(host): print("+------------------+--------------------------------------+\n" "|Host Configuration | |\n" "+------------------+--------------------------------------+\n" f"| IP | {host.ip:<38} |\n" f"| Port | {host.port:<38} |\n" "+------------------+--------------------------------------+") else: print("获取主机配置失败") # 测试获取主机 IP if await laki_http.get_host_ip(host): print("+------------------+--------------------------------------+\n" "| Host IP | |\n" "+------------------+--------------------------------------+\n" f"| IP | {host.ip:<38} |\n" "+------------------+--------------------------------------+") else: print("获取主机 IP 失败") # 测试获取主机端口 if await laki_http.get_host_port(host): print("+------------------+--------------------------------------+\n" "| Host Port | |\n" "+------------------+--------------------------------------+\n" f"| Port | {host.port:<38} |\n" "+------------------+--------------------------------------+") else: print("获取主机端口失败") # 测试获取激光状态 laser_state = "" if await laki_http.get_laser_enable(): laser_state = "true" if laser_state else "false" print("+------------------+--------------------------------------+\n" "| Laser State | |\n" "+------------------+--------------------------------------+\n" f"| Laser Enable | {laser_state:<38} |\n" "+------------------+--------------------------------------+") else: print("获取激光状态失败") # 测试获取激光分辨率 overview = OverView(0, 0, False, 0.0, 0, 0, 0, 0, 0, 0, 0, "", 0) success, resolution = await laki_http.get_resolution(overview) if success: print("+------------------+--------------------------------------+\n" "|Laser Resolution | |\n" "+------------------+--------------------------------------+\n" f"| Resolution | {resolution:<38} |\n" "+------------------+--------------------------------------+") else: print("获取激光分辨率失败") # 测试获取激光扫描起始角度 scan_range_start = ScanRange(0, 0) success, scan_range_start = await laki_http.get_laser_start(scan_range_start) # 解构返回值 if success: # 检查操作是否成功 print("+------------------+--------------------------------------+\n" "| Laser Start Angle | |\n" "+------------------+--------------------------------------+\n" f"| Start | {scan_range_start.start:<38} |\n" "+------------------+--------------------------------------+") else: print("获取激光扫描起始角度失败") # 测试获取激光扫描结束角度 scan_range_stop = ScanRange(0, 0) # 创建 ScanRange 对象用于结束角度 success, scan_range_stop = await laki_http.get_laser_stop(scan_range_stop) # 调用获取结束角度的函数 if success: # 检查操作是否成功 print("+------------------+--------------------------------------+\n" "| Laser Stop Angle | |\n" "+------------------+--------------------------------------+\n" f"| Stop | {scan_range_stop.stop:<38} |\n" "+------------------+--------------------------------------+") else: print("获取激光扫描结束角度失败") # 设置扫描频率 freq1 = LakiBeamHTTP.put_scanfreq(10) # 设置开始角度 scan_range = ScanRange(45, 200) result1, updated_scan_range, message1 = await laki_http.put_laser_start(scan_range) # 设置结束角度 scan_range2 = ScanRange(100, 315) result2, updated_scan_range1, message2 = await laki_http.put_laser_stop(scan_range2) # 设置滤波器等级 filter = Filter(2, 0, 0, 0, 0) result3 = await laki_http.put_filter_level(filter) # 设置滤波器窗口 filter2 = Filter(0, 1, 0, 0, 0) result4 = await laki_http.put_filter_window(filter2) # 设置滤波器最大角度 filter3 = Filter(0, 0, 0, 150, 0) result5 = await laki_http.put_filter_max_angle(filter3) # 设置滤波器最小角度 filter4 = Filter(0, 0, 20, 150, 0) result6 = await laki_http.put_filter_min_angle(filter4) # 设置滤波器邻居 filter5 = Filter(0, 0, 0, 0, 1) result7 = await laki_http.put_filter_neighbors(filter5) # 设置 IP # host1 = Host("192.168.198.3",2368) # result8 = await laki_http.put_host_ip(host1) # 设置 port # host2 = Host("192.168.198.1",2367) # result8 = await laki_http.put_host_port(host2) if __name__ == "__main__": asyncio.run(main())