6 #ifndef FLEXIV_RDK_DEVICE_HPP_ 
    7 #define FLEXIV_RDK_DEVICE_HPP_ 
   15 using DeviceParamDataTypes
 
   16     = std::variant<int, double, std::string, std::vector<double>, std::vector<std::string>>;
 
   40     std::map<std::string, bool> 
list() 
const;
 
   49     bool exist(
const std::string& name) 
const;
 
   61     std::map<std::string, DeviceParamDataTypes> 
params(
const std::string& name) 
const;
 
   70     void Enable(
const std::string& name);
 
   93         const std::map<std::string, std::variant<bool, int, double>>& commands);
 
   97     std::unique_ptr<Impl> pimpl_;
 
Interface to control the peripheral device(s) connected to the robot.
 
void Enable(const std::string &name)
[Blocking] Enable the specified device.
 
void Command(const std::string &name, const std::map< std::string, std::variant< bool, int, double >> &commands)
[Blocking] Send command(s) to the specified device.
 
Device(const Robot &robot)
[Non-blocking] Instantiate the device control interface.
 
std::map< std::string, DeviceParamDataTypes > params(const std::string &name) const
[Blocking] Configuration parameters of the specified device.
 
void Disable(const std::string &name)
[Blocking] Disable the specified device.
 
std::map< std::string, bool > list() const
[Blocking] A list of existing devices and their status (enabled/disabled).
 
bool exist(const std::string &name) const
[Blocking] Whether the specified device already exists.
 
Main interface to control the robot, containing several function categories and background services.