NRP Core  1.4.1
EngineJSONNRPClient< ENGINE, SCHEMA > Class Template Reference

NRP - Gazebo Communicator on the NRP side. Converts DataPackInterface classes from/to JSON objects. More...

#include <engine_json_nrp_client.h>

Inheritance diagram for EngineJSONNRPClient< ENGINE, SCHEMA >:
EngineClient< ENGINE, SCHEMA > EngineClientInterface PtrTemplates< EngineClientInterface > PythonEngineJSONNRPClientBase< ENGINE, SCHEMA >

Public Member Functions

 EngineJSONNRPClient (nlohmann::json &config, ProcessLauncherInterface::unique_ptr &&launcher)
 Constructor. More...
 
 EngineJSONNRPClient (const std::string &serverAddress, nlohmann::json &config, ProcessLauncherInterface::unique_ptr &&launcher)
 Constructor. More...
 
virtual ~EngineJSONNRPClient () override=default
 
virtual pid_t launchEngine () override
 Launch the engine. More...
 
virtual void sendDataPacksToEngine (const datapacks_set_t &dataPacks) override
 Sends datapacks to engine. More...
 
virtual const std::vector< std::string > engineProcStartParams () const override
 Get all Engine Process Startup parameters. More...
 
virtual datapacks_vector_t getDataPacksFromEngine (const datapack_identifiers_set_t &requestedDataPackIds) override
 Gets requested datapacks from engine. More...
 
- Public Member Functions inherited from EngineClient< ENGINE, SCHEMA >
 EngineClient (nlohmann::json &engineConfig, ProcessLauncherInterface::unique_ptr &&launcher)
 Constructor. More...
 
 ~EngineClient () override=default
 
const std::string engineName () const override final
 Get Engine Name. More...
 
SimulationTime getEngineTimestep () const override final
 Get engine timestep. More...
 
const nlohmann::jsonengineConfig () const override final
 Get Engine Configuration. More...
 
nlohmann::jsonengineConfig () override final
 Get Engine Configuration. More...
 
const std::string engineSchema () const override final
 Get json schema for this engine type. More...
 
SimulationTime getEngineTime () const override
 Returns current engine (simulation) time. More...
 
void runLoopStepAsync (SimulationTime timeStep) override
 Concrete implementation of EngineClientInterface::runLoopStepAsync() More...
 
void runLoopStepAsyncGet (SimulationTime timeOut) override
 Concrete implementation of EngineClientInterface::runLoopStepAsyncGet() More...
 
- Public Member Functions inherited from EngineClientInterface
 EngineClientInterface (ProcessLauncherInterface::unique_ptr &&launcher)
 
virtual ~EngineClientInterface ()
 
virtual void initialize ()=0
 Initialize engine. More...
 
virtual void reset ()=0
 Reset engine. More...
 
virtual void shutdown ()=0
 Shutdown engine. More...
 

Protected Member Functions

nlohmann::json sendInitCommand (const nlohmann::json &data)
 Send an initialization command. More...
 
nlohmann::json sendResetCommand (const nlohmann::json &data)
 Send a reset command. More...
 
nlohmann::json sendShutdownCommand (const nlohmann::json &data)
 Send a shutdown command. More...
 
std::string waitForRegistration (unsigned int numTries, unsigned int waitTime) const
 Wait for the engine registration server to receive a call from the engine. More...
 
- Protected Member Functions inherited from EngineClient< ENGINE, SCHEMA >
virtual void resetEngineTime ()
 
template<class T >
void setDefaultProperty (std::string key, T value)
 Attempts to set a default value for a property in the engine configuration. If the property has been already set either in the engine configuration file or from the engine schema, its value is not overwritten. More...
 

Additional Inherited Members

- Public Types inherited from EngineClient< ENGINE, SCHEMA >
using engine_t = ENGINE
 
- Public Types inherited from PtrTemplates< EngineClientInterface >
using shared_ptr = std::shared_ptr< EngineClientInterface >
 
using const_shared_ptr = std::shared_ptr< const EngineClientInterface >
 
using unique_ptr = std::unique_ptr< EngineClientInterface >
 
using const_unique_ptr = std::unique_ptr< const EngineClientInterface >
 
- Protected Attributes inherited from EngineClientInterface
ProcessLauncherInterface::unique_ptr _process
 Process Launcher. Will be used to stop process at end. More...
 

Detailed Description

template<class ENGINE, const char * SCHEMA>
class EngineJSONNRPClient< ENGINE, SCHEMA >

