Hello,

I'm heaving some troubles with the Traci Distance request.

According to the documentation the message has the following parameters:

byte

integer

Position

Position

byte

ubyte

value type compound

item number (always 3)

start position

end position

value type ubyte

Distance Type



When I send the message according to this format, the simulation crashed.

I've taken a look in the source code of the TraCIServerAPI_Simulation.cpp and 
discovered the reason of the crash.
The message has a checked unsigned byte for the distance type. At line 451 a 
call is made to read a 'normal' unsigned byte. The distType gets the wrong 
value (0x07 = UBYTE) and the number of byte read doesn't match the length of 
the message.

The following code change solved the problem:

// read distance type
//int distType = inputStorage.readUnsignedByte();
int distType = 0;
if (!server.readTypeCheckingUnsignedByte(inputStorage, distType)) {
server.writeStatusCmd(commandId, RTYPE_ERR, "Destination position type must be 
of type ubyte.");
       return false;
}

Another possible bug-fix is sending the distance type as an unchecked unsigned 
byte and leave the cpp code unchanged.

What is the preferred solution?

Met vriendelijke groet,







Wim van Husen
Engineer Productontwikkeling

T +31 88 811 56 27
M +31 6 22 60 93 12
[email protected]<mailto:[email protected]>

Sweco Nederland B.V.
De Holle Bilt 22
3732 HM  De Bilt
T +31 88 811 66 00
Handelsregister 30129769
www.sweco.nl<http://www.sweco.nl>



[cid:[email protected]]









------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
sumo-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sumo-user

Reply via email to