7#include <condition_variable>
13#include "redux/canand/CanandAddress.h"
14#include "redux/canand/CanandFirmwareVersion.h"
15#include "units/time.h"
129 template<std::
size_t len>
requires(len < 8U)
135 std::mutex settingRecvLock;
136 std::optional<CanandFirmwareVersion> receivedFirmwareVersion{std::nullopt};
143 std::optional<units::second_t> lastMessageTs{std::nullopt};
Definition: CanandAddress.h:62
bool SendCANMessage(uint16_t apiIndex, uint8_t *data, uint8_t length)
Definition: CanandDevice.h:35
virtual void CheckReceivedFirmwareVersion()
virtual void PreHandleMessage(CanandMessage &msg)
bool IsConnected(units::second_t timeout=2_s)
virtual CanandAddress & GetAddress()=0
virtual CanandFirmwareVersion GetMinimumFirmwareVersion()
Definition: CanandDevice.h:109
virtual void HandleMessage(CanandMessage &msg)=0
std::string GetDeviceName()
bool SendCANMessage(uint8_t apiIndex, uint8_t *data, uint8_t length)
Definition: CanandDevice.h:119
virtual std::string GetDeviceClassName()
Definition: CanandDevice.h:74
void SendCANMessage(uint8_t msgId, std::span< std::byte, len > data)
Definition: CanandDevice.h:130
Definition: CanandMessage.h:26
Definition: CanandDevice.h:153
static constexpr uint8_t kClearStickyFaults
Definition: CanandDevice.h:162
static constexpr uint8_t kPartyMode
Definition: CanandDevice.h:166
static constexpr uint8_t kSetSetting
Definition: CanandDevice.h:158
static constexpr uint8_t kReportSetting
Definition: CanandDevice.h:160
static constexpr uint8_t kStatus
Definition: CanandDevice.h:164
static constexpr uint8_t kSettingCommand
Definition: CanandDevice.h:156
Definition: CanandDevice.h:170
static constexpr uint8_t kResetFactoryDefault
Definition: CanandDevice.h:175
static constexpr uint8_t kFetchSettings
Definition: CanandDevice.h:173
static constexpr uint8_t kFetchSettingValue
Definition: CanandDevice.h:177
Definition: CanandDevice.h:181
static constexpr uint8_t kSerialNumber
Definition: CanandDevice.h:186
static constexpr uint8_t kFirmwareVersion
Definition: CanandDevice.h:188
static constexpr uint8_t kStatusFramePeriod
Definition: CanandDevice.h:184
const std::vector< uint8_t > VDEP_SETTINGS
Definition: CanandDevice.h:192
Definition: CanandMessage.h:10
Definition: CanandFirmwareVersion.h:17