services library

Defines handler classes for out-of-app resources.

These resources include plugins that are designed to be general, not specific to the rover project. By providing rover-centric APIs for these services, the app's logic becomes simpler and easier to follow without having to study the specific service. Each service declared is to extend the abstract Service class.

The Services class acts as a bundle service for all services defined in this library. Its responsibilities include initializing and disposing of the services, and it also acts as a sort of dependency injection service by ensuring simple access. Use the services singleton.

This library sits right above the data library, and may import it, but not any other library in this project, only 3rd party plugins. That way, all other code can import any service.

Classes

DashboardSocket
A service to send and receive Protobuf messages over a UDP socket, using BurtSocket.
FilesService
A service to read and write to the file system.
Gamepad
A physical gamepad that can be connected and used to control the rover.
GamepadService
A service to match operators to gamepads.
Services
A dependency injection service that manages the lifecycle of other services.

Enums

GamepadBatteryLevel
The battery level of a gamepad.

Extensions

RoverGamepadState on GamepadState
An extension on GamepadState to allow for backwards compatibility with the rover joystick direction system

Properties

services Services
The singleton instance of the Services class.
final

Typedefs

GamepadState = GamepadState
The complete state of a gamepad.