src/helper/ns2-mobility-helper.cc
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Fri, 24 Oct 2008 12:31:57 +0200
changeset 3786 9f384deadb46
parent 3783 d00f1a3be3d0
child 4257 3e8f8052e155
permissions -rw-r--r--
replace \t with 8 spaces.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     2
/*
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     3
 * Copyright (c) 2007 INRIA
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     4
 *
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     8
 *
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    12
 * GNU General Public License for more details.
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    13
 *
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    17
 *
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    18
 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    19
 */
1637
b2f8c2acf04a create a mobility module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1632
diff changeset
    20
#include <fstream>
b2f8c2acf04a create a mobility module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1632
diff changeset
    21
#include <sstream>
1804
9c11e776f501 bug 96: debug.h duplicates functionality from log.h
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1637
diff changeset
    22
#include "ns3/log.h"
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    23
#include "ns3/simulator.h"
1637
b2f8c2acf04a create a mobility module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1632
diff changeset
    24
#include "ns3/node-list.h"
b2f8c2acf04a create a mobility module
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1632
diff changeset
    25
#include "ns3/node.h"
2692
e4387e19039d move another helper to the helper dir
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2402
diff changeset
    26
#include "ns3/static-speed-mobility-model.h"
2400
99a92e7f17b2 rework slightly ns2 mobility support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2231
diff changeset
    27
#include "ns2-mobility-helper.h"
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    28
2400
99a92e7f17b2 rework slightly ns2 mobility support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2231
diff changeset
    29
