You've already forked AiraPulsar
Improvement
This commit is contained in:
4
comet/README.md
Normal file
4
comet/README.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# Comet - 飞行器侧载端
|
||||
Comet(彗星) 是 AiraPulsar 飞行控制系统的飞行器侧载端
|
||||
|
||||
Comet(飞行器) 通过 Moon(中继服务器) 进行通讯, 接受来自 Pulsar(控制器) 的指令
|
213
comet/agent_logs.log
Normal file
213
comet/agent_logs.log
Normal file
@@ -0,0 +1,213 @@
|
||||
2025-03-07T08:56:35.501146+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T08:56:35.501324+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T08:56:35.501414+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T08:57:13.903527+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T08:57:13.903678+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T08:57:13.903742+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T08:58:55.379859+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T08:58:55.380016+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T08:58:55.380084+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T08:59:05.381232+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T08:59:05.381387+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T08:59:05.381444+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T08:59:52.906831+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T08:59:52.906996+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T08:59:52.907060+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:00:41.008959+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:00:41.008959+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:00:41.009179+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:00:41.009179+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:00:41.009279+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:00:41.009279+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:00:44.632829+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:00:44.632829+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:00:44.633010+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:00:44.633010+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:00:44.633098+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:00:44.633098+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:01:31.329481+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:01:31.329481+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:01:31.329691+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:01:31.329691+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:01:31.329762+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:01:31.329762+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:02:18.294306+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:02:18.294306+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:02:18.294467+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:02:18.294467+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:02:18.294542+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:02:18.294542+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:02:49.424696+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:02:49.424696+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:02:49.424863+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:02:49.424863+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:02:49.424947+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:02:49.424947+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:03:12.117053+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:03:12.117053+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:03:12.117278+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:03:12.117278+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:03:12.117377+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:03:12.117377+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:03:43.470032+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:03:43.470032+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:03:43.470267+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:03:43.470267+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:03:43.470342+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:03:43.470342+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:11:06.876601+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:11:06.876601+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:11:06.876858+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:11:06.876858+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:11:06.876965+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:11:06.876965+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:12:16.848236+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:12:16.848236+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:12:16.848397+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:12:16.848397+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:12:16.848476+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:12:16.848476+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:19:10.751685+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:19:10.751685+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:19:10.751843+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:19:10.751843+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:19:10.751912+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:19:10.751912+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:19:20.013536+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:19:20.013536+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:19:20.013686+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:19:20.013686+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:19:20.013757+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:19:20.013757+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:19:39.079365+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:19:39.079365+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:19:39.079590+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:19:39.079590+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:19:39.079663+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:19:39.079663+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:20:13.855104+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:20:13.855104+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:20:13.855261+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:20:13.855261+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:20:13.855328+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:20:13.855328+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:20:22.574788+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:20:22.574788+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:20:22.574961+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:20:22.574961+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:20:22.575035+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:20:22.575035+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:26:57.804810+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:26:57.804810+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:26:57.804965+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:26:57.804965+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:26:57.805033+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:26:57.805033+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:28:26.670684+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:28:26.670684+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:28:26.670920+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:28:26.670920+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:28:26.671025+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:28:26.671025+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:28:26.674242+0800 - INFO - 成功建立连接
|
||||
2025-03-07T09:28:26.674242+0800 - INFO - 成功建立连接
|
||||
2025-03-07T09:28:35.156211+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:28:35.156211+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:28:35.156372+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:28:35.156372+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:28:35.156458+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:28:35.156458+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:28:35.159041+0800 - INFO - 成功建立连接
|
||||
2025-03-07T09:28:35.159041+0800 - INFO - 成功建立连接
|
||||
2025-03-07T09:29:25.100332+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:29:25.100332+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:29:25.100478+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:29:25.100478+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:29:25.100548+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:29:25.100548+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:29:25.102459+0800 - INFO - 成功建立连接
|
||||
2025-03-07T09:29:25.102459+0800 - INFO - 成功建立连接
|
||||
2025-03-07T09:30:13.965473+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:30:13.965473+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:30:13.965675+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:30:13.965675+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:30:13.965765+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:30:13.965765+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:30:13.967862+0800 - INFO - 成功建立连接
|
||||
2025-03-07T09:30:13.967862+0800 - INFO - 成功建立连接
|
||||
2025-03-07T09:31:20.560819+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:31:20.560819+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:31:20.561346+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:31:20.561346+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:31:20.561512+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:31:20.561512+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:31:20.564821+0800 - INFO - 成功建立连接
|
||||
2025-03-07T09:31:20.564821+0800 - INFO - 成功建立连接
|
||||
2025-03-07T09:31:41.871167+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:31:41.871167+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T09:31:41.871318+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:31:41.871318+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T09:31:41.871391+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:31:41.871391+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T09:31:41.873516+0800 - INFO - 成功建立连接
|
||||
2025-03-07T09:31:41.873516+0800 - INFO - 成功建立连接
|
||||
2025-03-07T10:02:22.246919+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T10:02:22.246919+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T10:02:22.247153+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T10:02:22.247153+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T10:02:22.247261+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T10:02:22.247261+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T10:02:22.247736+0800 - INFO - 等待连接成功
|
||||
2025-03-07T10:02:22.247736+0800 - INFO - 等待连接成功
|
||||
2025-03-07T10:02:22.249670+0800 - INFO - 成功建立连接
|
||||
2025-03-07T10:02:22.249670+0800 - INFO - 成功建立连接
|
||||
2025-03-07T10:02:22.347928+0800 - INFO - 连接成功, 取消阻塞
|
||||
2025-03-07T10:02:22.347928+0800 - INFO - 连接成功, 取消阻塞
|
||||
2025-03-07T15:55:55.862879+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T15:55:55.862879+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T15:55:55.863020+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T15:55:55.863020+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T15:55:55.863103+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T15:55:55.863103+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T15:55:55.863455+0800 - INFO - 等待连接成功
|
||||
2025-03-07T15:55:55.863455+0800 - INFO - 等待连接成功
|
||||
2025-03-07T15:55:55.865329+0800 - INFO - 成功建立连接, 单向延迟 7.05718994140625e-05ms
|
||||
2025-03-07T15:55:55.865329+0800 - INFO - 成功建立连接, 单向延迟 7.05718994140625e-05ms
|
||||
2025-03-07T15:55:55.963668+0800 - INFO - 连接成功, 取消阻塞
|
||||
2025-03-07T15:55:55.963668+0800 - INFO - 连接成功, 取消阻塞
|
||||
2025-03-07T15:56:29.263974+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T15:56:29.263974+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T15:56:29.264145+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T15:56:29.264145+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T15:56:29.264238+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T15:56:29.264238+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T15:56:29.264733+0800 - INFO - 等待连接成功
|
||||
2025-03-07T15:56:29.264733+0800 - INFO - 等待连接成功
|
||||
2025-03-07T15:56:29.266574+0800 - INFO - 成功建立连接, 单向延迟 0ms
|
||||
2025-03-07T15:56:29.266574+0800 - INFO - 成功建立连接, 单向延迟 0ms
|
||||
2025-03-07T15:56:29.364981+0800 - INFO - 连接成功, 取消阻塞
|
||||
2025-03-07T15:56:29.364981+0800 - INFO - 连接成功, 取消阻塞
|
||||
2025-03-07T15:56:47.266556+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T15:56:47.266556+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T15:56:47.266726+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T15:56:47.266726+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T15:56:47.266820+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T15:56:47.266820+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T15:56:47.267230+0800 - INFO - 等待连接成功
|
||||
2025-03-07T15:56:47.267230+0800 - INFO - 等待连接成功
|
||||
2025-03-07T15:56:47.269156+0800 - INFO - 成功建立连接, 单向延迟 0.1ms
|
||||
2025-03-07T15:56:47.269156+0800 - INFO - 成功建立连接, 单向延迟 0.1ms
|
||||
2025-03-07T15:56:47.367454+0800 - INFO - 连接成功, 取消阻塞
|
||||
2025-03-07T15:56:47.367454+0800 - INFO - 连接成功, 取消阻塞
|
||||
2025-03-07T17:45:08.362971+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T17:45:08.362971+0800 - INFO - 初始化代理对象
|
||||
2025-03-07T17:45:08.363174+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T17:45:08.363174+0800 - INFO - 卫星地址: ws://127.0.0.1:8765
|
||||
2025-03-07T17:45:08.363287+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T17:45:08.363287+0800 - INFO - 代理对象代号: comet
|
||||
2025-03-07T17:45:08.363894+0800 - INFO - 等待连接成功
|
||||
2025-03-07T17:45:08.363894+0800 - INFO - 等待连接成功
|
||||
2025-03-07T17:45:08.365733+0800 - INFO - 成功建立连接, 单向延迟 0.1ms
|
||||
2025-03-07T17:45:08.365733+0800 - INFO - 成功建立连接, 单向延迟 0.1ms
|
||||
2025-03-07T17:45:08.464116+0800 - INFO - 连接成功, 取消阻塞
|
||||
2025-03-07T17:45:08.464116+0800 - INFO - 连接成功, 取消阻塞
|
19
comet/comet.py
Normal file
19
comet/comet.py
Normal file
@@ -0,0 +1,19 @@
|
||||
from lib import agency
|
||||
import yaml
|
||||
import time
|
||||
moon_addr = None
|
||||
moon_port = None
|
||||
|
||||
with open('comet_config.yaml', 'r') as config_file:
|
||||
config = yaml.safe_load(config_file)
|
||||
moon_addr = config.get("moon_addr", "127.0.0.1")
|
||||
port = config.get("moon_port", 8765)
|
||||
|
||||
agent = None
|
||||
|
||||
def handler(data: dict):
|
||||
pass
|
||||
|
||||
if __name__ == "__main__":
|
||||
agent = agency.Agent(name="comet", addr=moon_addr, handler=handler)
|
||||
agent.runasthread()
|
1
comet/comet_config.yaml
Normal file
1
comet/comet_config.yaml
Normal file
@@ -0,0 +1 @@
|
||||
moon_addr: "ws://127.0.0.1:8765"
|
33
comet/hal/bus/interface.py
Normal file
33
comet/hal/bus/interface.py
Normal file
@@ -0,0 +1,33 @@
|
||||
class Motor(object):
|
||||
angle = None
|
||||
def __init__(self, id):
|
||||
self.angle = 0 # mark
|
||||
self.id = id
|
||||
def get(self):
|
||||
return self.angle
|
||||
def turn(self, add_angle):
|
||||
self.angle += add_angle
|
||||
return self.angle
|
||||
class Engine(object):
|
||||
speed = None
|
||||
def __init__(self, id):
|
||||
self.speed = 0 # Mark
|
||||
self.id = id
|
||||
def get(self):
|
||||
return self.speed
|
||||
def tune(self, new_speed):
|
||||
self.speed = new_speed
|
||||
return self.speed
|
||||
|
||||
class Battery:
|
||||
def get():
|
||||
power_left = 0.9
|
||||
return power_left
|
||||
def stat():
|
||||
status = "Unplugged"
|
||||
return status
|
||||
|
||||
class Network:
|
||||
def stat():
|
||||
delay = 0.2 # ms
|
||||
return delay # or -1 (unreachable)
|
202
comet/hal/tuner.py
Normal file
202
comet/hal/tuner.py
Normal file
@@ -0,0 +1,202 @@
|
||||
"""
|
||||
filename: tuner.py
|
||||
"""
|
||||
from bus import interface
|
||||
import threading
|
||||
class Surface(object):
|
||||
motor = None
|
||||
name = None
|
||||
curr_angle = None
|
||||
id = None
|
||||
type_ = "surface"
|
||||
def __init__(self, name, id):
|
||||
self.motor = interface.Motor(id)
|
||||
self.curr_angle = self.motor.get()
|
||||
self.name = name
|
||||
self.id = id
|
||||
print("初始化操纵面 {}, 硬件代号绑定为 {}".format(name, id))
|
||||
def add_angle(self, angle):
|
||||
self.motor.turn(angle)
|
||||
self.curr_angle = self.motor.get();
|
||||
#print("将 {} 的角度加成 {} 度".format(self.name, angle))
|
||||
def set_angle(self, angle):
|
||||
angle_turn = angle - self.motor.get()
|
||||
self.motor.turn(angle_turn)
|
||||
self.curr_angle = self.motor.get()
|
||||
#print("将 {} 的角度设置为 {} 度".format(self.name, angle))
|
||||
def get_angle(self):
|
||||
self.curr_angle = self.motor.get()
|
||||
#print("{} 当前角度为 {} 度".format(self.name, self.curr_angle))
|
||||
return self.curr_angle
|
||||
def status(self):
|
||||
return {"type":"Surface", "name":self.name, "angle":self.curr_angle}
|
||||
def selfchk(self):
|
||||
print("开始自检操纵面 {}".format(self.name))
|
||||
self.add_angle(30)
|
||||
self.add_angle(-60)
|
||||
self.set_angle(0)
|
||||
|
||||
class Engine(object):
|
||||
engine = None
|
||||
curr_speed = None
|
||||
id = None
|
||||
name = None
|
||||
type_ = "engine"
|
||||
def __init__(self, name, id):
|
||||
self.id = id
|
||||
self.name = name
|
||||
self.engine = interface.Engine(id)
|
||||
self.curr_speed = self.engine.get()
|
||||
print("初始化引擎 {}, 硬件代号绑定为 {}".format(name, id))
|
||||
def set_speed(self, new_speed):
|
||||
self.engine.tune(new_speed)
|
||||
self.curr_speed = self.engine.get()
|
||||
##print("将 {} 的转速调谐为 {} RPM".format(self.name, new_speed))
|
||||
def add_speed(self, add_speed):
|
||||
self.engine.tune(self.curr_speed + add_speed)
|
||||
self.curr_speed = self.engine.get()
|
||||
##print("将 {} 的转速加成 {} RPM".format(self.name, add_speed))
|
||||
def get_speed(self):
|
||||
##print("{} 当前转速为 {} RPM".format(self.name, self.curr_speed))
|
||||
self.curr_speed = self.engine.get()
|
||||
return self.curr_speed
|
||||
def status(self):
|
||||
##print(self.curr_speed)
|
||||
return {"type":"Engine", "name":self.name, "speed":self.get_speed()}
|
||||
def selfchk(self):
|
||||
print("开始自检引擎 {}".format(self.name))
|
||||
self.add_speed(3)
|
||||
self.add_speed(-6)
|
||||
self.set_speed(0)
|
||||
self.curr_speed = self.engine.get()
|
||||
|
||||
|
||||
class Sensor:
|
||||
data = dict()
|
||||
data["speed"] = 0
|
||||
data["battery"] = 0
|
||||
data["xangle"] = 0
|
||||
data["yangle"] = 0
|
||||
data["zangle"] = 0
|
||||
data["sign"] = 0
|
||||
data["cpuload"] = 0
|
||||
data["memload"] = 0
|
||||
data["memsum"] = 0
|
||||
data["torch"] = 0
|
||||
data["acc"] = 0
|
||||
is_torch_on = 0
|
||||
|
||||
@staticmethod
|
||||
def speed():
|
||||
Sensor.data["speed"] = 99
|
||||
return Sensor.data["speed"]
|
||||
|
||||
@staticmethod
|
||||
def battery():
|
||||
Sensor.data["battery"] = 0.8
|
||||
return Sensor.data["battery"]
|
||||
|
||||
@staticmethod
|
||||
def xangle():
|
||||
Sensor.data["xangle"] = 201
|
||||
return Sensor.data["xangle"]
|
||||
|
||||
@staticmethod
|
||||
def yangle():
|
||||
Sensor.data["yangle"] = 108
|
||||
return Sensor.data["yangle"]
|
||||
|
||||
@staticmethod
|
||||
def zangle():
|
||||
Sensor.data["zangle"] = 0
|
||||
return Sensor.data["zangle"]
|
||||
|
||||
@staticmethod
|
||||
def sign():
|
||||
Sensor.data["sign"] = 322
|
||||
return Sensor.data["sign"]
|
||||
|
||||
@staticmethod
|
||||
def cpuload():
|
||||
Sensor.data["cpuload"] = 0.12
|
||||
return Sensor.data["cpuload"]
|
||||
|
||||
@staticmethod
|
||||
def memload():
|
||||
Sensor.data["memload"] = 0.88
|
||||
return Sensor.data["memload"]
|
||||
|
||||
@staticmethod
|
||||
def memsum():
|
||||
Sensor.data["memsum"] = 2048
|
||||
return Sensor.data["memsum"]
|
||||
|
||||
@staticmethod
|
||||
def torch():
|
||||
Sensor.data["torch"] = Sensor.is_torch_on
|
||||
return Sensor.data["torch"]
|
||||
|
||||
@staticmethod
|
||||
def torchon():
|
||||
Sensor.is_torch_on = 1
|
||||
|
||||
@staticmethod
|
||||
def acc():
|
||||
Sensor.data["acc"] = 3
|
||||
return Sensor.data["acc"]
|
||||
|
||||
@staticmethod
|
||||
def net_delay():
|
||||
Sensor.data["net_delay"] = 300
|
||||
return Sensor.data["net_delay"]
|
||||
|
||||
@staticmethod
|
||||
def refresh():
|
||||
Sensor.speed()
|
||||
Sensor.battery()
|
||||
Sensor.xangle()
|
||||
Sensor.yangle()
|
||||
Sensor.zangle()
|
||||
Sensor.sign()
|
||||
Sensor.cpuload()
|
||||
Sensor.memload()
|
||||
Sensor.memsum()
|
||||
Sensor.torch()
|
||||
Sensor.acc()
|
||||
Sensor.net_delay()
|
||||
|
||||
@staticmethod
|
||||
def stat():
|
||||
#Sensor.refresh()
|
||||
return Sensor.data
|
||||
|
||||
def pseudo_gui():
|
||||
import tkinter as tk
|
||||
def update_label(key, value):
|
||||
labels[key].config(text=f"{key}: {value}")
|
||||
def update():
|
||||
while 1:
|
||||
for key in Sensor.data.keys():
|
||||
Sensor.data[key] = sliders[key].get()
|
||||
root = tk.Tk()
|
||||
root.title("DEBUGGING CONSOLE")
|
||||
|
||||
labels = {}
|
||||
sliders = {}
|
||||
|
||||
# 自动布局
|
||||
for key in Sensor.data.keys():
|
||||
# 创建标签
|
||||
label = tk.Label(root, text=f"{key}: {Sensor.data[key]}")
|
||||
label.pack()
|
||||
labels[key] = label
|
||||
|
||||
# 创建滑块
|
||||
slider = tk.Scale(root, from_=0, to=100, orient=tk.HORIZONTAL, command=lambda value, k=key: update_label(k, value))
|
||||
slider.pack()
|
||||
sliders[key] = slider
|
||||
|
||||
up = threading.Thread(target=update, name='Update')
|
||||
up.start()
|
||||
root.mainloop()
|
||||
up.join()
|
36
comet/model_cfg/jf_17_pm/hardware.yaml
Normal file
36
comet/model_cfg/jf_17_pm/hardware.yaml
Normal file
@@ -0,0 +1,36 @@
|
||||
surface:
|
||||
-
|
||||
id: al
|
||||
attr: "a"
|
||||
side: "l"
|
||||
desc: 左副翼
|
||||
-
|
||||
id: ar
|
||||
attr: "a"
|
||||
side: "r"
|
||||
desc: 右副翼
|
||||
-
|
||||
id: fl
|
||||
attr: "f"
|
||||
side: "l"
|
||||
desc: 左襟翼
|
||||
-
|
||||
id: fr
|
||||
attr: "f"
|
||||
side: "r"
|
||||
desc: 右襟翼
|
||||
-
|
||||
id: r
|
||||
attr: "h"
|
||||
side: "n"
|
||||
desc: 方向舵
|
||||
-
|
||||
id: e
|
||||
attr: "i"
|
||||
side: "n"
|
||||
desc: 升降舵
|
||||
engine:
|
||||
-
|
||||
id: eng_1
|
||||
desc: "主引擎"
|
||||
vector: False
|
3
comet/model_cfg/jf_17_pm/index.yaml
Normal file
3
comet/model_cfg/jf_17_pm/index.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
name: "jf_17_pm"
|
||||
desc: "枭龙 单引擎单垂尾常规布局航模 螺旋桨驱动 尺寸修改型"
|
||||
view: ./src/view.png
|
BIN
comet/model_cfg/jf_17_pm/reference/3view.png
Normal file
BIN
comet/model_cfg/jf_17_pm/reference/3view.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 57 KiB |
BIN
comet/model_cfg/jf_17_pm/reference/image.png
Normal file
BIN
comet/model_cfg/jf_17_pm/reference/image.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 692 KiB |
BIN
comet/model_cfg/jf_17_pm/reference/logo.png
Normal file
BIN
comet/model_cfg/jf_17_pm/reference/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
BIN
comet/model_cfg/jf_17_pm/src/view.bmp
Normal file
BIN
comet/model_cfg/jf_17_pm/src/view.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.7 MiB |
BIN
comet/model_cfg/jf_17_pm/src/view.png
Normal file
BIN
comet/model_cfg/jf_17_pm/src/view.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
Reference in New Issue
Block a user