-
Notifications
You must be signed in to change notification settings - Fork 0
/
sim_ndw_energy.py
102 lines (73 loc) · 2.06 KB
/
sim_ndw_energy.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#! /usr/bin/python
#
# basic energy sim script.
#
#
from random import *
from TOSSIM import *
from tinyos.tossim.TossimApp import *
import sys
def sim():
n = NescApp()
t = Tossim(n.variables.variables())
r = t.radio()
ff = open("log(energy).txt", "w")
topo = open("topo.txt", "r")
for line in topo:
s = line.split()
if (len(s) > 0):
if (s[0] == "gain"):
r.add(int(s[1]), int(s[2]), float(s[3]))
noise = open("meyer-heavy.txt", "r")
for line in noise:
s = line.strip()
if s:
val = int(s)
for i in range(27):
t.getNode(i).addNoiseTraceReading(val)
for i in range (1,27):
#print "Creating noise model for ",i;
t.getNode(i).createNoiseModel()
t.getNode(i).bootAtTime(i * 11512170000 + 235423990)
t.getNode(0).createNoiseModel()
#print "Creating noise model for 0";
t.getNode(0).bootAtTime(i * 11512170000 + 235423990)
for i in range(1, 27):
t.getNode(i).getVariable("NdwC.energy_count")
m = t.getNode(1)
v = m.getVariable("NdwC.send_count")
#t.addChannel("SINK", sys.stdout)
#t.addChannel("BOOT", sys.stdout)
#t.addChannel("BEACON", sys.stdout)
#t.addChannel("PIT", sys.stdout)
#t.addChannel("FIB", sys.stdout)
#t.addChannel("CS", sys.stdout)
#t.addChannel("DATA", sys.stdout)
#t.addChannel("REPO", sys.stdout)
#t.addChannel("SINK", ff)
#t.addChannel("BOOT", ff)
#t.addChannel("BEACON", ff)
#t.addChannel("PIT", ff)
#t.addChannel("FIB", ff)
#t.addChannel("CS", ff)
#t.addChannel("DATA", ff)
#t.addChannel("REPO", ff)
#t.addChannel("ENERGY", ff)
#t.runNextEvent()
#while v.getData() > 3:
# t.runNextEvent()
#print "Runing simuliation..."
#m1 = t.getNode(1)
#v1 = m1.getVariable("NdwC.energy_count")
for i in range(0, 10000):
t.runNextEvent()
while v.getData() <= 5000:
t.runNextEvent()
for i in range(27):
res = t.getNode(i).getVariable("NdwC.energy_count").getData()
ff.write("v[ %d ]: %d\n" % (i,res))
print "v[" , i , "]:" , res
ff.close()
print "----------SIM END----------"
if __name__ == '__main__':
sim()