NS_LOG_COMPONENT_DEFINE ("Ns2MobilityHelper");
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    30
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    31
namespace ns3 {
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    32
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    33
2400
99a92e7f17b2 rework slightly ns2 mobility support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2231
diff changeset
    34
Ns2MobilityHelper::Ns2MobilityHelper (std::string filename)
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    35
  : m_filename (filename)
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    36
{}
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    37
2400
99a92e7f17b2 rework slightly ns2 mobility support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2231
diff changeset
    38
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    39
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    40
Ptr<StaticSpeedMobilityModel>
2400
99a92e7f17b2 rework slightly ns2 mobility support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2231
diff changeset
    41
Ns2MobilityHelper::GetMobilityModel (std::string idString, const ObjectStore &store) const
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    42
{
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    43
  std::istringstream iss;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    44
  iss.str (idString);
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    45
  uint32_t id;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    46
  iss >> id;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    47
  Ptr<Object> object = store.Get (id);
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    48
  if (object == 0)
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    49
    {
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    50
      return 0;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    51
    }
2257
71a58e70c671 QueryInterface -> GetObject
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2231
diff changeset
    52
  Ptr<StaticSpeedMobilityModel> model = object->GetObject<StaticSpeedMobilityModel> ();
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    53
  if (model == 0)
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    54
    {
2230
9f13ac3291e0 add CreateObject<> to instanciate subclasses of the Object base class. Replaces Create<>.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1817
diff changeset
    55
      model = CreateObject<StaticSpeedMobilityModel> ();
2258
666099a753e0 AddInterface -> AggregateObject
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2257
diff changeset
    56
      object->AggregateObject (model);
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    57
    }
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    58
  return model;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    59
}
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    60
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    61
double
2400
99a92e7f17b2 rework slightly ns2 mobility support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2231
diff changeset
    62
Ns2MobilityHelper::ReadDouble (std::string valueString) const
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    63
{
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    64
  std::istringstream iss;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    65
  iss.str (valueString);
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    66
  double value;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    67
  iss >> value;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    68
  return value;
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    69
}
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    70
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    71
void 
2400
99a92e7f17b2 rework slightly ns2 mobility support
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2231
diff changeset
    72
Ns2MobilityHelper::LayoutObjectStore (const ObjectStore &store) const
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    73
{
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    74
  std::ifstream file (m_filename.c_str (), std::ios::in);
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    75
  if (file.is_open())
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    76
    {
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    77
      while (!file.eof() )
3786
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    78
        {
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    79
          std::string line;
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    80
          getline (file, line);
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    81
          std::string::size_type startNodeId = line.find_first_of ("(");
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    82
          std::string::size_type endNodeId = line.find_first_of (")");
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    83
          if (startNodeId == std::string::npos ||
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    84
              endNodeId == std::string::npos)
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    85
            {
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    86
              continue;
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    87
            }
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    88
          Ptr<StaticSpeedMobilityModel> model = GetMobilityModel (line.substr (startNodeId + 1, 
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    89
                                                                               endNodeId - startNodeId), 
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    90
                                                                  store);
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    91
          if (model == 0)
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    92
            {
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    93
              continue;
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    94
            }
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    95
          if (startNodeId == 6)
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    96
            {
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    97
              double value = ReadDouble (line.substr (endNodeId + 9, std::string::npos));
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
    98
              std::string coordinate = line.substr (endNodeId + 6, 1);
1817
8b0520433350 replace Position and Speed by Vector
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1816
diff changeset
    99
              Vector position = model->GetPosition ();
3786
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   100
              if (coordinate == "X")
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   101
                {
1588
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   102
                  position.x = value;
3786
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   103
                  NS_LOG_DEBUG ("X=" << value);
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   104
                }
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   105
              else if (coordinate == "Y")
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   106
                {
1588
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   107
                  position.y = value;
3786
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   108
                  NS_LOG_DEBUG ("Y=" << value);
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   109
                }
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   110
              else if (coordinate == "Z")
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   111
                {
1588
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   112
                  position.z = value;
3786
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   113
                  NS_LOG_DEBUG ("Z=" << value);
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   114
                }
1588
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   115
              else
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   116
                {
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   117
                  continue;
51b44f1f4ae5 remove extraneous setters/getters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1587
diff changeset
   118
                }
1816
d7c9b9da78f4 rename MobilityModel::Get/Set to GetPosition/SetPosition
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 1804
diff changeset
   119
              model->SetPosition (position);
3786
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   120
            }
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   121
          else 
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   122
            {
3783
d00f1a3be3d0 Read correctly fractional seconds. Reported by Ramon Bauza
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3021
diff changeset
   123
              std::string::size_type atEnd = line.find_first_of (" ", 8);
d00f1a3be3d0 Read correctly fractional seconds. Reported by Ramon Bauza
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3021
diff changeset
   124
              std::string atStr = line.substr (8, atEnd-8);
d00f1a3be3d0 Read correctly fractional seconds. Reported by Ramon Bauza
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3021
diff changeset
   125
              NS_LOG_DEBUG (atStr);
3786
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   126
              double at = ReadDouble (atStr);
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   127
              std::string::size_type xSpeedEnd = line.find_first_of (" ", endNodeId + 10);
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   128
              std::string::size_type ySpeedEnd = line.find_first_of (" ", xSpeedEnd + 1);
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   129
              double xSpeed = ReadDouble (line.substr (endNodeId + 10, xSpeedEnd - endNodeId - 10));
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   130
              double ySpeed = ReadDouble (line.substr (xSpeedEnd + 1, ySpeedEnd - xSpeedEnd - 1));
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   131
              double zSpeed = ReadDouble (line.substr (ySpeedEnd + 1, std::string::npos));
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   132
              NS_LOG_DEBUG ("at=" << at << "xSpeed=" << xSpeed << ", ySpeed=" << ySpeed << ", zSpeed=" << zSpeed);
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   133
              Simulator::Schedule (Seconds (at), &StaticSpeedMobilityModel::SetVelocity, model,
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   134
                                   Vector (xSpeed, ySpeed, zSpeed));
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   135
            }
9f384deadb46 replace \t with 8 spaces.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3783
diff changeset
   136
        }
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   137
      file.close();
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   138
    }
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   139
}
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   140
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   141
void 
2995
b72805b3ca69 Align helper API use of Install()
Tom Henderson <tomh@tomh.org>
parents: 2834
diff changeset
   142
Ns2MobilityHelper::Install (void) const
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   143
{
2995
b72805b3ca69 Align helper API use of Install()
Tom Henderson <tomh@tomh.org>
parents: 2834
diff changeset
   144
  Install (NodeList::Begin (), NodeList::End ());
1586
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   145
}
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   146
a77fe06e9b6d a topology class to read ns2's mobility files and a mobility generator.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   147
} // namespace ns3