From: <sv...@ww...> - 2004-06-12 12:28:55
|
Author: wolverine Date: 2004-06-12 05:28:47 -0700 (Sat, 12 Jun 2004) New Revision: 1018 Modified: trunk/CSP/CSPSim/Source/ClientNode.cpp trunk/CSP/CSPSim/Source/DynamicObject.cpp Log: Switching Networking to use a MemoryWriter class to load the message. Modified: trunk/CSP/CSPSim/Source/ClientNode.cpp =================================================================== --- trunk/CSP/CSPSim/Source/ClientNode.cpp 2004-06-12 12:28:21 UTC (rev 1017) +++ trunk/CSP/CSPSim/Source/ClientNode.cpp 2004-06-12 12:28:47 UTC (rev 1018) @@ -6,6 +6,7 @@ #include "Bus.h" +#include <SimData/Archive.h> #include <SimData/Ref.h> #include <SimData/Date.h> #include <SimData/DataManager.h> @@ -73,6 +74,9 @@ // strcpy(payloadPtr, "Hello From CSP Network Test Client!"); // Port port = message->getOriginatorPort(); + simdata::uint32 id; + simdata::uint32 type; + float timestamp; DataChannel<simdata::Vector3>::Ref b_GlobalPosition; DataChannel<simdata::Vector3>::Ref b_AngularVelocity; DataChannel<simdata::Vector3>::Ref b_LinearVelocity; @@ -83,19 +87,34 @@ b_LinearVelocity = DataChannel<simdata::Vector3>::newLocal(Kinetics::Velocity, simdata::Vector3::ZERO); b_Attitude = DataChannel<simdata::Quat>::newLocal(Kinetics::Attitude, simdata::Quat::IDENTITY); + id = 1; + type = 1; + timestamp = 0.0; b_GlobalPosition->value() = simdata::Vector3(1.0, 1.0, 1.0); b_AngularVelocity->value() = simdata::Vector3(1.0, 1.0, 1.0); b_LinearVelocity->value() = simdata::Vector3(1.0, 1.0, 1.0); b_Attitude->value() = simdata::Quat(1.0, 1.0, 1.0, 0.0); - ptrPayload->id = 1; - ptrPayload->timeStamp = 1.0; - b_GlobalPosition->value().writeBinary((unsigned char *)&(ptrPayload->globalPosition),24); - b_LinearVelocity->value().writeBinary((unsigned char *)&(ptrPayload->linearVelocity),24); - b_AngularVelocity->value().writeBinary((unsigned char *)&(ptrPayload->angularVelocity),24); - b_Attitude->value().writeBinary((unsigned char *)&(ptrPayload->attitude),32); + // ptrPayload->id = 1; + // ptrPayload->timeStamp = 1.0; + simdata::MemoryWriter writer((simdata::uint8 *)ptrPayload); + writer << (int)id; + writer << (int)type; + writer << timestamp; + +// b_GlobalPosition->value().writeBinary((unsigned char *)&(ptrPayload->globalPosition),24); +// b_LinearVelocity->value().writeBinary((unsigned char *)&(ptrPayload->linearVelocity),24); +// b_AngularVelocity->value().writeBinary((unsigned char *)&(ptrPayload->angularVelocity),24); +// b_Attitude->value().writeBinary((unsigned char *)&(ptrPayload->attitude),32); + b_GlobalPosition->value().serialize(writer); + b_LinearVelocity->value().serialize(writer); + b_AngularVelocity->value().serialize(writer); + b_Attitude->value().serialize(writer); + + ptrPayload->dump(); + networkMessenger->queueMessage(remoteNode, message); networkMessenger->sendQueuedMessages(); Modified: trunk/CSP/CSPSim/Source/DynamicObject.cpp =================================================================== --- trunk/CSP/CSPSim/Source/DynamicObject.cpp 2004-06-12 12:28:21 UTC (rev 1017) +++ trunk/CSP/CSPSim/Source/DynamicObject.cpp 2004-06-12 12:28:47 UTC (rev 1018) @@ -397,12 +397,22 @@ NetworkMessage * message = CSPSim::theSim->getNetworkMessenger()->allocMessageBuffer(messageType, payloadLen); ObjectUpdateMessagePayload * ptrPayload = (ObjectUpdateMessagePayload*)message->getPayloadPtr(); - ptrPayload->id = m_ID; - ptrPayload->timeStamp = CSPSim::theSim->getElapsedTime(); - b_GlobalPosition->value().writeBinary((unsigned char *)&(ptrPayload->globalPosition),24); - b_LinearVelocity->value().writeBinary((unsigned char *)&(ptrPayload->linearVelocity),24); - b_AngularVelocity->value().writeBinary((unsigned char *)&(ptrPayload->angularVelocity),24); - b_Attitude->value().writeBinary((unsigned char *)&(ptrPayload->attitude),32); +// ptrPayload->id = m_ID; +// ptrPayload->timeStamp = CSPSim::theSim->getElapsedTime(); +// b_GlobalPosition->value().writeBinary((unsigned char *)&(ptrPayload->globalPosition),24); +// b_LinearVelocity->value().writeBinary((unsigned char *)&(ptrPayload->linearVelocity),24); +// b_AngularVelocity->value().writeBinary((unsigned char *)&(ptrPayload->angularVelocity),24); +// b_Attitude->value().writeBinary((unsigned char *)&(ptrPayload->attitude),32); + + simdata::MemoryWriter writer((simdata::uint8*)ptrPayload); + writer << (int)m_ID; + simdata::uint32 objType = 1; + writer << (int)objType; + writer << CSPSim::theSim->getElapsedTime(); + b_GlobalPosition->value().serialize(writer); + b_LinearVelocity->value().serialize(writer); + b_AngularVelocity->value().serialize(writer); + b_Attitude->value().serialize(writer); CSP_LOG(APP, DEBUG, "DynamicObject::getUpdateMessage() - returning message"); |