6#include <unordered_map>
8#include <condition_variable>
10#include <units/angle.h>
11#include <units/angular_velocity.h>
12#include <units/time.h>
13#include <units/temperature.h>
14#include "redux/canand/CanandDevice.h"
15#include "redux/canand/CanandEventLoop.h"
16#include "redux/canand/CanandSettingsManager.h"
17#include "redux/canand/CooldownWarning.h"
18#include "redux/frames/Frame.h"
20#include "redux/sensors/canandmag/CanandmagDetails.h"
21#include "redux/sensors/canandmag/CanandmagFaults.h"
22#include "redux/sensors/canandmag/CanandmagSettings.h"
23#include "redux/sensors/canandmag/CanandmagStatus.h"
132 bool SetPosition(units::turn_t newPosition, units::second_t timeout = 50_ms);
142 bool SetAbsPosition(units::turn_t newPosition, units::second_t timeout = 50_ms,
bool ephemeral =
false);
150 bool ZeroAll(units::second_t timeout = 50_ms);
253 inline CanandmagSettings GetSettings(units::second_t timeout = 350_ms, units::second_t missingTimeout = 50_ms, uint32_t attempts = 3) {
254 return stg.GetSettings(timeout, missingTimeout, attempts);
261 inline void StartFetchSettings() {
return stg.StartFetchSettings(); }
314 inline CanandmagSettings GetSettingsAsync() {
return stg.GetKnownSettings(); }
339 inline CanandmagSettings SetSettings(CanandmagSettings& settings, units::second_t timeout = 50_ms, uint32_t attempts = 3) {
340 return stg.SetSettings(settings, timeout, attempts);
352 inline CanandmagSettings ResetFactoryDefaults(
bool clearZero =
false, units::second_t timeout = 350_ms) {
355 return stg.SendReceiveSettingCommand(val, timeout,
true);
405 static constexpr double kCountsPerRotation = 16384;
408 static constexpr double kCountsPerRotationPerSecond = 1024;
428 bool dataRecvOnce{
false};
429 units::second_t lastMessageTime{0_s};
Definition: CanandAddress.h:60
Definition: CanandDevice.h:35
virtual CanandAddress & GetAddress()=0
virtual CanandFirmwareVersion GetMinimumFirmwareVersion()
Definition: CanandDevice.h:109
virtual void HandleMessage(CanandMessage &msg)=0
virtual std::string GetDeviceClassName()
Definition: CanandDevice.h:74
Definition: CanandMessage.h:26
Definition: CanandSettingsManager.h:78
Definition: CooldownWarning.h:15
Definition: CanandmagFaults.h:13
Definition: CanandmagSettings.h:54
Definition: Canandmag.h:91
CanandmagFaults GetActiveFaults()
units::turn_t GetPosition()
bool SetAbsPosition(units::turn_t newPosition, units::second_t timeout=50_ms, bool ephemeral=false)
bool ZeroAll(units::second_t timeout=50_ms)
bool SetPosition(units::turn_t newPosition, units::second_t timeout=50_ms)
units::celsius_t GetTemperature()
CanandmagFaults GetStickyFaults()
void SetPartyMode(uint8_t level)
units::turns_per_second_t GetVelocity()
units::turn_t GetAbsPosition()
void RemoveCANListener(CanandDevice *device)
@ kResetFactoryDefault
Definition: CanandmagDetails.h:66
@ kResetFactoryDefaultKeepZero
Definition: CanandmagDetails.h:70
Definition: CanandmagSettings.h:12
Definition: CanandFirmwareVersion.h:17