25 #ifndef SRC_MASTER_INCLUDE_CORBO_MASTER_MASTER_H_ 26 #define SRC_MASTER_INCLUDE_CORBO_MASTER_MASTER_H_ 28 #include <corbo-communication/messages/corbo_parameters.pb.h> 29 #include <corbo-communication/services/master_service.grpc.pb.h> 40 #include <grpc++/grpc++.h> 64 class Master :
public services::MasterService::Service
80 void start(
const std::string& server_address,
bool blocking =
true);
87 bool setcorboMessage(
const corbo::messages::corboParameters& msg, std::stringstream* issues);
89 bool setPlant(
const messages::Plant& msg, std::stringstream* issues =
nullptr);
90 bool setController(
const corbo::messages::Controller& msg, std::stringstream* issues =
nullptr);
91 bool setObserver(
const corbo::messages::Observer& msg, std::stringstream* issues =
nullptr);
92 bool setTask(
const corbo::messages::Task& msg, std::stringstream* issues =
nullptr);
98 grpc::Status getPlant(grpc::ServerContext* context,
const corbo::messages::Void* request, corbo::messages::Plant* response)
override;
103 grpc::Status getController(grpc::ServerContext* context,
const corbo::messages::Void* request, corbo::messages::Controller* response)
override;
108 grpc::Status getObserver(grpc::ServerContext* context,
const corbo::messages::Void* request, corbo::messages::Observer* response)
override;
113 grpc::Status getTask(grpc::ServerContext* context,
const corbo::messages::Void* request, corbo::messages::Task* response)
override;
117 grpc::ServerWriter<corbo::messages::Signal>* response_stream)
override;
121 grpc::ServerWriter<corbo::messages::Signal>* response_stream)
override;
129 grpc::Status stop(grpc::ServerContext* context,
const corbo::messages::Void* request, corbo::messages::Void* response)
override;
140 #endif // SRC_MASTER_INCLUDE_CORBO_MASTER_MASTER_H_ grpc::Status ping(grpc::ServerContext *context, const corbo::messages::Void *request, corbo::messages::Status *response) override
Send and receive dummy message in order to check the connectivity between master and client...
Master()
Default constructor.
bool setController(const corbo::messages::Controller &msg, std::stringstream *issues=nullptr)
bool setTask(const corbo::messages::Task &msg, std::stringstream *issues=nullptr)
grpc::Status performTask(grpc::ServerContext *context, const corbo::messages::Void *request, grpc::ServerWriter< corbo::messages::Signal > *response_stream) override
Perform the current task and broadcast stream of signals.
Standard environment for control tasks.
grpc::Status getPlant(grpc::ServerContext *context, const corbo::messages::Void *request, corbo::messages::Plant *response) override
Get current plant configuration.
std::shared_ptr< TaskInterface > Ptr
bool setObserver(const corbo::messages::Observer &msg, std::stringstream *issues=nullptr)
grpc::Status getTask(grpc::ServerContext *context, const corbo::messages::Void *request, corbo::messages::Task *response) override
Get current task configuration.
General service client for rpc communication.
void start(const std::string &server_address, bool blocking=true)
Start master server (blocking call)
grpc::Status getAvailableSignals(grpc::ServerContext *context, const corbo::messages::Void *request, grpc::ServerWriter< corbo::messages::Signal > *response_stream) override
Retrieve available signals from task (and included modules)
bool setPlant(const messages::Plant &msg, std::stringstream *issues=nullptr)
grpc::Status getObserver(grpc::ServerContext *context, const corbo::messages::Void *request, corbo::messages::Observer *response) override
Get current observer configuration.
grpc::Status stop(grpc::ServerContext *context, const corbo::messages::Void *request, corbo::messages::Void *response) override
Execution stop of the current task requested (setting global ok() variable to false, needs to be supported by the selected task)
bool setcorboMessage(const corbo::messages::corboParameters &msg, std::stringstream *issues)
void setDefault()
Restore default master settings.
bool loadFromFile(const std::string &filename)
std::unique_ptr< grpc::Server > _server
grpc::Status getController(grpc::ServerContext *context, const corbo::messages::Void *request, corbo::messages::Controller *response) override
Get current controller configuration.
grpc::Status verifyConfig(grpc::ServerContext *context, const corbo::messages::Void *request, corbo::messages::Status *response) override
Check if the current configuration seems to be valid (refer to TaskInterface::verify()) ...