class ugcs::vsm::Vsm_command

Overview

#include <subsystem.h>

class Vsm_command: public std::enable_shared_from_this< Vsm_command >
{
public:
    // typedefs

    typedef std::shared_ptr<Vsm_command> Ptr;
    typedef std::weak_ptr<Vsm_command> Weak_ptr;

    // construction

    Vsm_command(
        std::string name,
        bool in_mission
        );

    // methods

    template <typename... Args>
    static Ptr Create(Args&&... args);

    Property::Ptr Add_parameter(
        std::string,
        proto::Field_semantic semantic = proto::FIELD_SEMANTIC_DEFAULT
        );

    Property::Ptr Add_parameter(
        std::string name,
        Property::Value_type type
        );

    void Register(proto::Register_command* command);
    void Set_capabilities(proto::Command_availability* msg);
    void Set_enabled(bool is_enabled = true);
    void Set_available(bool is_available = true);
    int Get_id();
    bool Is_capability_state_dirty();
    Property_list Build_parameter_list(const proto::Device_command& cmd);

    void Build_command(
        proto::Device_command* cmd,
        Property_list args = Property_list()
        );

    std::string Get_name();
    bool Is_mission_item();
};

Detailed Documentation

Typedefs

typedef std::shared_ptr<Vsm_command> Ptr

Pointer type.

typedef std::weak_ptr<Vsm_command> Weak_ptr

Pointer type.

Methods

template <typename... Args>
static Ptr Create(Args&&... args)

Create an instance.