src/netanim/model/animation-interface.cc
changeset 9064 21326214dcd5
parent 9063 32755d0516f4
child 9066 bbf13ac5231c
equal deleted inserted replaced
9063:32755d0516f4 9064:21326214dcd5
   103 
   103 
   104 }
   104 }
   105 
   105 
   106 std::string AnimationInterface::GetNetAnimVersion ()
   106 std::string AnimationInterface::GetNetAnimVersion ()
   107 {
   107 {
   108   return "netanim-3.101";
   108   return "netanim-3.102";
   109 }
   109 }
   110 
   110 
   111 void AnimationInterface::SetStartTime (Time t)
   111 void AnimationInterface::SetStartTime (Time t)
   112 {
   112 {
   113   m_startTime = t;
   113   m_startTime = t;
   712   double lbTx = now.GetSeconds ();
   712   double lbTx = now.GetSeconds ();
   713   double fbRx = now.GetSeconds ();
   713   double fbRx = now.GetSeconds ();
   714   double lbRx = now.GetSeconds ();
   714   double lbRx = now.GetSeconds ();
   715   if (m_xml)
   715   if (m_xml)
   716     {
   716     {
   717       oss << GetXMLOpen_packet (0, 0, fbTx, lbTx, "DummyPktIgnoreThis");
   717       oss << GetXMLOpenClose_p ("p", 0, fbTx, lbTx, 0, fbRx, lbRx, "", "DummyPktIgnoreThis");
   718       oss << GetXMLOpenClose_rx (0, 0, fbRx, lbRx);
       
   719       oss << GetXMLClose ("packet");
       
   720     }
   718     }
   721   WriteN (oss.str ());
   719   WriteN (oss.str ());
   722 
   720 
   723 
   721 
   724 }
   722 }
   736   double lbTx = (now + txTime).GetSeconds ();
   734   double lbTx = (now + txTime).GetSeconds ();
   737   double fbRx = (now + rxTime - txTime).GetSeconds ();
   735   double fbRx = (now + rxTime - txTime).GetSeconds ();
   738   double lbRx = (now + rxTime).GetSeconds ();
   736   double lbRx = (now + rxTime).GetSeconds ();
   739   if (m_xml)
   737   if (m_xml)
   740     {
   738     {
   741       oss << GetXMLOpen_packet (0, tx->GetNode ()->GetId (), fbTx, lbTx);
   739       oss << GetXMLOpenClose_p ("p", tx->GetNode ()->GetId (), fbTx, lbTx, rx->GetNode ()->GetId (), 
   742       oss << GetXMLOpenClose_rx (0, rx->GetNode ()->GetId (), fbRx, lbRx); 
   740                                 fbRx, lbRx, m_enablePacketMetadata? GetPacketMetadata (p):"");
   743       if (m_enablePacketMetadata)
       
   744         oss << GetXMLOpenClose_meta (GetPacketMetadata (p));
       
   745       oss << GetXMLClose ("packet");
       
   746       StartNewTraceFile ();
   741       StartNewTraceFile ();
   747       ++m_currentPktCount;
   742       ++m_currentPktCount;
   748     }
   743     }
   749   else
   744   else
   750     {
   745     {
  1253     }
  1248     }
  1254   UpdatePosition (n,v);
  1249   UpdatePosition (n,v);
  1255   RecalcTopoBounds (v);
  1250   RecalcTopoBounds (v);
  1256   std::ostringstream oss; 
  1251   std::ostringstream oss; 
  1257   oss << GetXMLOpen_topology (m_topoMinX, m_topoMinY, m_topoMaxX, m_topoMaxY);
  1252   oss << GetXMLOpen_topology (m_topoMinX, m_topoMinY, m_topoMaxX, m_topoMaxY);
  1258   oss << GetXMLOpenClose_node (0,n->GetId (),v.x,v.y);
  1253   oss << GetXMLOpenClose_node (0, n->GetId (), v.x, v.y, nodeColors[n->GetId ()]);
  1259   oss << GetXMLClose ("topology");
  1254   oss << GetXMLClose ("topology");
  1260   WriteN (oss.str ());
  1255   WriteN (oss.str ());
  1261   WriteDummyPacket ();
  1256   WriteDummyPacket ();
  1262 }
  1257 }
  1263 
  1258 
  1393     nodeId = pktInfo.m_txnd->GetNode ()->GetId ();
  1388     nodeId = pktInfo.m_txnd->GetNode ()->GetId ();
  1394   else
  1389   else
  1395     nodeId = pktInfo.m_txNodeId;
  1390     nodeId = pktInfo.m_txNodeId;
  1396 
  1391 
  1397   double lbTx = pktInfo.firstlastbitDelta + pktInfo.m_fbTx;
  1392   double lbTx = pktInfo.firstlastbitDelta + pktInfo.m_fbTx;
  1398   oss << GetXMLOpen_wpacket (0, nodeId, pktInfo.m_fbTx, lbTx, pktrxInfo.rxRange);
       
  1399 
       
  1400   uint32_t rxId = pktrxInfo.m_rxnd->GetNode ()->GetId ();
  1393   uint32_t rxId = pktrxInfo.m_rxnd->GetNode ()->GetId ();
  1401   oss << GetXMLOpenClose_rx (0, rxId, pktrxInfo.m_fbRx, pktrxInfo.m_lbRx);
  1394 
  1402   if (m_enablePacketMetadata)
  1395   oss << GetXMLOpenClose_p ("wp", nodeId, pktInfo.m_fbTx, lbTx, rxId,
  1403     oss << GetXMLOpenClose_meta (GetPacketMetadata (p));
  1396                             pktrxInfo.m_fbRx, pktrxInfo.m_lbRx, m_enablePacketMetadata? GetPacketMetadata (p):"");
  1404 
       
  1405   oss << GetXMLClose ("wpacket");
       
  1406   WriteN (oss.str ());
  1397   WriteN (oss.str ());
  1407 }
  1398 }
  1408 
  1399 
  1409 void AnimationInterface::OutputCsmaPacket (Ptr<const Packet> p, AnimPacketInfo &pktInfo, AnimRxInfo pktrxInfo)
  1400 void AnimationInterface::OutputCsmaPacket (Ptr<const Packet> p, AnimPacketInfo &pktInfo, AnimRxInfo pktrxInfo)
  1410 {
  1401 {
  1411   StartNewTraceFile ();
  1402   StartNewTraceFile ();
  1412   NS_ASSERT (m_xml);
  1403   NS_ASSERT (m_xml);
  1413   std::ostringstream oss;
  1404   std::ostringstream oss;
  1414   NS_ASSERT (pktInfo.m_txnd);
  1405   NS_ASSERT (pktInfo.m_txnd);
  1415   uint32_t nodeId = pktInfo.m_txnd->GetNode ()->GetId ();
  1406   uint32_t nodeId = pktInfo.m_txnd->GetNode ()->GetId ();
  1416 
       
  1417   oss << GetXMLOpen_packet (0, nodeId, pktInfo.m_fbTx, pktInfo.m_lbTx);
       
  1418   uint32_t rxId = pktrxInfo.m_rxnd->GetNode ()->GetId ();
  1407   uint32_t rxId = pktrxInfo.m_rxnd->GetNode ()->GetId ();
  1419   oss << GetXMLOpenClose_rx (0, rxId, pktrxInfo.m_fbRx, pktrxInfo.m_lbRx);
  1408 
  1420   if (m_enablePacketMetadata)
  1409   oss << GetXMLOpenClose_p ("p", nodeId, pktInfo.m_fbTx, pktInfo.m_lbTx, rxId,
  1421     oss << GetXMLOpenClose_meta (GetPacketMetadata (p));
  1410                             pktrxInfo.m_fbRx, pktrxInfo.m_lbRx, m_enablePacketMetadata? GetPacketMetadata (p):"");
  1422   oss << GetXMLClose ("packet");
       
  1423   WriteN (oss.str ());
  1411   WriteN (oss.str ());
  1424 }
  1412 }
  1425 
  1413 
  1426 void AnimationInterface::SetConstantPosition (Ptr <Node> n, double x, double y, double z)
  1414 void AnimationInterface::SetConstantPosition (Ptr <Node> n, double x, double y, double z)
  1427 {
  1415 {
  1710 
  1698 
  1711 std::string AnimationInterface::GetXMLOpen_packet (uint32_t fromLp, uint32_t fromId, double fbTx, double lbTx, std::string auxInfo)
  1699 std::string AnimationInterface::GetXMLOpen_packet (uint32_t fromLp, uint32_t fromId, double fbTx, double lbTx, std::string auxInfo)
  1712 {
  1700 {
  1713   std::ostringstream oss;
  1701   std::ostringstream oss;
  1714   oss << std::setprecision (10);
  1702   oss << std::setprecision (10);
  1715   oss << "<packet fromId=\"" << fromId
  1703   oss << "<p fId=\"" << fromId
  1716       << "\" fbTx=\"" << fbTx
  1704       << "\" fbTx=\"" << fbTx
  1717       << "\" lbTx=\"" << lbTx
  1705       << "\" lbTx=\"" << lbTx
  1718       << (auxInfo.empty()?"":"\" aux=\"") << auxInfo.c_str ()
  1706       << (auxInfo.empty()?"":"\" aux=\"") << auxInfo.c_str () << "\">";
  1719       << "\">";
       
  1720   return oss.str ();
  1707   return oss.str ();
  1721 }
  1708 }
       
  1709 
       
  1710 
       
  1711 std::string AnimationInterface::GetXMLOpenClose_p (std::string pktType, uint32_t fId, double fbTx, double lbTx, 
       
  1712                                                    uint32_t tId, double fbRx, double lbRx, std::string metaInfo, 
       
  1713                                                    std::string auxInfo)
       
  1714 {
       
  1715   std::ostringstream oss;
       
  1716   oss << std::setprecision (10);
       
  1717   oss << "<" << pktType << " fId=\"" << fId
       
  1718       << "\" fbTx=\"" << fbTx
       
  1719       << "\" lbTx=\"" << lbTx << "\"";
       
  1720   if (!auxInfo.empty ())
       
  1721     {
       
  1722       oss << " aux=\"" << auxInfo.c_str () << "\"";
       
  1723     }
       
  1724   if (!metaInfo.empty ())
       
  1725     {
       
  1726       oss << " meta-info=\"" << metaInfo.c_str () << "\"";
       
  1727     }
       
  1728   oss << " tId=\"" << tId << "\" fbRx=\"" << fbRx << "\" lbRx=\"" << lbRx << "\">" << std::endl;
       
  1729   return oss.str ();
       
  1730 }
       
  1731 
       
  1732 
  1722 
  1733 
  1723 std::string AnimationInterface::GetXMLOpen_wpacket (uint32_t fromLp, uint32_t fromId, double fbTx, double lbTx, double range)
  1734 std::string AnimationInterface::GetXMLOpen_wpacket (uint32_t fromLp, uint32_t fromId, double fbTx, double lbTx, double range)
  1724 {
  1735 {
  1725   std::ostringstream oss;
  1736   std::ostringstream oss;
  1726   oss << std::setprecision (10);
  1737   oss << std::setprecision (10);