chrono::vehicle::ChExternalDriver Class Reference
Description
Driver.
#include <ChExternalDriver.h>
Inheritance diagram for chrono::vehicle::ChExternalDriver:
Collaboration diagram for chrono::vehicle::ChExternalDriver:
Public Member Functions | |
ChExternalDriver (ChVehicle &vehicle, int port) | |
virtual void | Synchronize (double time) override |
Update the state of this driver system at the current time. | |
void | AddDataGenerator (std::shared_ptr< DataGeneratorFunctor > functor, float updateRate=-1) |
Add a data generator that is used to send data. More... | |
void | AddDataParser (std::shared_ptr< DataParserFunctor > functor) |
Add a data parser that is used when receiving data. More... | |
Public Member Functions inherited from chrono::vehicle::ChDriver | |
ChDriver (ChVehicle &vehicle) | |
Construct a driver subsystem associated with the given vehicle. | |
double | GetThrottle () const |
Get the driver throttle input (in the range [0,1]) | |
double | GetSteering () const |
Get the driver steering input (in the range [-1,+1]) | |
double | GetBraking () const |
Get the driver braking input (in the range [0,1]) | |
DriverInputs | GetInputs () const |
Get all current inputs at once. | |
virtual void | Initialize () |
Initialize this driver system. | |
virtual void | Advance (double step) |
Advance the state of this driver system by the specified time step. | |
bool | LogInit (const std::string &filename) |
Initialize output file for recording driver inputs. | |
bool | Log (double time) |
Record the current driver inputs to the log file. | |
void | SetSteering (double val, double min_val=-1, double max_val=1) |
Overwrite the value for the driver steering input. | |
void | SetThrottle (double val, double min_val=0, double max_val=1) |
Overwrite the value for the driver throttle input. | |
void | SetBraking (double val, double min_val=0, double max_val=1) |
Overwrite the value for the driver braking input. | |
Protected Member Functions | |
bool | SendData (double time) |
Exchange data with the client, by sending a vector of floating point values over TCP socket connection (values are double precision, little endian, 4 bytes each) Simulator actual time is also passed as first value. | |
bool | ReceiveData () |
Exchange data with the client, by receiving a vector of floating point values over TCP socket connection (values are double precision, little endian, 4 bytes each) External time is also received as first value. | |
bool | WaitConnection (int port) |
Wait for a client to connect to the interface, on a given port, and wait until not connected. More... | |
Additional Inherited Members | |
Protected Attributes inherited from chrono::vehicle::ChDriver | |
ChVehicle & | m_vehicle |
reference to associated vehicle | |
double | m_throttle |
current value of throttle input | |
double | m_steering |
current value of steering input | |
double | m_braking |
current value of braking input | |
Member Function Documentation
◆ AddDataGenerator()
void chrono::vehicle::ChExternalDriver::AddDataGenerator | ( | std::shared_ptr< DataGeneratorFunctor > | functor, |
float | updateRate = -1 |
||
) |
Add a data generator that is used to send data.
On each Synchronize, generators are invoked based on their update rate, and data is sent to the client (external control stack).
◆ AddDataParser()
void chrono::vehicle::ChExternalDriver::AddDataParser | ( | std::shared_ptr< DataParserFunctor > | functor | ) |
Add a data parser that is used when receiving data.
On each Synchronize, parser are invoked based on the messages that are received
◆ WaitConnection()
|
protected |
Wait for a client to connect to the interface, on a given port, and wait until not connected.
port is a free port number, for example 50009.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_vehicle/driver/ChExternalDriver.h
- /builds/uwsbel/chrono/src/chrono_vehicle/driver/ChExternalDriver.cpp