制造FRC机器人的实用程序

marsutils的Python项目详细描述


mars utlities

构建更好的机器人代码的实用程序

Read the Docs在线查看文档

控制管理器

ControlManager提供了一个包装器,使替代控制模式(替代驱动程序、不同控制程序)变得异常简单。它最初是为magicrobot组件设计的,但是,它应该可以与任何类型的组件一起工作。

请参见example/以获取机器人示例。

使用量

首先,所有控件都必须实现为子类marsutils.ControlInterface的类。在teleopPeriodic方法中定义的主控制代码。 然后,必须定义将显示在仪表板自动选择程序上的_DISPLAY_NAME字段。 您可以设置_SORT来为某些接口设置优先级,这个数字越高,选择器列表上的值就越高。

因为它是一个神奇的机器人组件,所以您可以访问注入的组件。

但必须使空的execute函数成为有效的magicbot函数。

拥有控件组件后,有两种方法可以创建管理器。

魔术魔术

如果您使用的是magicrobot框架,那么可以使用@with_ctrl_manager装饰器自动设置所有内容。只要用@with_ctrl_manager注释robot类,就完成了。它将神奇地检测任何ControlInterfaces,构造ControlManager,并自动调用周期函数。

使用decorator还意味着您不需要定义execute函数。

手动

否则,必须在调用createObjects之后,通过初始化所有组件来设置管理器。这是not technically possible with the MagicBot framework

self.control_manager=marsutils.ControlManager(self.xbox_ctrl,self.joystick_ctrl)

创建控件管理器后,必须调用其周期函数。这意味着为您使用的每个函数添加self.control_manager.teleopPeriodic()teleopPeriodic函数中,以此类推。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java以编程方式最小化JInternalFrame?   java使用JsonPath将不均匀列表提取为类型化对象   spring如何将java/resources文件获取到InputStream?   Java逻辑错误并不总是存在   java Firebase,更新特定字段   Java stream groupby并同时加入以进行csv导出   java安卓:如果出现任何声音,监听器将录制声音   java如何从多个文件中轮询最后修改的文件并发送到apache camel中的目标端点?   java是否返回多个比较器?   JavaBean IO:Date MMM在CAPS中不解析   当JButton从另一个类单击时,java正在更新JLabel   基类中子类的Java泛型初始化   jakarta ee Java ee制作一个以毫秒为间隔的计时器来发送数据包   json Windows Azure日期格式转换为Java日期