![]() |
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 | cleanup () |
clean up subscriptions More... | |
void | collectObjectsInRange (int domain, const PositionVector &shape, double 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, Position xyPos, MSLane *l, double pos, double posLat, double angle, 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, TraCIColor &into) |
Reads the value type and a color, verifying the type. More... | |
bool | readTypeCheckingPosition2D (tcpip::Storage &inputStorage, TraCIPosition &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 104 of file TraCIServer.cpp.
References tcpip::Socket::accept(), MSNet::addVehicleStateListener(), CMD_GET_EDGE_VARIABLE, CMD_GET_INDUCTIONLOOP_VARIABLE, CMD_GET_JUNCTION_VARIABLE, CMD_GET_LANE_VARIABLE, CMD_GET_LANEAREA_VARIABLE, CMD_GET_MULTIENTRYEXIT_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_VehicleType::processGet(), TraCIServerAPI_Route::processGet(), TraCIServerAPI_MultiEntryExit::processGet(), TraCIServerAPI_POI::processGet(), TraCIServerAPI_Polygon::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Junction::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Person::processGet(), TraCIServerAPI_Simulation::processGet(), TraCIServerAPI_LaneArea::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 cleanup(), getVehicleStateChanges(), and openSocket().
|
privatevirtual |
Destructor.
Definition at line 169 of file TraCIServer.cpp.
References cleanup(), tcpip::Socket::close(), and mySocket.
Referenced by getVehicleStateChanges().
|
private |
Definition at line 881 of file TraCIServer.cpp.
References initialiseSubscription(), myInputStorage, myParameterSizes, tcpip::Storage::readChar(), tcpip::Storage::readDouble(), tcpip::Storage::readInt(), tcpip::Storage::readString(), tcpip::Storage::readUnsignedByte(), and removeSubscription().
Referenced by dispatchCommand().
void TraCIServer::cleanup | ( | ) |
clean up subscriptions
Definition at line 309 of file TraCIServer.cpp.
References tcpip::Storage::begin(), dispatchCommand(), tcpip::Storage::end(), FileHelpers::getFilePath(), OptionsCont::getOptions(), myDoCloseConnection, myInputStorage, myInstance, myLaneTree, myObjects, myOutputStorage, mySubscriptions, myTargetTime, tcpip::Storage::reset(), string2time(), TraCIServer(), tcpip::SocketException::what(), and tcpip::Storage::writeChar().
Referenced by MSNet::clearAll(), getInstance(), and ~TraCIServer().
|
static |
request termination of connection
Definition at line 195 of file TraCIServer.cpp.
References CMD_CLOSE, myDoCloseConnection, myInstance, myOutputStorage, mySocket, RTYPE_OK, tcpip::Socket::sendExact(), and writeStatusCmd().
Referenced by getInstance(), and main().
void TraCIServer::collectObjectsInRange | ( | int | domain, |
const PositionVector & | shape, | ||
double | range, | ||
std::set< std::string > & | into | ||
) |
Definition at line 730 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 521 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 410 of file TraCIServer.cpp.
References addObjectVariableSubscription(), CMD_CLOSE, CMD_GETVERSION, CMD_LOAD, CMD_SIMSTEP, 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_LANEAREA_CONTEXT, CMD_SUBSCRIBE_LANEAREA_VARIABLE, CMD_SUBSCRIBE_MULTIENTRYEXIT_CONTEXT, CMD_SUBSCRIBE_MULTIENTRYEXIT_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(), TraCI::load(), myAmEmbedded, myDoCloseConnection, myExecutors, myInputStorage, myInstance, myOutputStorage, myTargetTime, myVehicleStateChanges, tcpip::Storage::position(), postProcessSimulationStep2(), tcpip::Storage::readChar(), tcpip::Storage::readInt(), readTypeCheckingStringList(), tcpip::Storage::readUnsignedByte(), RTYPE_ERR, RTYPE_NOTIMPLEMENTED, RTYPE_OK, MSNet::simulationStep(), tcpip::Storage::valid_pos(), writeErrorStatusCmd(), and writeStatusCmd().
Referenced by cleanup(), getVehicleStateChanges(), and processCommandsUntilSimStep().
|
private |
Definition at line 663 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_MULTIENTRYEXIT_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 cleanup(), close(), myInstance, openSocket(), postProcessVTD(), processCommandsUntilSimStep(), setVTDControlled(), vehicleStateChanged(), wasClosed(), writeErrorStatusCmd(), and writeStatusCmd().
Referenced by MSNet::clearAll(), MSNet::postSimStepOutput(), and MSNet::simulationStep().
|
inline |
Definition at line 80 of file TraCIServer.h.
References myTargetTime.
Referenced by MSNet::simulationStep().
|
inline |
Definition at line 161 of file TraCIServer.h.
References collectObjectsInRange(), commandGetVersion(), dispatchCommand(), myVehicleStateChanges, postProcessSimulationStep2(), readTypeCheckingBoundary(), readTypeCheckingByte(), readTypeCheckingColor(), readTypeCheckingDouble(), readTypeCheckingInt(), readTypeCheckingPolygon(), readTypeCheckingPosition2D(), readTypeCheckingString(), readTypeCheckingStringList(), readTypeCheckingUnsignedByte(), TraCIServer(), writeResponseWithLength(), and ~TraCIServer().
Referenced by TraCIServerAPI_Simulation::processGet(), TraCIServerAPI_Simulation::writeVehicleStateIDs(), and TraCIServerAPI_Simulation::writeVehicleStateNumber().
|
private |
Definition at line 606 of file TraCIServer.cpp.
References TraCIServer::Subscription::beginTime, TraCIServer::Subscription::commandId, TraCIServer::Subscription::contextDomain, TraCIServer::Subscription::contextVars, TraCIServer::Subscription::endTime, MSNet::getCurrentTimeStep(), MSNet::getInstance(), TraCIServer::Subscription::id, myOutputStorage, mySubscriptions, TraCIServer::Subscription::parameters, processSingleSubscription(), TraCIServer::Subscription::range, RTYPE_ERR, RTYPE_OK, TraCIServer::Subscription::variables, writeStatusCmd(), and tcpip::Storage::writeStorage().
Referenced by addObjectVariableSubscription().
|
static |
Initialises the server.
[in] | execs | The (additional) command executors to use |
Definition at line 180 of file TraCIServer.cpp.
References OptionsCont::getOptions(), myDoCloseConnection, myExecutors, myInstance, string2time(), and TraCIServer().
Referenced by getInstance(), NLBuilder::loadAndRun(), and GUILoadThread::run().
|
private |
Invalidated assignment operator.
|
private |
Handles subscriptions to send after a simstep2 command.
Definition at line 540 of file TraCIServer.cpp.
References TraCIServer::Subscription::beginTime, CMD_SIMSTEP, 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 224 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 248 of file TraCIServer.cpp.
References CMD_LOAD, CMD_SIMSTEP, dispatchCommand(), myAmEmbedded, myDoCloseConnection, myDoingSimStep, myInputStorage, myInstance, myOutputStorage, mySocket, myTargetTime, myVehicleStateChanges, postProcessSimulationStep2(), tcpip::Socket::receiveExact(), tcpip::Storage::reset(), tcpip::Socket::sendExact(), tcpip::Storage::size(), tcpip::Storage::valid_pos(), and tcpip::SocketException::what().
Referenced by getInstance(), and MSNet::simulationStep().
|
private |
Definition at line 785 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 988 of file TraCIServer.cpp.
References tcpip::Storage::readDouble(), tcpip::Storage::readUnsignedByte(), Boundary::set(), 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 1002 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, |
TraCIColor & | into | ||
) |
Reads the value type and a color, verifying the type.
Definition at line 963 of file TraCIServer.cpp.
References TraCIColor::a, TraCIColor::b, TraCIColor::g, TraCIColor::r, tcpip::Storage::readUnsignedByte(), 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 933 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_Person::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 923 of file TraCIServer.cpp.
References tcpip::Storage::readInt(), tcpip::Storage::readUnsignedByte(), and TYPE_INTEGER.
Referenced by getVehicleStateChanges(), TraCIServerAPI_Edge::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Person::processGet(), TraCIServerAPI_Edge::processSet(), TraCIServerAPI_POI::processSet(), TraCIServerAPI_TLS::processSet(), TraCIServerAPI_Polygon::processSet(), TraCIServerAPI_Vehicle::processSet(), and TraCIServerAPI_Person::processSet().
bool TraCIServer::readTypeCheckingPolygon | ( | tcpip::Storage & | inputStorage, |
PositionVector & | into | ||
) |
Reads the value type and a polygon, verifying the type.
Definition at line 1022 of file TraCIServer.cpp.
References tcpip::Storage::readDouble(), tcpip::Storage::readUnsignedByte(), and TYPE_POLYGON.
Referenced by getVehicleStateChanges(), and TraCIServerAPI_Polygon::processSet().
bool TraCIServer::readTypeCheckingPosition2D | ( | tcpip::Storage & | inputStorage, |
TraCIPosition & | into | ||
) |
Reads the value type and a 2D position, verifying the type.
Definition at line 976 of file TraCIServer.cpp.
References POSITION_2D, tcpip::Storage::readDouble(), tcpip::Storage::readUnsignedByte(), TraCIPosition::x, TraCIPosition::y, and TraCIPosition::z.
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 943 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 953 of file TraCIServer.cpp.
References tcpip::Storage::readStringList(), tcpip::Storage::readUnsignedByte(), and TYPE_STRINGLIST.
Referenced by dispatchCommand(), getVehicleStateChanges(), TraCIServerAPI_Edge::processSet(), TraCIServerAPI_Route::processSet(), TraCIServerAPI_Vehicle::processSet(), TraCIServerAPI_Person::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 1012 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 643 of file TraCIServer.cpp.
References mySubscriptions, RTYPE_OK, and writeStatusCmd().
Referenced by addObjectVariableSubscription().
void TraCIServer::setVTDControlled | ( | MSVehicle * | v, |
Position | xyPos, | ||
MSLane * | l, | ||
double | pos, | ||
double | posLat, | ||
double | angle, | ||
int | edgeOffset, | ||
ConstMSEdgeVector | route, | ||
SUMOTime | t | ||
) |
Definition at line 216 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 240 of file TraCIServer.cpp.
References SUMOVehicle::getID(), myDoCloseConnection, and myVehicleStateChanges.
Referenced by getInstance().
|
static |
check whether close was requested
Definition at line 210 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 599 of file TraCIServer.cpp.
References RTYPE_ERR, and writeStatusCmd().
Referenced by dispatchCommand(), getInstance(), TraCIServerAPI_Edge::processGet(), TraCIServerAPI_Junction::processGet(), TraCIServerAPI_Polygon::processGet(), TraCIServerAPI_Route::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_MultiEntryExit::processGet(), TraCIServerAPI_VehicleType::processGet(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_POI::processGet(), TraCIServerAPI_GUI::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_Simulation::processGet(), TraCIServerAPI_Person::processGet(), TraCIServerAPI_LaneArea::processGet(), TraCIServerAPI_Lane::processGet(), TraCIServerAPI_Edge::processSet(), TraCIServerAPI_Polygon::processSet(), TraCIServerAPI_Route::processSet(), TraCIServerAPI_POI::processSet(), TraCIServerAPI_TLS::processSet(), TraCIServerAPI_Vehicle::processSet(), TraCIServerAPI_GUI::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 911 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_VehicleType::processGet(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_MultiEntryExit::processGet(), TraCIServerAPI_Junction::processGet(), TraCIServerAPI_POI::processGet(), TraCIServerAPI_Polygon::processGet(), TraCIServerAPI_Route::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_GUI::processGet(), TraCIServerAPI_Simulation::processGet(), TraCIServerAPI_Person::processGet(), TraCIServerAPI_LaneArea::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 585 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_Junction::processGet(), TraCIServerAPI_TLS::processGet(), TraCIServerAPI_VehicleType::processGet(), TraCIServerAPI_MultiEntryExit::processGet(), TraCIServerAPI_POI::processGet(), TraCIServerAPI_Polygon::processGet(), TraCIServerAPI_Route::processGet(), TraCIServerAPI_InductionLoop::processGet(), TraCIServerAPI_Vehicle::processGet(), TraCIServerAPI_GUI::processGet(), TraCIServerAPI_Person::processGet(), TraCIServerAPI_Simulation::processGet(), TraCIServerAPI_LaneArea::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(), 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 579 of file TraCIServer.cpp.
References myOutputStorage, and writeStatusCmd().
|
private |
Whether the server runs in embedded mode.
Definition at line 319 of file TraCIServer.h.
Referenced by dispatchCommand(), processCommandsUntilSimStep(), and TraCIServer().
|
staticprivate |
Whether the connection was set to be to close.
Definition at line 300 of file TraCIServer.h.
Referenced by cleanup(), close(), dispatchCommand(), openSocket(), processCommandsUntilSimStep(), TraCIServer(), vehicleStateChanged(), and wasClosed().
|
private |
Whether a step is currently done.
Definition at line 316 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 322 of file TraCIServer.h.
Referenced by dispatchCommand(), openSocket(), processSingleSubscription(), and TraCIServer().
|
private |
The storage to read from.
Definition at line 309 of file TraCIServer.h.
Referenced by addObjectVariableSubscription(), cleanup(), dispatchCommand(), and processCommandsUntilSimStep().
|
staticprivate |
Singleton instance of the server.
Definition at line 297 of file TraCIServer.h.
Referenced by cleanup(), close(), dispatchCommand(), getInstance(), openSocket(), and processCommandsUntilSimStep().
|
private |
A storage of lanes.
Definition at line 382 of file TraCIServer.h.
Referenced by cleanup(), and collectObjectsInRange().
|
private |
A storage of objects.
Definition at line 379 of file TraCIServer.h.
Referenced by cleanup(), and collectObjectsInRange().
|
private |
The storage to writeto.
Definition at line 312 of file TraCIServer.h.
Referenced by cleanup(), close(), commandGetVersion(), dispatchCommand(), initialiseSubscription(), postProcessSimulationStep2(), processCommandsUntilSimStep(), and writeStatusCmd().
|
private |
Map of variable ids to the size of the parameter in bytes.
Definition at line 325 of file TraCIServer.h.
Referenced by addObjectVariableSubscription(), and TraCIServer().
|
private |
The socket on which server is listening on.
Definition at line 303 of file TraCIServer.h.
Referenced by close(), processCommandsUntilSimStep(), TraCIServer(), and ~TraCIServer().
|
private |
The list of known, still valid subscriptions.
Definition at line 373 of file TraCIServer.h.
Referenced by cleanup(), initialiseSubscription(), postProcessSimulationStep2(), and removeSubscription().
|
private |
The time step to reach until processing the next commands.
Definition at line 306 of file TraCIServer.h.
Referenced by cleanup(), dispatchCommand(), getTargetTime(), and processCommandsUntilSimStep().
|
private |
Changes in the states of simulated vehicles.
Definition at line 376 of file TraCIServer.h.
Referenced by dispatchCommand(), getVehicleStateChanges(), postProcessSimulationStep2(), processCommandsUntilSimStep(), TraCIServer(), and vehicleStateChanged().
|
private |
Definition at line 327 of file TraCIServer.h.
Referenced by postProcessVTD(), and setVTDControlled().