Beispiel #1
0
 def test_sim(self):
     netgen = NetworkGenerator(degree=9, n_min=100, n_max=300)
     for lm_pct in [5, 10, 20, 33]:
         for net_count in range(100):
             net = netgen.generate()
             for node in net.nodes()[:int(lm_pct * len(net.nodes()) / 100)]:
                 node.compositeSensor = CompositeSensor(('TruePosSensor'))
         net.algorithms = ALGORITHMS
         sim = Simulation(net)
         sim.run()
         write_npickle(net, '%d-%d.gz' % (net_count, lm_pct))
 def setUp(self):
     net_gen = NetworkGenerator(100)
     self.net = net_gen.generate_random_network()
     self.net.algorithms = ((DVHop, {'truePositionKey': 'tp',
                               'hopsizeKey': 'hs',
                               'dataKey': 'I'
                               }),
                       (Trilaterate, {'truePositionKey': 'tp',
                                     'hopsizeKey': 'hs',
                                     'positionKey': 'pos',
                                     'dataKey': 'I'}),
                       )
     for node in self.net.nodes()[:10]:
         node.compositeSensor = (TruePosSensor,)
Beispiel #3
0
 def test_random_generation(self):
     """Test different random generation parameters"""
     for input, output in self.in_out:
         if isclass(output) and issubclass(output, Exception):
             self.assertRaises(output, NetworkGenerator, input)
             continue
         net_gen = NetworkGenerator(**input)
         if output == None:
             self.assertEqual(None, net_gen.generate_random_network())
         elif isinstance(output, dict):
             net = net_gen.generate_random_network()
             try:
                 net.validate_params(output)
             except AssertionError:
                 self.fail("Network params did not validate.")
Beispiel #4
0
 def setUp(self):
     net_gen = NetworkGenerator(100)
     self.net = net_gen.generate_random_network()
     self.algorithms_ok = (
         (SomeNodeAlgorithm, {
             'rp1': 1,
             'rp2': 2,
             'rp3': 3,
         }),
         (SomeNetworkAlgorithm, {}),
         SomeNetworkAlgorithm,
         (SomeAlgorithmWithInheritance, {
             'rp1': 1,
             'rp2': 2,
             'rp3': 3,
             'rp4': 4
         }),
         (SomeAlgorithmWithInheritanceChild, {
             'rp1': 1,
             'rp2': 2,
             'rp3': 3,
             'rp4': 4,
             'rp5': 5,
             'rp6': 6
         }),
     )
     self.check = [
         # wrong_format
         (PymoteNetworkError, [
             (SomeNodeAlgorithm, {
                 'rp1': 1,
                 'rp2': 2,
                 'rp3': 3
             }),
         ]),
         # wrong_base_class
         (PymoteNetworkError, ((Node, {}), )),
         # missing_req_params
         (PymoteAlgorithmException, ((SomeNodeAlgorithm, {
             'rp1': 1,
         }), )),
         (PymoteAlgorithmException, ((SomeAlgorithmWithInheritance, {
             'rp1': 1,
         }), )),
     ]
from pymote.algorithms.KVM.PTConstruction import PTConstruction
from pymote.networkgenerator import NetworkGenerator
from pymote.network import Network
from pymote.simulation import Simulation

from pymote.npickle import write_pickle

net_gen = NetworkGenerator(7)

net = net_gen.generate_random_network()

#NAPOMENA: u saturated makla random initiatore
net.algorithms = (PTConstruction, )
#net.nodes()[0].memory['I'] = "Koja je tvoja temperatura?"

net.show()

#write_pickle(net, 'PTConstruction_mreza.tar.gz')

sim = Simulation(net)
sim.run()

for node in net.nodes():
    print "\n"
    print node.id, node.memory, node.status

#sim.reset()
print "\nDone script."
xpositions = []
xestpositions = []
deltapos = []
esterror = []
positions = []
newpos = []
anchpositions = []
message_stats = []
position_stats = []
consume = []
energy = []

# Network Topology setup
Node.cid = 1  # start node id

net_gen = NetworkGenerator(n_count=n, degree=degree)
net = net_gen.generate_homogeneous_network()  # A random homogeneous topology

#net_gen = Toplogy(n_count=n, degree=degree, n_max=n, n_min=n, connected=False)
#net = net_gen.generate_grid_network(randomness=0.2)

# Computes no. of anchors
f_anchors = (int)(100 / p_anchors)
n_anchors = (int)(n * p_anchors / 100.0)

# Set some nodes as anchor based on number of desired anchors
# Two arrays are populated with location of nodes to be plotted later
for node in net.nodes():
    xpositions.append(net.pos[node][0])
    if (node.id % f_anchors == 0):  # anchor nodes
        node.compositeSensor = (TruePosSensor, )