Utilities for building frc robots
Project description
Mars Utlities
Utilties for building better robot code
ControlManager
ControlManager
provides a wrapper that makes making alternate control modes (alternate drivers, different controlers) incredibly simple. It is designed primarially for MagicRobot components, however, it should work with any type.
See example/
for an example robot.
Usage
First, all of the controls must be implemented as classes that subclass marsutils.ControlInterface
. The primary control code defined in the teleopPeriodic
method.
Then, you must define the _DISPLAY_NAME
field which will be displayed on the dashboard autochooser.
You can set _SORT
to prioritize certain interfaces, the higher the number, the higher on the chooser list.
Because it is a magic bot component, you can access injected components.
But you must make an empty execute
function to be a valid magicbot function.
After you have the control components there are two ways to create the manager.
MagicBot magic
If you are using the MagicRobot framework you can use the @with_ctrl_manager
decorator to automagically set everything up. Just annotate your robot class with @with_ctrl_manager
and you are done. It will magically detect any ControlInterfaces
, construct the ControlManager
and automatically call the periodic functions.
Using the decorator also means you don't need to define an execute
function.
Manually
Otherwize, you must must set up manager by initializing ControlManager
with all of your components after createObjects
has been called. This is not technically possible with the MagicBot framework yet.
self.control_manager = marsutils.ControlManager(self.xbox_ctrl, self.joystick_ctrl)
After you have created the control manager, you must call its periodic functions. This means adding self.control_manager.teleopPeriodic()
to your teleopPeriodic
function and so on for each function you use.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for marsutils-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00b27bfa91879179801f41d674d668ad0c5ad5107fdaf11a94dfa907277ee625 |
|
MD5 | 865b0a7d054bbbe44ed2fd5e43e518e7 |
|
BLAKE2b-256 | 99b1a305bbebe4323e0396bc8d97e1c4948558bd0678cf8fd84217034c8ed26e |