1#ifndef FASTCAT_DEVICE_BASE_H_
2#define FASTCAT_DEVICE_BASE_H_
12#include <yaml-cpp/yaml.h>
14#include "fastcat/types.h"
15#include "fastcat/thread_safe_queue.h"
29 virtual bool Write(DeviceCmd& cmd);
41 std::shared_ptr<DeviceState>
GetState();
43 void SetTime(
double time,
double monotonic_time);
Definition device_base.h:20
virtual void Fault()
Definition device_base.cc:41
bool device_fault_active_
device-level fault, manager also has fault status flag
Definition device_base.h:57
std::vector< Signal > signals_
Definition device_base.h:46
virtual FaultType Process()
Definition device_base.cc:53
double loop_period_
only some devices need
Definition device_base.h:52
double initialization_time_sec_
only some devices need
Definition device_base.h:53
virtual bool Write(DeviceCmd &cmd)
Definition device_base.cc:35
virtual bool ConfigFromYaml(const YAML::Node &node)=0
void RegisterCmdQueue(std::shared_ptr< ThreadSafeQueue< DeviceCmd > > cmd_queue)
Definition device_base.cc:11
std::string name_
unique device name
Definition device_base.h:49
void SetLoopPeriod(double loop_period)
Definition device_base.cc:23
virtual void SetInitializationTime(double time_sec, double monotonic_time_sec)
Definition device_base.h:32
void SetTime(double time, double monotonic_time)
Definition device_base.cc:28
std::shared_ptr< DeviceState > state_
Fastcat state data.
Definition device_base.h:59
virtual void Reset()
Definition device_base.cc:47
double monotonic_initialization_time_sec_
only some devices need
Definition device_base.h:54
virtual ~DeviceBase()
Definition device_base.cc:9
double last_monotonic_time_
Definition device_base.h:51
std::shared_ptr< DeviceState > GetState()
Definition device_base.cc:18
std::shared_ptr< ThreadSafeQueue< DeviceCmd > > cmd_queue_
for intra-device commands
Definition device_base.h:62
std::string GetName()
Definition device_base.cc:17
Definition thread_safe_queue.h:10
Definition device_base.h:18