3#include "../utils/scheduler.h"
4#include "../world_interface/data.h"
11#include <HindsightCAN/CANPacket.h>
duration< int64_t, milli > milliseconds
Represents data measured using a sensor at a given time.
Definition data.h:136
Utilities for interacting with CAN devices.
Definition CAN.cpp:43
void unscheduleTelemetryPull(deviceid_t id, telemtype_t telemType)
Stop pulling the latest telemetry data from the given device.
Definition CAN.cpp:340
robot::types::DataPoint< telemetry_t > getDeviceTelemetry(deviceid_t id, telemtype_t telemType)
Get the latest telemetry from a CAN device.
Definition CAN.cpp:288
void sendCANPacket(const CANPacket &packet)
Send a CAN packet.
Definition CAN.cpp:266
void scheduleTelemetryPull(deviceid_t id, telemtype_t telemType, std::chrono::milliseconds period)
Periodically pull the latest telemetry data from the specified CAN device asychronously.
Definition CAN.cpp:318
void pullDeviceTelemetry(deviceid_t id, telemtype_t telemType)
Ping the given CAN device to send the given telemetry data.
Definition CAN.cpp:309
void unscheduleAllTelemetryPulls()
Stop pulling the latest telemetry data from all currently scheduled devices.
Definition CAN.cpp:354
void removeDeviceTelemetryCallback(callbackid_t id)
Remove a previously registered telemetry callback.
Definition CAN.cpp:380
std::tuple< deviceid_t, telemtype_t, uint32_t > callbackid_t
An ID for a telemetry callback.
Definition CAN.h:25
void initCAN()
Initialize the CAN interface.
Definition CAN.cpp:254
std::pair< devicegroup_t, deviceserial_t > deviceid_t
A unique identifier for a CAN device.
Definition CANUtils.h:74
telemtype_t
The type of telemetries that devices can report.
Definition CANUtils.h:36