| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- 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())
|