开放空间列车环境
openspacetrainenv的Python项目详细描述
开放空间
列车环境
这是开放空间项目列车环境的存储库。这个项目是用Python3.6编写的,将在列车上的计算机上运行。
项目遵循PEP008 style guide,每个合作者都应该确保他的代码符合标准。
测试在这个项目中非常重要,应该为每个功能单元编写。项目使用unittest库进行单元测试,使用nose库进行测试发现。
文档是团队工作的关键,因此请确保您的代码有良好的文档记录,并且遵循pep008样式的规则。
摄像头处理器
camera处理程序使用pubsub模式让订阅者知道何时发布帧。这些帧将在每个订户请求的编解码器中进行转换。这些帧被发送到代理,以便在组件之间重新分配。
视觉容器
vision容器将在列车环境中包装cv-ml服务。这将通过将它们的python脚本导入到我们的服务中并将我们的代理公开为一个单例来完成。这样,vision容器可以通过代理发布消息和订阅消息。init脚本应该包含其容器的设置逻辑,因为我们的服务不会从其服务中调用任何方法(除了注册的回调)。
经纪人
代理(以前称为传输通信器)负责使用代理模式对消息进行内部路由。 暴露方法:
- broker.get_instance()
- self.subscribe('消息',回调)
- self.publish('message',*args,**kwargs)
选举成分
选举部门负责不同车厢之间的选举程序,并在选举获胜时启动(实际)TUDA。
虚拟化tuda模块
每辆马车上都有虚拟的图达。此组件必须通过http连接将连接传输到tuda。
列车单元数据聚合器
列车单元数据聚合器是当前车厢序列中的中心点。这个组件必须缓冲接收到的信息,并且需要与内部api和传输模块通信。
主TUDA模块
此模块必须确保数据有时间戳并路由到其他传输模块(内部api&transfer模块)。
内部API模块
该模块必须缓冲/存储数据并响应来自列车内部网络的api调用。
传输模块
此模块负责连接到地面(后端)。此模块必须将数据传输到列车上已经存在的AMQP模块(不是我们服务的一部分)。
测试模拟
为了模拟amqp通信和内部api,我们需要创建这些组件的简单模拟。