Hi,
I just answered your question on Stack Overflow
http://stackoverflow.com/questions/40996508/error-in-converting-vehicle-position-xy-coordinates-to-latitude-longitude-i/41046003#41046003
In addition to what Jakob mentioned you used the wrong hex codes.
Best regards,
Michael
Am 07.12.2016 um 19:11 schrieb Wasim Ahmed:
> Hello Jakob,Thanks for replying, i tried what you suggested but it didn't
> work out still same error.
> Error: tcpip::Storage::readIsSafe: want to read 823066624 bytes from Storage,
> but only 21 remaining Quitting (on error).
>
> I will paste my entire in function, in case i am doing something stupid
> ,please take a look!
> TraCITestClient::Position TraCITestClient::getPosition()
> {
> send_commandGetVariable(0xa4, 0x42, "veh1");//first i got XY coordinates
>
> tcpip::Storage inMsg;
> try {
> std::string acknowledgement;
> check_resultState(inMsg, 0xa4, false, &acknowledgement);
>
> } catch (tcpip::SocketException& e) {
> pos.x = -1;
> pos.y = -1;
> return pos;
> }
> check_commandGetResult(inMsg, 0xa4, -1, false);
> // report result state
> try {
> int variableID = inMsg.readUnsignedByte();
> std::string objectID = inMsg.readString();
>
> int valueDataType = inMsg.readUnsignedByte();
>
> pos.x = inMsg.readDouble();
> pos.y = inMsg.readDouble();
>
> } catch (tcpip::SocketException& e) {
> std::stringstream msg;
> msg << "Error while receiving command: " << e.what();
> errorMsg(msg);
> pos.x = -1;
> pos.y = -1;
> return pos;
> }
>
> //till here i am getting correct value in pos.x and pos.y
>
> // now i want to convert these XY coordinates to actual Lat Long
>
>
> tcpip::Storage* tmp = new tcpip::Storage;
>
>
> tmp->writeByte(TYPE_COMPOUND);
> tmp->writeInt(2);
>
> tmp->writeByte(POSITION_2D);// as suggested added this line
> tmp->writeDouble(pos.x);
> tmp->writeDouble(pos.y);
> tmp->writeByte(TYPE_UBYTE);
>
> tmp->writeUnsignedByte(POSITION_LON_LAT);
>
> send_commandGetVariable(0x82, 0x58, "veh1",tmp); //**here i am getting error**
>
> tcpip::Storage inMsgX;
> try {
> std::string acknowledgement;
> check_resultState(inMsgX, 0x82, false, &acknowledgement);
>
> } catch (tcpip::SocketException& e) {
> return pos;
> }
> check_commandGetResult(inMsgX, 0x82, -1, false);
> // report result state
> try {
>
> int variableID = inMsgX.readUnsignedByte();
> std::string objectID = inMsgX.readString();
>
> int valueDataType = inMsgX.readUnsignedByte();
>
>
> pos.x = inMsgX.readDouble();
> pos.y = inMsgX.readDouble();
>
> } catch (tcpip::SocketException& e) {
> std::stringstream msg;
> msg << "Error while receiving command: " << e.what();
> errorMsg(msg);
> return pos;
> }
>
> return pos;
> }what could be the error, are those command Id's correct?
>
> On Wednesday, 7 December 2016 2:28 PM, Jakob Erdmann
> <[email protected]> wrote:
>
>
> Hello,
> you need to specify the source position type
> tmp->writeByte(POSITION_2D)
> before sending x and y
>
> regards,
> Jakob
>
>
> From: Wasim Ahmed <[email protected]>
> To: "[email protected]" <[email protected]>
> Cc:
> Date: Tue, 6 Dec 2016 12:52:27 +0000 (UTC)
> Subject: Fw: SUMO-TRACI-QUERY [Converting XY Coordinates to Lat/Long]
>
>
>
>
> Hello, I wanted to convert the retrieved XY coordinates to Latitude and
> Longitude. I saw the command to do so is 0x82 and 0x58 in documentation
> [http://www.sumo.dlr.de/wiki/ TraCI/Simulation_Value_
> Retrieval#Command_0x82:_ Position_Conversion]. I have valid XY Coordinates
> in pos.x and pos.y. So in order to convert my XY Coordinates to Lat/Long .
> I am using following command. Don’t know what’s wrong with it:
> tcpip::Storage*tmp = new tcpip::Storage; tmp->writeByte(TYPE_COMPOUND);
> tmp->writeInt(2); tmp->writeDouble(pos.x); tmp->writeDouble(pos.y);
> tmp->writeByte(TYPE_UBYTE); tmp->writeUnsignedByte( POSITION_LON_LAT);
> send_commandGetVariable(0x82, 0x58,“veh1”,tmp); I debugged the code and
> error is coming in “send_commandGetVariable(0x82, 0x58,“veh1”,tmp);”
> function. Getting following error on SUMO-GUI Server: Error:
> tcpip::Storage::readIsSafe: want to read 823066624 bytes from Storage, but
> only 20 remaining Quitting (on error). Any Help!! ThanksJ
>
>
>
>
>
>
> ------------------------------------------------------------------------------
> Developer Access Program for Intel Xeon Phi Processors
> Access to Intel Xeon Phi processor-based developer platforms.
> With one year of Intel Parallel Studio XE.
> Training and support from Colfax.
> Order your platform today.http://sdm.link/xeonphi
> _______________________________________________
> sumo-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/sumo-user
>
------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/xeonphi
_______________________________________________
sumo-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sumo-user