45std::vector<std::string>
46LaneArea::getIDList() {
47 std::vector<std::string> ids;
54LaneArea::getIDCount() {
55 std::vector<std::string> ids;
61LaneArea::getJamLengthVehicle(
const std::string& detID) {
62 return getDetector(detID)->getCurrentJamLengthInVehicles();
67LaneArea::getJamLengthMeters(
const std::string& detID) {
68 return getDetector(detID)->getCurrentJamLengthInMeters();
73LaneArea::getLastStepMeanSpeed(
const std::string& detID) {
74 return getDetector(detID)->getCurrentMeanSpeed();
78std::vector<std::string>
79LaneArea::getLastStepVehicleIDs(
const std::string& detID) {
80 return getDetector(detID)->getCurrentVehicleIDs();
85LaneArea::getLastStepOccupancy(
const std::string& detID) {
86 return getDetector(detID)->getCurrentOccupancy();
91LaneArea::getPosition(
const std::string& detID) {
92 return getDetector(detID)->getStartPos();
97LaneArea::getLaneID(
const std::string& detID) {
98 return getDetector(detID)->getLane()->getID();
103LaneArea::getLength(
const std::string& detID) {
110LaneArea::getLastStepVehicleNumber(
const std::string& detID) {
111 return getDetector(detID)->getCurrentVehicleNumber();
116LaneArea::getLastStepHaltingNumber(
const std::string& detID) {
117 return getDetector(detID)->getCurrentHaltingNumber();
122LaneArea::getParameter(
const std::string& detID,
const std::string& param) {
123 return getDetector(detID)->getParameter(param,
"");
131LaneArea::setParameter(
const std::string& detID,
const std::string& name,
const std::string& value) {
132 getDetector(detID)->setParameter(name, value);
140LaneArea::getDetector(
const std::string&
id) {
143 throw TraCIException(
"Lane area detector '" +
id +
"' is not known");
151 if (myTree ==
nullptr) {
153 for (
const std::string&
id : getIDList()) {
155 storeShape(
id, shape);
157 const float cmin[2] = {(float) b.
xmin(), (float) b.
ymin()};
158 const float cmax[2] = {(float) b.
xmax(), (float) b.
ymax()};
159 myTree->Insert(cmin, cmax, getDetector(
id));
177 shape.push_back(det->
getLanes().back()->getShape().positionAtOffset(det->
getEndPos()));
181std::shared_ptr<VariableWrapper>
182LaneArea::makeWrapper() {
183 return std::make_shared<Helper::SubscriptionWrapper>(handleVariable, mySubscriptionResults, myContextSubscriptionResults);
188LaneArea::overrideVehicleNumber(
const std::string& detID,
int num) {
189 getDetector(detID)->overrideVehicleNumber(num);
194LaneArea::handleVariable(
const std::string& objID,
const int variable, VariableWrapper* wrapper,
tcpip::Storage* paramData) {
197 return wrapper->wrapStringList(objID, variable, getIDList());
199 return wrapper->wrapInt(objID, variable, getIDCount());
201 return wrapper->wrapInt(objID, variable, getLastStepVehicleNumber(objID));
203 return wrapper->wrapDouble(objID, variable, getLastStepMeanSpeed(objID));
205 return wrapper->wrapStringList(objID, variable, getLastStepVehicleIDs(objID));
207 return wrapper->wrapInt(objID, variable, getLastStepHaltingNumber(objID));
209 return wrapper->wrapInt(objID, variable, getJamLengthVehicle(objID));
211 return wrapper->wrapDouble(objID, variable, getJamLengthMeters(objID));
213 return wrapper->wrapDouble(objID, variable, getLastStepOccupancy(objID));
215 return wrapper->wrapDouble(objID, variable, getPosition(objID));
217 return wrapper->wrapString(objID, variable, getLaneID(objID));
219 return wrapper->wrapDouble(objID, variable, getLength(objID));
222 return wrapper->wrapString(objID, variable, getParameter(objID, paramData->
readString()));
225 return wrapper->wrapStringPair(objID, variable, getParameterWithKey(objID, paramData->
readString()));
@ SUMO_TAG_LANE_AREA_DETECTOR
alternative tag for e2 detector
#define LIBSUMO_SUBSCRIPTION_IMPLEMENTATION(CLASS, DOM)
#define LIBSUMO_GET_PARAMETER_WITH_KEY_IMPLEMENTATION(CLASS)
A class that stores a 2D geometrical boundary.
double ymin() const
Returns minimum y-coordinate.
double xmin() const
Returns minimum x-coordinate.
double ymax() const
Returns maximum y-coordinate.
double xmax() const
Returns maximum x-coordinate.
C++ TraCI client API implementation.
const NamedObjectCont< MSDetectorFileOutput * > & getTypedDetectors(SumoXMLTag type) const
Returns the list of detectors of the given type.
An areal detector corresponding to a sequence of consecutive lanes.
std::vector< MSLane * > getLanes()
Returns a vector containing pointers to the lanes covered by the detector ordered from its first to i...
double getStartPos() const
Returns the begin position of the detector.
double getEndPos() const
Returns the end position of the detector.
double getLength() const
Returns the length of the detector.
MSDetectorControl & getDetectorControl()
Returns the detector control.
static MSNet * getInstance()
Returns the pointer to the unique instance of MSNet (singleton).
T get(const std::string &id) const
Retrieves an item.
void insertIDs(std::vector< std::string > &into) const
int size() const
Returns the number of stored items within the container.
A RT-tree for efficient storing of SUMO's Named objects.
Boundary getBoxBoundary() const
Returns a boundary enclosing this list of lines.
virtual std::string readString()
virtual int readUnsignedByte()
TRACI_CONST int LAST_STEP_VEHICLE_ID_LIST
TRACI_CONST int LAST_STEP_VEHICLE_NUMBER
TRACI_CONST int TRACI_ID_LIST
std::map< std::string, libsumo::SubscriptionResults > ContextSubscriptionResults
TRACI_CONST int VAR_POSITION
TRACI_CONST int LAST_STEP_MEAN_SPEED
std::map< std::string, libsumo::TraCIResults > SubscriptionResults
{object->{variable->value}}
TRACI_CONST int JAM_LENGTH_METERS
TRACI_CONST int LAST_STEP_VEHICLE_HALTING_NUMBER
TRACI_CONST int VAR_LENGTH
TRACI_CONST int VAR_PARAMETER
TRACI_CONST int VAR_LANE_ID
TRACI_CONST int LAST_STEP_OCCUPANCY
TRACI_CONST int VAR_PARAMETER_WITH_KEY
TRACI_CONST int JAM_LENGTH_VEHICLE