![]() |
SUMO - Simulation of Urban MObility
|
TraCI server used to control sumo by a remote TraCI client. More...
#include <TraCIServer.h>
Data Structures | |
class | Subscription |
Representation of a subscription. More... | |
Public Types | |
typedef bool(* | CmdExecutor) (TraCIServer &server, tcpip::Storage &inputStorage, tcpip::Storage &outputStorage) |
Definition of a method to be called for serving an associated commandID. More... | |
Public Member Functions | |
void | collectObjectsInRange (int domain, const PositionVector &shape, SUMOReal range, std::set< std::string > &into) |
SUMOTime | getTargetTime () |
const std::map< MSNet::VehicleState, std::vector< std::string > > & | getVehicleStateChanges () const |
void | postProcessVTD () |
void | setVTDControlled (MSVehicle *v, MSLane *l, SUMOReal pos, int edgeOffset, ConstMSEdgeVector route, SUMOTime t) |
void | vehicleStateChanged (const SUMOVehicle *const vehicle, MSNet::VehicleState to) |
Called if a vehicle changes its state. More... | |
void | writeResponseWithLength (tcpip::Storage &outputStorage, tcpip::Storage &tempMsg) |
Writing Status Messages | |
void | writeStatusCmd (int commandId, int status, const std::string &description, tcpip::Storage &outputStorage) |
Writes a status command to the given storage. More... | |
void | writeStatusCmd (int commandId, int status, const std::string &description) |
Writes a status command to myOutputStorage. More... | |
bool | writeErrorStatusCmd (int commandId, const std::string &description, tcpip::Storage &outputStorage) |
Writes a status command to the given storage with status = RTYPE_ERR. More... | |
Helpers for reading and checking values | |
bool | readTypeCheckingInt (tcpip::Storage &inputStorage, int &into) |
Reads the value type and an int, verifying the type. More... | |
bool | readTypeCheckingDouble (tcpip::Storage &inputStorage, double &into) |
Reads the value type and a double, verifying the type. More... | |
bool | readTypeCheckingString (tcpip::Storage &inputStorage, std::string &into) |
Reads the value type and a string, verifying the type. More... | |
bool | readTypeCheckingStringList (tcpip::Storage &inputStorage, std::vector< std::string > &into) |
Reads the value type and a string list, verifying the type. More... | |
bool | readTypeCheckingColor (tcpip::Storage &inputStorage, RGBColor &into) |
Reads the value type and a color, verifying the type. More... | |
bool | readTypeCheckingPosition2D (tcpip::Storage &inputStorage, Position &into) |
Reads the value type and a 2D position, verifying the type. More... | |
bool | readTypeCheckingBoundary (tcpip::Storage &inputStorage, Boundary &into) |
Reads the value type and a 2D bounding box, verifying the type. More... | |
bool | readTypeCheckingByte (tcpip::Storage &inputStorage, int &into) |
Reads the value type and a byte, verifying the type. More... | |
bool | readTypeCheckingUnsignedByte (tcpip::Storage &inputStorage, int &into) |
Reads the value type and an unsigned byte, verifying the type. More... | |
bool | readTypeCheckingPolygon (tcpip::Storage &inputStorage, PositionVector &into) |
Reads the value type and a polygon, verifying the type. More... | |
Static Public Member Functions | |
static TraCIServer * | getInstance () |
static void | processCommandsUntilSimStep (SUMOTime step) |
process all commands until a simulation step is wanted More... | |
Initialisation and Shutdown | |
static void | openSocket (const std::map< int, CmdExecutor > &execs) |
Initialises the server. More... | |
static void | close () |
request termination of connection More... | |
static bool | wasClosed () |
check whether close was requested More... | |
Private Member Functions | |
bool | addObjectVariableSubscription (const int commandId, const bool hasContext) |
int | dispatchCommand () |
bool | findObjectShape (int domain, const std::string &id, PositionVector &shape) |
void | initialiseSubscription (const Subscription &s) |
TraCIServer & | operator= (const TraCIServer &s) |
Invalidated assignment operator. More... | |
bool | processSingleSubscription (const TraCIServer::Subscription &s, tcpip::Storage &writeInto, std::string &errors) |
void | removeSubscription (int commandId, const std::string &identity, int domain) |
TraCIServer (const SUMOTime begin, const int port=0) | |
Constructor. More... | |
virtual | ~TraCIServer () |
Destructor. More... | |
Server-internal command handling | |
bool | commandGetVersion () |
Returns the TraCI-version. More... | |
void | postProcessSimulationStep2 () |
Handles subscriptions to send after a simstep2 command. More... | |
Private Attributes | |
const bool | myAmEmbedded |
Whether the server runs in embedded mode. More... | |
bool | myDoingSimStep |
Whether a step is currently done. More... | |
std::map< int, CmdExecutor > | myExecutors |
Map of commandIds -> their executors; applicable if the executor applies to the method footprint. More... | |
tcpip::Storage | myInputStorage |
The storage to read from. More... | |
LANE_RTREE_QUAL * | myLaneTree |
A storage of lanes. More... | |
std::map< int, NamedRTree * > | myObjects |
A storage of objects. More... | |
tcpip::Storage | myOutputStorage |
The storage to writeto. More... | |
std::map< int, int > | myParameterSizes |
Map of variable ids to the size of the parameter in bytes. More... | |
tcpip::Socket * | mySocket |
The socket on which server is listening on. More... | |
std::vector< Subscription > | mySubscriptions |
The list of known, still valid subscriptions. More... | |
SUMOTime | myTargetTime |
The time step to reach until processing the next commands. More... | |
std::map< MSNet::VehicleState, std::vector< std::string > > | myVehicleStateChanges |
Changes in the states of simulated vehicles. More... | |
std::map< std::string, MSVehicle * > | myVTDControlledVehicles |
Static Private Attributes | |
static bool | myDoCloseConnection = false |
Whether the connection was set to be to close. More... | |
static TraCIServer * | myInstance = 0 |
Singleton instance of the server. More... | |
TraCI server used to control sumo by a remote TraCI client.
Definition at line 74 of file TraCIServer.h.
typedef bool(* TraCIServer::CmdExecutor) (TraCIServer &server, tcpip::Storage &inputStorage, tcpip::Storage &outputStorage) |
Definition of a method to be called for serving an associated commandID.
Definition at line 77 of file TraCIServer.h.
|
private |
Constructor.
[in] | port | The port to listen to (to open) |
Definition at line 106 of file TraCIServer.cpp.
References tcpip::Socket::accept(), MSNet::addVehicleStateListener(), CMD_GET_AREAL_DETECTOR_VARIABLE, CMD_GET_EDGE_VARIABLE, CMD_GET_INDUCTIONLOOP_VARIABLE, CMD_GET_JUNCTION_VARIABLE, CMD_GET_LANE_VARIABLE, CMD_GET_MULTI_ENTRY_EXIT_DETECTOR_VARIABLE, CMD_GET_PERSON_VARIABLE, CMD_GET_POI_VARIABLE, CMD_GET_POLYGON_VARIABLE, CMD_GET_ROUTE_VARIABLE, CMD_GET_SIM_VARIABLE, CMD_GET_TL_VARIABLE, CMD_GET_VEHICLE_VARIABLE, CMD_GET_VEHICLETYPE_VARIABLE, CMD_SET_EDGE_VARIABLE, CMD_SET_LANE_VARIABLE, CMD_SET_PERSON_VARIABLE, CMD_SET_POI_VARIABLE, CMD_SET_POLYGON_VARIABLE, CMD_SET_ROUTE_VARIABLE, CMD_SET_SIM_VARIABLE, CMD_SET_TL_VARIABLE, CMD_SET_VEHICLE_VARIABLE, CMD_SET_VEHICLETYPE_VARIABLE, MSNet::getInstance(), MsgHandler::getWarningInstance(), MSGlobals::gUsingInternalLanes, MsgHandler::inform(), myAmEmbedded, myDoCloseConnection, myExecutors, myParameterSizes, mySocket, myVehicleStateChanges, TraCIServerAPI_Edge::processGet(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_Route::processGet(), TraCIServerAPI_ArealDetector::processGet(), TraCIServerAPI_MeMeDetector::processGet(), TraCIServerAPI_POI::processGet(), TraCIServerAPI_Polygon::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Junction::processGet(), TraCIServerAPI_VehicleType::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Person::processGet(), TraCIServerAPI_Simulation::processGet(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_Edge::processSet(), TraCIServerAPI_Route::processSet(), TraCIServerAPI_POI::processSet(), TraCIServerAPI_Polygon::processSet(), TraCIServerAPI_TLS::processSet(), TraCIServerAPI_Vehicle::processSet(), TraCIServerAPI_Simulation::processSet(), TraCIServerAPI_Person::processSet(), TraCIServerAPI_Lane::processSet(), TraCIServerAPI_VehicleType::processSet(), toString(), VAR_LEADER, MSNet::VEHICLE_STATE_ARRIVED, MSNet::VEHICLE_STATE_BUILT, MSNet::VEHICLE_STATE_DEPARTED, MSNet::VEHICLE_STATE_ENDING_PARKING, MSNet::VEHICLE_STATE_ENDING_STOP, MSNet::VEHICLE_STATE_ENDING_TELEPORT, MSNet::VEHICLE_STATE_NEWROUTE, MSNet::VEHICLE_STATE_STARTING_PARKING, MSNet::VEHICLE_STATE_STARTING_STOP, MSNet::VEHICLE_STATE_STARTING_TELEPORT, tcpip::SocketException::what(), WRITE_MESSAGE, and WRITE_WARNING.
Referenced by getVehicleStateChanges(), openSocket(), and processCommandsUntilSimStep().
|
privatevirtual |
Destructor.
Definition at line 171 of file TraCIServer.cpp.
References tcpip::Socket::close(), MSNet::getInstance(), myLaneTree, myObjects, mySocket, and MSNet::removeVehicleStateListener().
Referenced by getVehicleStateChanges().
|
private |
Definition at line 836 of file TraCIServer.cpp.
References initialiseSubscription(), myInputStorage, myParameterSizes, tcpip::Storage::readChar(), tcpip::Storage::readDouble(), tcpip::Storage::readInt(), tcpip::Storage::readString(), tcpip::Storage::readUnsignedByte(), removeSubscription(), and SUMOReal.
Referenced by dispatchCommand().
|
static |
request termination of connection
Definition at line 201 of file TraCIServer.cpp.
References CMD_CLOSE, myDoCloseConnection, myInstance, myOutputStorage, mySocket, RTYPE_OK, tcpip::Socket::sendExact(), and writeStatusCmd().
Referenced by MSNet::closeSimulation(), and getInstance().
void TraCIServer::collectObjectsInRange | ( | int | domain, |
const PositionVector & | shape, | ||
SUMOReal | range, | ||
std::set< std::string > & | into | ||
) |
Definition at line 685 of file TraCIServer.cpp.
References CMD_GET_EDGE_VARIABLE, CMD_GET_INDUCTIONLOOP_VARIABLE, CMD_GET_JUNCTION_VARIABLE, CMD_GET_LANE_VARIABLE, CMD_GET_POI_VARIABLE, CMD_GET_POLYGON_VARIABLE, CMD_GET_VEHICLE_VARIABLE, MSLane::fill(), PositionVector::getBoxBoundary(), TraCIServerAPI_Junction::getTree(), TraCIServerAPI_InductionLoop::getTree(), TraCIServerAPI_POI::getTree(), TraCIServerAPI_Polygon::getTree(), Boundary::grow(), LANE_RTREE_QUAL, myLaneTree, myObjects, MSLane::visit(), Boundary::xmax(), Boundary::xmin(), Boundary::ymax(), and Boundary::ymin().
Referenced by getVehicleStateChanges(), processSingleSubscription(), and TraCIServerAPI_Vehicle::vtdMap().
|
private |
Returns the TraCI-version.
Definition at line 495 of file TraCIServer.cpp.
References CMD_GETVERSION, myOutputStorage, RTYPE_OK, tcpip::Storage::size(), TRACI_VERSION, VERSION_STRING, tcpip::Storage::writeInt(), writeStatusCmd(), tcpip::Storage::writeStorage(), tcpip::Storage::writeString(), and tcpip::Storage::writeUnsignedByte().
Referenced by dispatchCommand(), and getVehicleStateChanges().
|
private |
Definition at line 400 of file TraCIServer.cpp.
References addObjectVariableSubscription(), CMD_CLOSE, CMD_GETVERSION, CMD_SIMSTEP2, CMD_SUBSCRIBE_AREAL_DETECTOR_CONTEXT, CMD_SUBSCRIBE_AREAL_DETECTOR_VARIABLE, CMD_SUBSCRIBE_EDGE_CONTEXT, CMD_SUBSCRIBE_EDGE_VARIABLE, CMD_SUBSCRIBE_GUI_CONTEXT, CMD_SUBSCRIBE_GUI_VARIABLE, CMD_SUBSCRIBE_INDUCTIONLOOP_CONTEXT, CMD_SUBSCRIBE_INDUCTIONLOOP_VARIABLE, CMD_SUBSCRIBE_JUNCTION_CONTEXT, CMD_SUBSCRIBE_JUNCTION_VARIABLE, CMD_SUBSCRIBE_LANE_CONTEXT, CMD_SUBSCRIBE_LANE_VARIABLE, CMD_SUBSCRIBE_MULTI_ENTRY_EXIT_DETECTOR_CONTEXT, CMD_SUBSCRIBE_MULTI_ENTRY_EXIT_DETECTOR_VARIABLE, CMD_SUBSCRIBE_PERSON_CONTEXT, CMD_SUBSCRIBE_PERSON_VARIABLE, CMD_SUBSCRIBE_POI_CONTEXT, CMD_SUBSCRIBE_POI_VARIABLE, CMD_SUBSCRIBE_POLYGON_CONTEXT, CMD_SUBSCRIBE_POLYGON_VARIABLE, CMD_SUBSCRIBE_ROUTE_CONTEXT, CMD_SUBSCRIBE_ROUTE_VARIABLE, CMD_SUBSCRIBE_SIM_CONTEXT, CMD_SUBSCRIBE_SIM_VARIABLE, CMD_SUBSCRIBE_TL_CONTEXT, CMD_SUBSCRIBE_TL_VARIABLE, CMD_SUBSCRIBE_VEHICLE_CONTEXT, CMD_SUBSCRIBE_VEHICLE_VARIABLE, CMD_SUBSCRIBE_VEHICLETYPE_CONTEXT, CMD_SUBSCRIBE_VEHICLETYPE_VARIABLE, commandGetVersion(), DELTA_T, MSNet::getInstance(), myAmEmbedded, myDoCloseConnection, myExecutors, myInputStorage, myInstance, myOutputStorage, myTargetTime, myVehicleStateChanges, tcpip::Storage::position(), postProcessSimulationStep2(), tcpip::Storage::readChar(), tcpip::Storage::readInt(), tcpip::Storage::readUnsignedByte(), RTYPE_ERR, RTYPE_NOTIMPLEMENTED, MSNet::simulationStep(), tcpip::Storage::valid_pos(), and writeStatusCmd().
Referenced by getVehicleStateChanges(), and processCommandsUntilSimStep().
|
private |
Definition at line 618 of file TraCIServer.cpp.
References CMD_SUBSCRIBE_EDGE_CONTEXT, CMD_SUBSCRIBE_GUI_CONTEXT, CMD_SUBSCRIBE_INDUCTIONLOOP_CONTEXT, CMD_SUBSCRIBE_JUNCTION_CONTEXT, CMD_SUBSCRIBE_LANE_CONTEXT, CMD_SUBSCRIBE_MULTI_ENTRY_EXIT_DETECTOR_CONTEXT, CMD_SUBSCRIBE_PERSON_CONTEXT, CMD_SUBSCRIBE_POI_CONTEXT, CMD_SUBSCRIBE_POLYGON_CONTEXT, CMD_SUBSCRIBE_ROUTE_CONTEXT, CMD_SUBSCRIBE_SIM_CONTEXT, CMD_SUBSCRIBE_TL_CONTEXT, CMD_SUBSCRIBE_VEHICLE_CONTEXT, CMD_SUBSCRIBE_VEHICLETYPE_CONTEXT, TraCIServerAPI_InductionLoop::getPosition(), TraCIServerAPI_Junction::getPosition(), TraCIServerAPI_POI::getPosition(), TraCIServerAPI_Vehicle::getPosition(), TraCIServerAPI_Person::getPosition(), TraCIServerAPI_Edge::getShape(), TraCIServerAPI_Polygon::getShape(), and TraCIServerAPI_Lane::getShape().
Referenced by processSingleSubscription().
|
inlinestatic |
Definition at line 83 of file TraCIServer.h.
References close(), myInstance, openSocket(), postProcessVTD(), processCommandsUntilSimStep(), setVTDControlled(), SUMOReal, vehicleStateChanged(), wasClosed(), writeErrorStatusCmd(), and writeStatusCmd().
Referenced by MSNet::simulationStep().
|
inline |
Definition at line 80 of file TraCIServer.h.
References myTargetTime.
Referenced by MSNet::simulationStep().
|
inline |
Definition at line 159 of file TraCIServer.h.
References collectObjectsInRange(), commandGetVersion(), dispatchCommand(), myVehicleStateChanges, postProcessSimulationStep2(), readTypeCheckingBoundary(), readTypeCheckingByte(), readTypeCheckingColor(), readTypeCheckingDouble(), readTypeCheckingInt(), readTypeCheckingPolygon(), readTypeCheckingPosition2D(), readTypeCheckingString(), readTypeCheckingStringList(), readTypeCheckingUnsignedByte(), SUMOReal, TraCIServer(), writeResponseWithLength(), and ~TraCIServer().
Referenced by TraCIServerAPI_Simulation::processGet(), TraCIServerAPI_Simulation::writeVehicleStateIDs(), and TraCIServerAPI_Simulation::writeVehicleStateNumber().
|
private |
Definition at line 580 of file TraCIServer.cpp.
References TraCIServer::Subscription::commandId, TraCIServer::Subscription::endTime, MSNet::getCurrentTimeStep(), MSNet::getInstance(), myOutputStorage, mySubscriptions, processSingleSubscription(), RTYPE_ERR, RTYPE_OK, writeStatusCmd(), and tcpip::Storage::writeStorage().
Referenced by addObjectVariableSubscription().
|
static |
Initialises the server.
[in] | execs | The (additional) command executors to use |
Definition at line 186 of file TraCIServer.cpp.
References OptionsCont::getOptions(), myDoCloseConnection, myExecutors, myInstance, string2time(), and TraCIServer().
Referenced by getInstance(), load(), and GUILoadThread::run().
|
private |
Invalidated assignment operator.
|
private |
Handles subscriptions to send after a simstep2 command.
Definition at line 514 of file TraCIServer.cpp.
References TraCIServer::Subscription::beginTime, CMD_SIMSTEP2, CMD_SUBSCRIBE_VEHICLE_CONTEXT, CMD_SUBSCRIBE_VEHICLE_VARIABLE, TraCIServer::Subscription::commandId, TraCIServer::Subscription::endTime, MSNet::getCurrentTimeStep(), MSNet::getInstance(), TraCIServer::Subscription::id, myOutputStorage, mySubscriptions, myVehicleStateChanges, processSingleSubscription(), RTYPE_OK, MSNet::VEHICLE_STATE_ARRIVED, tcpip::Storage::writeInt(), writeStatusCmd(), and tcpip::Storage::writeStorage().
Referenced by dispatchCommand(), getVehicleStateChanges(), and processCommandsUntilSimStep().
void TraCIServer::postProcessVTD | ( | ) |
Definition at line 230 of file TraCIServer.cpp.
References MSNet::getInstance(), MSVehicleControl::getVehicle(), MSNet::getVehicleControl(), myVTDControlledVehicles, and WRITE_WARNING.
Referenced by getInstance(), and MSNet::simulationStep().
|
static |
process all commands until a simulation step is wanted
Definition at line 254 of file TraCIServer.cpp.
References tcpip::Storage::begin(), CMD_SIMSTEP2, dispatchCommand(), tcpip::Storage::end(), FileHelpers::getFilePath(), OptionsCont::getOptions(), myAmEmbedded, myDoCloseConnection, myDoingSimStep, myInputStorage, myInstance, myOutputStorage, mySocket, myTargetTime, myVehicleStateChanges, postProcessSimulationStep2(), tcpip::Socket::receiveExact(), tcpip::Storage::reset(), tcpip::Socket::sendExact(), tcpip::Storage::size(), string2time(), TraCIServer(), tcpip::Storage::valid_pos(), tcpip::SocketException::what(), and tcpip::Storage::writeChar().
Referenced by getInstance(), and MSNet::simulationStep().
|
private |
Definition at line 740 of file TraCIServer.cpp.
References collectObjectsInRange(), TraCIServer::Subscription::commandId, TraCIServer::Subscription::contextDomain, TraCIServer::Subscription::contextVars, findObjectShape(), TraCIServer::Subscription::id, ID_LIST, myExecutors, TraCIServer::Subscription::parameters, TraCIServer::Subscription::range, tcpip::Storage::readInt(), tcpip::Storage::readString(), tcpip::Storage::readUnsignedByte(), RTYPE_ERR, RTYPE_NOTIMPLEMENTED, RTYPE_OK, tcpip::Storage::size(), TYPE_STRING, TraCIServer::Subscription::variables, tcpip::Storage::writeInt(), tcpip::Storage::writePacket(), writeStatusCmd(), tcpip::Storage::writeStorage(), tcpip::Storage::writeString(), and tcpip::Storage::writeUnsignedByte().
Referenced by initialiseSubscription(), and postProcessSimulationStep2().
bool TraCIServer::readTypeCheckingBoundary | ( | tcpip::Storage & | inputStorage, |
Boundary & | into | ||
) |
Reads the value type and a 2D bounding box, verifying the type.
Definition at line 944 of file TraCIServer.cpp.
References tcpip::Storage::readDouble(), tcpip::Storage::readUnsignedByte(), Boundary::set(), SUMOReal, and TYPE_BOUNDINGBOX.
Referenced by getVehicleStateChanges(), and TraCIServerAPI_GUI::processSet().
bool TraCIServer::readTypeCheckingByte | ( | tcpip::Storage & | inputStorage, |
int & | into | ||
) |
Reads the value type and a byte, verifying the type.
Definition at line 958 of file TraCIServer.cpp.
References tcpip::Storage::readByte(), tcpip::Storage::readUnsignedByte(), and TYPE_BYTE.
Referenced by getVehicleStateChanges(), and TraCIServerAPI_Vehicle::processSet().
bool TraCIServer::readTypeCheckingColor | ( | tcpip::Storage & | inputStorage, |
RGBColor & | into | ||
) |
Reads the value type and a color, verifying the type.
Definition at line 918 of file TraCIServer.cpp.
References tcpip::Storage::readUnsignedByte(), RGBColor::set(), and TYPE_COLOR.
Referenced by getVehicleStateChanges(), TraCIServerAPI_POI::processSet(), TraCIServerAPI_Polygon::processSet(), TraCIServerAPI_Vehicle::processSet(), and TraCIServerAPI_VehicleType::setVariable().
bool TraCIServer::readTypeCheckingDouble | ( | tcpip::Storage & | inputStorage, |
double & | into | ||
) |
Reads the value type and a double, verifying the type.
Definition at line 888 of file TraCIServer.cpp.
References tcpip::Storage::readDouble(), tcpip::Storage::readUnsignedByte(), and TYPE_DOUBLE.
Referenced by getVehicleStateChanges(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Edge::processSet(), TraCIServerAPI_Vehicle::processSet(), TraCIServerAPI_GUI::processSet(), TraCIServerAPI_Lane::processSet(), and TraCIServerAPI_VehicleType::setVariable().
bool TraCIServer::readTypeCheckingInt | ( | tcpip::Storage & | inputStorage, |
int & | into | ||
) |
Reads the value type and an int, verifying the type.
Definition at line 878 of file TraCIServer.cpp.
References tcpip::Storage::readInt(), tcpip::Storage::readUnsignedByte(), and TYPE_INTEGER.
Referenced by getVehicleStateChanges(), TraCIServerAPI_Edge::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Edge::processSet(), TraCIServerAPI_Polygon::processSet(), TraCIServerAPI_POI::processSet(), TraCIServerAPI_TLS::processSet(), and TraCIServerAPI_Vehicle::processSet().
bool TraCIServer::readTypeCheckingPolygon | ( | tcpip::Storage & | inputStorage, |
PositionVector & | into | ||
) |
Reads the value type and a polygon, verifying the type.
Definition at line 978 of file TraCIServer.cpp.
References tcpip::Storage::readDouble(), tcpip::Storage::readUnsignedByte(), SUMOReal, and TYPE_POLYGON.
Referenced by getVehicleStateChanges(), and TraCIServerAPI_Polygon::processSet().
bool TraCIServer::readTypeCheckingPosition2D | ( | tcpip::Storage & | inputStorage, |
Position & | into | ||
) |
Reads the value type and a 2D position, verifying the type.
Definition at line 932 of file TraCIServer.cpp.
References POSITION_2D, tcpip::Storage::readDouble(), tcpip::Storage::readUnsignedByte(), Position::set(), and SUMOReal.
Referenced by getVehicleStateChanges(), TraCIServerAPI_POI::processSet(), and TraCIServerAPI_GUI::processSet().
bool TraCIServer::readTypeCheckingString | ( | tcpip::Storage & | inputStorage, |
std::string & | into | ||
) |
Reads the value type and a string, verifying the type.
Definition at line 898 of file TraCIServer.cpp.
References tcpip::Storage::readString(), tcpip::Storage::readUnsignedByte(), and TYPE_STRING.
Referenced by getVehicleStateChanges(), TraCIServerAPI_Edge::processGet(), TraCIServerAPI_POI::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Polygon::processGet(), TraCIServerAPI_VehicleType::processGet(), TraCIServerAPI_Route::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Person::processGet(), TraCIServerAPI_Simulation::processGet(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_Edge::processSet(), TraCIServerAPI_POI::processSet(), TraCIServerAPI_TLS::processSet(), TraCIServerAPI_Polygon::processSet(), TraCIServerAPI_Route::processSet(), TraCIServerAPI_GUI::processSet(), TraCIServerAPI_Vehicle::processSet(), TraCIServerAPI_Simulation::processSet(), TraCIServerAPI_Person::processSet(), TraCIServerAPI_Lane::processSet(), and TraCIServerAPI_VehicleType::setVariable().
bool TraCIServer::readTypeCheckingStringList | ( | tcpip::Storage & | inputStorage, |
std::vector< std::string > & | into | ||
) |
Reads the value type and a string list, verifying the type.
Definition at line 908 of file TraCIServer.cpp.
References tcpip::Storage::readStringList(), tcpip::Storage::readUnsignedByte(), and TYPE_STRINGLIST.
Referenced by getVehicleStateChanges(), TraCIServerAPI_Edge::processSet(), TraCIServerAPI_Route::processSet(), TraCIServerAPI_Vehicle::processSet(), and TraCIServerAPI_Lane::processSet().
bool TraCIServer::readTypeCheckingUnsignedByte | ( | tcpip::Storage & | inputStorage, |
int & | into | ||
) |
Reads the value type and an unsigned byte, verifying the type.
Definition at line 968 of file TraCIServer.cpp.
References tcpip::Storage::readUnsignedByte(), and TYPE_UBYTE.
Referenced by TraCIServerAPI_Simulation::commandPositionConversion(), getVehicleStateChanges(), and TraCIServerAPI_Polygon::processSet().
|
private |
Definition at line 598 of file TraCIServer.cpp.
References mySubscriptions, RTYPE_OK, and writeStatusCmd().
Referenced by addObjectVariableSubscription().
void TraCIServer::setVTDControlled | ( | MSVehicle * | v, |
MSLane * | l, | ||
SUMOReal | pos, | ||
int | edgeOffset, | ||
ConstMSEdgeVector | route, | ||
SUMOTime | t | ||
) |
Definition at line 222 of file TraCIServer.cpp.
References MSBaseVehicle::getID(), MSVehicle::getInfluencer(), myVTDControlledVehicles, and MSVehicle::Influencer::setVTDControlled().
Referenced by getInstance(), and TraCIServerAPI_Vehicle::processSet().
|
virtual |
Called if a vehicle changes its state.
[in] | vehicle | The vehicle which changed its state |
[in] | to | The state the vehicle has changed to |
Implements MSNet::VehicleStateListener.
Definition at line 246 of file TraCIServer.cpp.
References SUMOVehicle::getID(), myDoCloseConnection, and myVehicleStateChanges.
Referenced by getInstance().
|
static |
check whether close was requested
Definition at line 216 of file TraCIServer.cpp.
References myDoCloseConnection.
Referenced by getInstance(), GUIRunThread::makeStep(), MSNet::simulate(), and MSNet::simulationState().
bool TraCIServer::writeErrorStatusCmd | ( | int | commandId, |
const std::string & | description, | ||
tcpip::Storage & | outputStorage | ||
) |
Writes a status command to the given storage with status = RTYPE_ERR.
[in] | commandId | The id of the command to respond to |
[in] | description | The status description (error message, for example) |
Definition at line 573 of file TraCIServer.cpp.
References RTYPE_ERR, and writeStatusCmd().
Referenced by TraCIServerAPI_Vehicle::commandDistanceRequest(), getInstance(), TraCIServerAPI_Edge::processGet(), TraCIServerAPI_ArealDetector::processGet(), TraCIServerAPI_Junction::processGet(), TraCIServerAPI_Polygon::processGet(), TraCIServerAPI_Route::processGet(), TraCIServerAPI_MeMeDetector::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_VehicleType::processGet(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_POI::processGet(), TraCIServerAPI_GUI::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Simulation::processGet(), TraCIServerAPI_Person::processGet(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_Edge::processSet(), TraCIServerAPI_Route::processSet(), TraCIServerAPI_TLS::processSet(), TraCIServerAPI_Polygon::processSet(), TraCIServerAPI_POI::processSet(), TraCIServerAPI_GUI::processSet(), TraCIServerAPI_Vehicle::processSet(), TraCIServerAPI_Simulation::processSet(), TraCIServerAPI_Person::processSet(), TraCIServerAPI_Lane::processSet(), TraCIServerAPI_VehicleType::processSet(), and TraCIServerAPI_VehicleType::setVariable().
void TraCIServer::writeResponseWithLength | ( | tcpip::Storage & | outputStorage, |
tcpip::Storage & | tempMsg | ||
) |
Definition at line 866 of file TraCIServer.cpp.
References tcpip::Storage::size(), tcpip::Storage::writeInt(), tcpip::Storage::writeStorage(), and tcpip::Storage::writeUnsignedByte().
Referenced by getVehicleStateChanges(), TraCIServerAPI_Edge::processGet(), TraCIServerAPI_ArealDetector::processGet(), TraCIServerAPI_MeMeDetector::processGet(), TraCIServerAPI_VehicleType::processGet(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_POI::processGet(), TraCIServerAPI_Polygon::processGet(), TraCIServerAPI_Junction::processGet(), TraCIServerAPI_Route::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_GUI::processGet(), TraCIServerAPI_Simulation::processGet(), TraCIServerAPI_Person::processGet(), and TraCIServerAPI_Lane::processGet().
void TraCIServer::writeStatusCmd | ( | int | commandId, |
int | status, | ||
const std::string & | description, | ||
tcpip::Storage & | outputStorage | ||
) |
Writes a status command to the given storage.
[in] | commandId | The id of the command to respond to |
[in] | status | The status to send |
[in] | description | The status description (error message, for example) |
Definition at line 559 of file TraCIServer.cpp.
References RTYPE_ERR, RTYPE_NOTIMPLEMENTED, toHex(), WRITE_ERROR, tcpip::Storage::writeString(), and tcpip::Storage::writeUnsignedByte().
Referenced by close(), TraCIServerAPI_Simulation::commandDistanceRequest(), commandGetVersion(), TraCIServerAPI_Simulation::commandPositionConversion(), dispatchCommand(), getInstance(), initialiseSubscription(), postProcessSimulationStep2(), TraCIServerAPI_Edge::processGet(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Junction::processGet(), TraCIServerAPI_VehicleType::processGet(), TraCIServerAPI_MeMeDetector::processGet(), TraCIServerAPI_ArealDetector::processGet(), TraCIServerAPI_POI::processGet(), TraCIServerAPI_Polygon::processGet(), TraCIServerAPI_Route::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_GUI::processGet(), TraCIServerAPI_Person::processGet(), TraCIServerAPI_Simulation::processGet(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_Edge::processSet(), TraCIServerAPI_TLS::processSet(), TraCIServerAPI_Route::processSet(), TraCIServerAPI_Polygon::processSet(), TraCIServerAPI_POI::processSet(), TraCIServerAPI_GUI::processSet(), TraCIServerAPI_Vehicle::processSet(), TraCIServerAPI_Simulation::processSet(), TraCIServerAPI_Person::processSet(), TraCIServerAPI_Lane::processSet(), TraCIServerAPI_VehicleType::processSet(), processSingleSubscription(), removeSubscription(), writeErrorStatusCmd(), and writeStatusCmd().
void TraCIServer::writeStatusCmd | ( | int | commandId, |
int | status, | ||
const std::string & | description | ||
) |
Writes a status command to myOutputStorage.
[in] | commandId | The id of the command to respond to |
[in] | status | The status to send |
[in] | description | The status description (error message, for example) |
Definition at line 553 of file TraCIServer.cpp.
References myOutputStorage, and writeStatusCmd().
|
private |
Whether the server runs in embedded mode.
Definition at line 317 of file TraCIServer.h.
Referenced by dispatchCommand(), processCommandsUntilSimStep(), and TraCIServer().
|
staticprivate |
Whether the connection was set to be to close.
Definition at line 298 of file TraCIServer.h.
Referenced by close(), dispatchCommand(), openSocket(), processCommandsUntilSimStep(), TraCIServer(), vehicleStateChanged(), and wasClosed().
|
private |
Whether a step is currently done.
Definition at line 314 of file TraCIServer.h.
Referenced by processCommandsUntilSimStep().
|
private |
Map of commandIds -> their executors; applicable if the executor applies to the method footprint.
Definition at line 320 of file TraCIServer.h.
Referenced by dispatchCommand(), openSocket(), processSingleSubscription(), and TraCIServer().
|
private |
The storage to read from.
Definition at line 307 of file TraCIServer.h.
Referenced by addObjectVariableSubscription(), dispatchCommand(), and processCommandsUntilSimStep().
|
staticprivate |
Singleton instance of the server.
Definition at line 295 of file TraCIServer.h.
Referenced by close(), dispatchCommand(), getInstance(), openSocket(), and processCommandsUntilSimStep().
|
private |
A storage of lanes.
Definition at line 380 of file TraCIServer.h.
Referenced by collectObjectsInRange(), and ~TraCIServer().
|
private |
A storage of objects.
Definition at line 377 of file TraCIServer.h.
Referenced by collectObjectsInRange(), and ~TraCIServer().
|
private |
The storage to writeto.
Definition at line 310 of file TraCIServer.h.
Referenced by close(), commandGetVersion(), dispatchCommand(), initialiseSubscription(), postProcessSimulationStep2(), processCommandsUntilSimStep(), and writeStatusCmd().
|
private |
Map of variable ids to the size of the parameter in bytes.
Definition at line 323 of file TraCIServer.h.
Referenced by addObjectVariableSubscription(), and TraCIServer().
|
private |
The socket on which server is listening on.
Definition at line 301 of file TraCIServer.h.
Referenced by close(), processCommandsUntilSimStep(), TraCIServer(), and ~TraCIServer().
|
private |
The list of known, still valid subscriptions.
Definition at line 371 of file TraCIServer.h.
Referenced by initialiseSubscription(), postProcessSimulationStep2(), and removeSubscription().
|
private |
The time step to reach until processing the next commands.
Definition at line 304 of file TraCIServer.h.
Referenced by dispatchCommand(), getTargetTime(), and processCommandsUntilSimStep().
|
private |
Changes in the states of simulated vehicles.
Definition at line 374 of file TraCIServer.h.
Referenced by dispatchCommand(), getVehicleStateChanges(), postProcessSimulationStep2(), processCommandsUntilSimStep(), TraCIServer(), and vehicleStateChanged().
|
private |
Definition at line 325 of file TraCIServer.h.
Referenced by postProcessVTD(), and setVTDControlled().