Public Member Functions | Protected Member Functions | Private Attributes | List of all members
corbo::Master Class Reference

General service client for rpc communication. More...

#include <master.h>

Inheritance diagram for corbo::Master:
Inheritance graph
[legend]

Public Member Functions

bool loadFromFile (const std::string &filename)
 
 Master ()
 Default constructor. More...
 
bool setController (const corbo::messages::Controller &msg, std::stringstream *issues=nullptr)
 
bool setcorboMessage (const corbo::messages::corboParameters &msg, std::stringstream *issues)
 
void setDefault ()
 Restore default master settings. More...
 
bool setObserver (const corbo::messages::Observer &msg, std::stringstream *issues=nullptr)
 
bool setPlant (const messages::Plant &msg, std::stringstream *issues=nullptr)
 
bool setTask (const corbo::messages::Task &msg, std::stringstream *issues=nullptr)
 
void start (const std::string &server_address, bool blocking=true)
 Start master server (blocking call) More...
 

Protected Member Functions

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) More...
 
grpc::Status getController (grpc::ServerContext *context, const corbo::messages::Void *request, corbo::messages::Controller *response) override
 Get current controller configuration. More...
 
grpc::Status getObserver (grpc::ServerContext *context, const corbo::messages::Void *request, corbo::messages::Observer *response) override
 Get current observer configuration. More...
 
grpc::Status getPlant (grpc::ServerContext *context, const corbo::messages::Void *request, corbo::messages::Plant *response) override
 Get current plant configuration. More...
 
grpc::Status getTask (grpc::ServerContext *context, const corbo::messages::Void *request, corbo::messages::Task *response) override
 Get current task configuration. More...
 
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. More...
 
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. More...
 
grpc::Status setController (grpc::ServerContext *context, const corbo::messages::Controller *request, corbo::messages::Status *response) override
 Set and configure controller. More...
 
grpc::Status setObserver (grpc::ServerContext *context, const corbo::messages::Observer *request, corbo::messages::Status *response) override
 Set and configure observer. More...
 
grpc::Status setPlant (grpc::ServerContext *context, const corbo::messages::Plant *request, corbo::messages::Status *response) override
 Set and configure plant. More...
 
grpc::Status setTask (grpc::ServerContext *context, const corbo::messages::Task *request, corbo::messages::Status *response) override
 Set and configure task. More...
 
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) More...
 
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()) More...
 

Private Attributes

Environment _environment
 
std::unique_ptr< grpc::Server > _server
 
TaskInterface::Ptr _task
 

Detailed Description

General service client for rpc communication.

This class implements a master for (g)RPC communication with the main service client (MasterServiceClient, defined in the communication module).

Remarks
Make sure that any executable that instanciates a Master also includes relevant module headers in order to register classes at their corresponding factories.
See also
MasterServiceClient
Author
Christoph Rösmann (chris.nosp@m.toph.nosp@m..roes.nosp@m.mann.nosp@m.@tu-d.nosp@m.ortm.nosp@m.und.d.nosp@m.e)

Definition at line 64 of file master.h.

Constructor & Destructor Documentation

◆ Master()

corbo::Master::Master ( )
inline

Default constructor.

Definition at line 68 of file master.h.

Member Function Documentation

◆ getAvailableSignals()

grpc::Status corbo::Master::getAvailableSignals ( grpc::ServerContext *  context,
const corbo::messages::Void *  request,
grpc::ServerWriter< corbo::messages::Signal > *  response_stream 
)
overrideprotected

Retrieve available signals from task (and included modules)

Definition at line 351 of file master.cpp.

◆ getController()

grpc::Status corbo::Master::getController ( grpc::ServerContext *  context,
const corbo::messages::Void *  request,
corbo::messages::Controller *  response 
)
overrideprotected

Get current controller configuration.

Definition at line 300 of file master.cpp.

◆ getObserver()

grpc::Status corbo::Master::getObserver ( grpc::ServerContext *  context,
const corbo::messages::Void *  request,
corbo::messages::Observer *  response 
)
overrideprotected

Get current observer configuration.

Definition at line 322 of file master.cpp.

◆ getPlant()

grpc::Status corbo::Master::getPlant ( grpc::ServerContext *  context,
const corbo::messages::Void *  request,
corbo::messages::Plant *  response 
)
overrideprotected

Get current plant configuration.

Definition at line 278 of file master.cpp.

◆ getTask()

grpc::Status corbo::Master::getTask ( grpc::ServerContext *  context,
const corbo::messages::Void *  request,
corbo::messages::Task *  response 
)
overrideprotected

