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