NRP - Gazebo Communicator on the NRP side. Converts DataPackInterface classes from/to JSON objects.

Template Parameters
ENGINE_INTERFACEClass derived from GeneralInterface. Currently either PhysicsInterface or BrainInterface

Constructor & Destructor Documentation

◆ EngineJSONNRPClient() [1/2]

template<class ENGINE , const char * SCHEMA>
EngineJSONNRPClient< ENGINE, SCHEMA >::EngineJSONNRPClient ( nlohmann::json config,
ProcessLauncherInterface::unique_ptr &&  launcher 
)
inline

Constructor.

Parameters
configEngine Config
launcherProcess launcher

◆ EngineJSONNRPClient() [2/2]

template<class ENGINE , const char * SCHEMA>
EngineJSONNRPClient< ENGINE, SCHEMA >::EngineJSONNRPClient ( const std::string &  serverAddress,
nlohmann::json config,
ProcessLauncherInterface::unique_ptr &&  launcher 
)
inline

Constructor.

Parameters
serverAddressServer Address to send requests to
configEngine Config
launcherProcess launcher

◆ ~EngineJSONNRPClient()

template<class ENGINE , const char * SCHEMA>
virtual EngineJSONNRPClient< ENGINE, SCHEMA >::~EngineJSONNRPClient ( )
overridevirtualdefault

Member Function Documentation

◆ engineProcStartParams()

template<class ENGINE , const char * SCHEMA>
virtual const std::vector<std::string> EngineJSONNRPClient< ENGINE, SCHEMA >::engineProcStartParams ( ) const
inlineoverridevirtual

Get all Engine Process Startup parameters.

Implements EngineClientInterface.

◆ getDataPacksFromEngine()

template<class ENGINE , const char * SCHEMA>
virtual datapacks_vector_t EngineJSONNRPClient< ENGINE, SCHEMA >::getDataPacksFromEngine ( const datapack_identifiers_set_t datapackIdentifiers)
inlineoverridevirtual

Gets requested datapacks from engine.

Parameters
datapackNamesAll requested datapack ids
Returns
Returns all requested datapacks
Exceptions
Throwson error

Implements EngineClientInterface.

◆ launchEngine()

template<class ENGINE , const char * SCHEMA>
virtual pid_t EngineJSONNRPClient< ENGINE, SCHEMA >::launchEngine ( )
inlineoverridevirtual

Launch the engine.

Returns
Returns engine process ID on success, throws on failure

Reimplemented from EngineClientInterface.

◆ sendDataPacksToEngine()

template<class ENGINE , const char * SCHEMA>
virtual void EngineJSONNRPClient< ENGINE, SCHEMA >::sendDataPacksToEngine ( const datapacks_set_t dataPacks)
inlineoverridevirtual

Sends datapacks to engine.

Parameters
datapacksArrayArray of datapacks that will be send to the engine
Returns
Returns SUCCESS if all datapacks could be handles, ERROR otherwise
Exceptions
Throwson error

Implements EngineClientInterface.

◆ sendInitCommand()

template<class ENGINE , const char * SCHEMA>
nlohmann::json EngineJSONNRPClient< ENGINE, SCHEMA >::sendInitCommand ( const nlohmann::json data)
inlineprotected

Send an initialization command.

Parameters
dataData that should be passed to the engine
Returns
Returns init data from engine

◆ sendResetCommand()

template<class ENGINE , const char * SCHEMA>
nlohmann::json EngineJSONNRPClient< ENGINE, SCHEMA >::sendResetCommand ( const nlohmann::json data)
inlineprotected

Send a reset command.

Parameters
dataData that should be passed to the engine
Returns
Returns reset data from engine

◆ sendShutdownCommand()

template<class ENGINE , const char * SCHEMA>
nlohmann::json EngineJSONNRPClient< ENGINE, SCHEMA >::sendShutdownCommand ( const nlohmann::json data)
inlineprotected

Send a shutdown command.

Parameters
dataData that should be passed to the engine
Returns
Returns init data from engine

◆ waitForRegistration()

template<class ENGINE , const char * SCHEMA>
std::string EngineJSONNRPClient< ENGINE, SCHEMA >::waitForRegistration ( unsigned int  numTries,
unsigned int  waitTime 
) const
inlineprotected

Wait for the engine registration server to receive a call from the engine.

Parameters
numTriesNumber of times to check the registration server for an address
waitTimeWait time (in seconds) between checks
Returns
Returns engine server address if present, empty string otherwise

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