Get current task configuration.

Definition at line 344 of file master.cpp.

◆ loadFromFile()

bool corbo::Master::loadFromFile ( const std::string &  filename)

Definition at line 85 of file master.cpp.

◆ performTask()

grpc::Status corbo::Master::performTask ( grpc::ServerContext *  context,
const corbo::messages::Void *  request,
grpc::ServerWriter< corbo::messages::Signal > *  response_stream 
)
overrideprotected

Perform the current task and broadcast stream of signals.

Definition at line 362 of file master.cpp.

◆ ping()

grpc::Status corbo::Master::ping ( grpc::ServerContext *  context,
const corbo::messages::Void *  request,
corbo::messages::Status *  response 
)
overrideprotected

Send and receive dummy message in order to check the connectivity between master and client.

Definition at line 396 of file master.cpp.

◆ setController() [1/2]

bool corbo::Master::setController ( const corbo::messages::Controller &  msg,
std::stringstream *  issues = nullptr 
)

◆ setController() [2/2]

grpc::Status corbo::Master::setController ( grpc::ServerContext *  context,
const corbo::messages::Controller *  request,
corbo::messages::Status *  response 
)
overrideprotected

Set and configure controller.

Definition at line 285 of file master.cpp.

◆ setcorboMessage()

bool corbo::Master::setcorboMessage ( const corbo::messages::corboParameters &  msg,
std::stringstream *  issues 
)

Definition at line 113 of file master.cpp.

◆ setDefault()

void corbo::Master::setDefault ( )

Restore default master settings.

Definition at line 61 of file master.cpp.

◆ setObserver() [1/2]

bool corbo::Master::setObserver ( const corbo::messages::Observer &  msg,
std::stringstream *  issues = nullptr 
)

◆ setObserver() [2/2]

grpc::Status corbo::Master::setObserver ( grpc::ServerContext *  context,
const corbo::messages::Observer *  request,
corbo::messages::Status *  response 
)
overrideprotected

Set and configure observer.

Definition at line 307 of file master.cpp.

◆ setPlant() [1/2]

bool corbo::Master::setPlant ( const messages::Plant &  msg,
std::stringstream *  issues = nullptr 
)

Definition at line 130 of file master.cpp.

◆ setPlant() [2/2]

grpc::Status corbo::Master::setPlant ( grpc::ServerContext *  context,
const corbo::messages::Plant *  request,
corbo::messages::Status *  response 
)
overrideprotected

Set and configure plant.

Definition at line 263 of file master.cpp.

◆ setTask() [1/2]

bool corbo::Master::setTask ( const corbo::messages::Task &  msg,
std::stringstream *  issues = nullptr 
)

◆ setTask() [2/2]

grpc::Status corbo::Master::setTask ( grpc::ServerContext *  context,
const corbo::messages::Task *  request,
corbo::messages::Status *  response 
)
overrideprotected

Set and configure task.

Definition at line 329 of file master.cpp.

◆ start()

void corbo::Master::start ( const std::string &  server_address,
bool  blocking = true 
)

Start master server (blocking call)

Start master with a given server address, e.g. "localhost:50051". This call blocks further program execution.

Parameters
[in]server_addressServer address including port.
[in]blockingIf true, the method blocks thread until shutdown

Definition at line 37 of file master.cpp.

◆ stop()

grpc::Status corbo::Master::stop ( grpc::ServerContext *  context,
const corbo::messages::Void *  request,
corbo::messages::Void *  response 
)
overrideprotected

Execution stop of the current task requested (setting global ok() variable to false, needs to be supported by the selected task)

Definition at line 403 of file master.cpp.

◆ verifyConfig()

grpc::Status corbo::Master::verifyConfig ( grpc::ServerContext *  context,
const corbo::messages::Void *  request,
corbo::messages::Status *  response 
)
overrideprotected

Check if the current configuration seems to be valid (refer to TaskInterface::verify())

Definition at line 381 of file master.cpp.

Member Data Documentation

◆ _environment

Environment corbo::Master::_environment
private

Definition at line 132 of file master.h.

◆ _server

std::unique_ptr<grpc::Server> corbo::Master::_server
private

Definition at line 135 of file master.h.

◆ _task

TaskInterface::Ptr corbo::Master::_task
private

Definition at line 133 of file master.h.


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


control_box_rst
Author(s): Christoph Rösmann
autogenerated on Mon Feb 28 2022 22:08:02