YAMS
Yet Another Mechanism System
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | List of all members
yams::motorcontrollers::simulation::SensorData Class Reference

#include <SensorData.hpp>

Public Types

enum class  HALValueType {
  kBoolean , kDouble , kEnum , kInt ,
  kLong
}
 

Public Member Functions

 SensorData (std::string name, std::function< HAL_Value()> supplier, HAL_Value defaultValue, HALValueType type)
 
 SensorData (std::string name, std::function< double()> supplier, double defaultVal)
 
 SensorData (std::string name, std::function< int()> supplier, int defaultVal)
 
 SensorData (std::string name, std::function< bool()> supplier, bool defaultVal)
 
 SensorData (std::string name, std::function< int64_t()> supplier, int64_t defaultVal)
 
double GetAsDouble () const
 
int GetAsInt () const
 
bool GetAsBoolean () const
 
int64_t GetAsLong () const
 
HAL_Value GetValue () const
 
HAL_Value GetDefault () const
 
std::string GetName () const
 
HALValueType GetType () const
 
void Set (HAL_Value val)
 
void Set (double val)
 
void Set (int val)
 
void Set (int64_t val)
 
void Set (bool val)
 
void AddSimTrigger (HAL_Value value, std::function< bool()> trigger)
 
HAL_SimValueHandle CreateValue (HAL_SimDeviceHandle device, int32_t direction)
 

Static Public Member Functions

static HAL_Value Convert (double value)
 
static HAL_Value Convert (int value)
 
static HAL_Value Convert (bool value)
 
static HAL_Value Convert (int64_t value)
 
static std::function< HAL_Value()> Convert (std::function< double()> supplier)
 
static std::function< HAL_Value()> Convert (std::function< int()> supplier)
 
static std::function< HAL_Value()> Convert (std::function< bool()> supplier)
 
static std::function< HAL_Value()> Convert (std::function< int64_t()> supplier)
 

Detailed Description

Encapsulates a single named field of a simulated sensor.

On a real robot the value is read from the supplied callable. In simulation the value is read from (and can be written to) a Glass SimValue, and trigger-based overrides can inject specific values at controlled times.

Member Enumeration Documentation

◆ HALValueType

Enumerator
kBoolean 
kDouble 
kEnum 
kInt 
kLong 

Constructor & Destructor Documentation

◆ SensorData() [1/5]

yams::motorcontrollers::simulation::SensorData::SensorData ( std::string  name,
std::function< HAL_Value()>  supplier,
HAL_Value  defaultValue,
HALValueType  type 
)

◆ SensorData() [2/5]

yams::motorcontrollers::simulation::SensorData::SensorData ( std::string  name,
std::function< double()>  supplier,
double  defaultVal 
)

◆ SensorData() [3/5]

yams::motorcontrollers::simulation::SensorData::SensorData ( std::string  name,
std::function< int()>  supplier,
int  defaultVal 
)

◆ SensorData() [4/5]

yams::motorcontrollers::simulation::SensorData::SensorData ( std::string  name,
std::function< bool()>  supplier,
bool  defaultVal 
)

◆ SensorData() [5/5]

yams::motorcontrollers::simulation::SensorData::SensorData ( std::string  name,
std::function< int64_t()>  supplier,
int64_t  defaultVal 
)

Member Function Documentation

◆ AddSimTrigger()

void yams::motorcontrollers::simulation::SensorData::AddSimTrigger ( HAL_Value  value,
std::function< bool()>  trigger 
)

Override the sensor value whenever trigger returns true.

◆ Convert() [1/8]

static HAL_Value yams::motorcontrollers::simulation::SensorData::Convert ( bool  value)
static

◆ Convert() [2/8]

static HAL_Value yams::motorcontrollers::simulation::SensorData::Convert ( double  value)
static

◆ Convert() [3/8]

static HAL_Value yams::motorcontrollers::simulation::SensorData::Convert ( int  value)
static

◆ Convert() [4/8]

static HAL_Value yams::motorcontrollers::simulation::SensorData::Convert ( int64_t  value)
static

◆ Convert() [5/8]

static std::function< HAL_Value()> yams::motorcontrollers::simulation::SensorData::Convert ( std::function< bool()>  supplier)
static

◆ Convert() [6/8]

static std::function< HAL_Value()> yams::motorcontrollers::simulation::SensorData::Convert ( std::function< double()>  supplier)
static

◆ Convert() [7/8]

static std::function< HAL_Value()> yams::motorcontrollers::simulation::SensorData::Convert ( std::function< int()>  supplier)
static

◆ Convert() [8/8]

static std::function< HAL_Value()> yams::motorcontrollers::simulation::SensorData::Convert ( std::function< int64_t()>  supplier)
static

◆ CreateValue()

HAL_SimValueHandle yams::motorcontrollers::simulation::SensorData::CreateValue ( HAL_SimDeviceHandle  device,
int32_t  direction 
)

Register this field with a SimDevice so it appears in Glass. Called by Sensor during construction (simulation only).

◆ GetAsBoolean()

bool yams::motorcontrollers::simulation::SensorData::GetAsBoolean ( ) const

◆ GetAsDouble()

double yams::motorcontrollers::simulation::SensorData::GetAsDouble ( ) const

◆ GetAsInt()

int yams::motorcontrollers::simulation::SensorData::GetAsInt ( ) const

◆ GetAsLong()

int64_t yams::motorcontrollers::simulation::SensorData::GetAsLong ( ) const

◆ GetDefault()

HAL_Value yams::motorcontrollers::simulation::SensorData::GetDefault ( ) const

◆ GetName()

std::string yams::motorcontrollers::simulation::SensorData::GetName ( ) const

◆ GetType()

HALValueType yams::motorcontrollers::simulation::SensorData::GetType ( ) const

◆ GetValue()

HAL_Value yams::motorcontrollers::simulation::SensorData::GetValue ( ) const

Get the current sensor value (real supplier on robot; Glass/trigger in sim).

◆ Set() [1/5]

void yams::motorcontrollers::simulation::SensorData::Set ( bool  val)

◆ Set() [2/5]

void yams::motorcontrollers::simulation::SensorData::Set ( double  val)

◆ Set() [3/5]

void yams::motorcontrollers::simulation::SensorData::Set ( HAL_Value  val)

◆ Set() [4/5]

void yams::motorcontrollers::simulation::SensorData::Set ( int  val)

◆ Set() [5/5]

void yams::motorcontrollers::simulation::SensorData::Set ( int64_t  val)

The documentation for this class was generated from the following file: