<?xml version="1.0" encoding="UTF-8"?> <simconf> <project EXPORT="discard">[APPS_DIR]/mrm</project> <project EXPORT="discard">[APPS_DIR]/mspsim</project> <project EXPORT="discard">[APPS_DIR]/avrora</project> <project EXPORT="discard">[APPS_DIR]/serial_socket</project> <project EXPORT="discard">[APPS_DIR]/collect-view</project> <project EXPORT="discard">[APPS_DIR]/powertracker</project> <simulation> <title>My simulation</title> <randomseed>123456</randomseed> <motedelay_us>1000000</motedelay_us> <radiomedium> org.contikios.cooja.radiomediums.UDGM <transmitting_range>100.0</transmitting_range> <interference_range>0.0</interference_range> <success_ratio_tx>1.0</success_ratio_tx> <success_ratio_rx>1.0</success_ratio_rx> </radiomedium> <events> <logoutput>40000</logoutput> </events> <motetype> org.contikios.cooja.mspmote.SkyMoteType <identifier>sky1</identifier> <description>Sky Mote Type #sky1</description> <source EXPORT="discard">[CONTIKI_DIR]/examples/ipv6/rpl-collect/udp-sink.c</source> <commands EXPORT="discard">make udp-sink.sky TARGET=sky</commands> <firmware EXPORT="copy">[CONTIKI_DIR]/examples/ipv6/rpl-collect/udp-sink.sky</firmware> <moteinterface>org.contikios.cooja.interfaces.Position</moteinterface> <moteinterface>org.contikios.cooja.interfaces.RimeAddress</moteinterface> <moteinterface>org.contikios.cooja.interfaces.IPAddress</moteinterface> <moteinterface>org.contikios.cooja.interfaces.Mote2MoteRelations</moteinterface> <moteinterface>org.contikios.cooja.interfaces.MoteAttributes</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.MspClock</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.MspMoteID</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.SkyButton</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.SkyFlash</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.SkyCoffeeFilesystem</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.Msp802154Radio</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.MspSerial</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.SkyLED</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.MspDebugOutput</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.SkyTemperature</moteinterface> </motetype> <motetype> org.contikios.cooja.mspmote.SkyMoteType <identifier>sky2</identifier> <description>Sky Mote Type #sky2</description> <source EXPORT="discard">[CONTIKI_DIR]/examples/ipv6/rpl-collect/udp-sender.c</source> <commands EXPORT="discard">make udp-sender.sky TARGET=sky</commands> <firmware EXPORT="copy">[CONTIKI_DIR]/examples/ipv6/rpl-collect/udp-sender.sky</firmware> <moteinterface>org.contikios.cooja.interfaces.Position</moteinterface> <moteinterface>org.contikios.cooja.interfaces.RimeAddress</moteinterface> <moteinterface>org.contikios.cooja.interfaces.IPAddress</moteinterface> <moteinterface>org.contikios.cooja.interfaces.Mote2MoteRelations</moteinterface> <moteinterface>org.contikios.cooja.interfaces.MoteAttributes</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.MspClock</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.MspMoteID</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.SkyButton</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.SkyFlash</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.SkyCoffeeFilesystem</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.Msp802154Radio</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.MspSerial</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.SkyLED</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.MspDebugOutput</moteinterface> <moteinterface>org.contikios.cooja.mspmote.interfaces.SkyTemperature</moteinterface> </motetype> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>242.83184008074136</x> <y>-88.93434685786869</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>1</id> </interface_config> <motetype_identifier>sky1</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>223.5175954004352</x> <y>-69.05842098947238</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>2</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>250.51864863077387</x> <y>-59.2420165357677</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>3</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>294.4736028715864</x> <y>-63.23792146675066</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>4</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>188.6638305152632</x> <y>-41.28432709660093</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>5</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>222.54731411389315</x> <y>-32.869043991280165</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>6</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>273.694897230475</x> <y>-29.672320046493798</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>7</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>321.64575640227054</x> <y>-33.66822497747676</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>8</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>159.4120162043624</x> <y>-2.500166515809672</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>9</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>196.97352255560222</x> <y>-0.10262355721989598</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>10</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>252.91619158936365</x> <y>1.495738415173288</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>11</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>301.66623174735577</x> <y>-0.10262355721989598</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>12</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>346.4203669743649</x> <y>1.495738415173288</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>13</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>124.24805281171236</x> <y>22.27444405628468</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>14</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>180.1907218454738</x> <y>35.86052082162674</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>15</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>224.14567608628633</x> <y>30.266253918250598</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>16</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>276.0924401890648</x> <y>35.86052082162674</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>17</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>351.2154528915445</x> <y>37.45888279401993</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>18</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>89.08408941906231</x> <y>47.04905462837903</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>19</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>180.1907218454738</x> <y>75.02038914525976</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>20</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>245.7235627135943</x> <y>66.22939829709723</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>21</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>290.4776979406035</x> <y>67.82776026949043</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>22</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>370.3957965602627</x> <y>64.63103632470406</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>23</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>93.07999435004527</x> <y>82.21301802102909</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>24</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> <mote> <breakpoints /> <interface_config> org.contikios.cooja.interfaces.Position <x>204.16615143137156</x> <y>106.18844760692684</y> <z>0.0</z> </interface_config> <interface_config> org.contikios.cooja.mspmote.interfaces.MspMoteID <id>25</id> </interface_config> <motetype_identifier>sky2</motetype_identifier> </mote> </simulation> <plugin> org.contikios.cooja.plugins.SimControl <width>259</width> <z>3</z> <height>184</height> <location_x>0</location_x> <location_y>0</location_y> </plugin> <plugin> org.contikios.cooja.plugins.Visualizer <plugin_config> <skin>org.contikios.cooja.plugins.skins.IDVisualizerSkin</skin> <skin>org.contikios.cooja.plugins.skins.AttributeVisualizerSkin</skin> <skin>org.contikios.cooja.plugins.skins.UDGMVisualizerSkin</skin> <viewport>1.836243522352668 0.0 0.0 1.836243522352668 -93.43273668589363 192.8080782058222</viewport> </plugin_config> <width>666</width> <z>4</z> <height>510</height> <location_x>764</location_x> <location_y>5</location_y> </plugin> <plugin> org.contikios.cooja.plugins.LogListener <plugin_config> <filter /> <formatted_time /> <coloring /> </plugin_config> <width>1347</width> <z>2</z> <height>150</height> <location_x>0</location_x> <location_y>438</location_y> </plugin> <plugin> org.contikios.cooja.plugins.TimeLine <plugin_config> <mote>0</mote> <mote>1</mote> <mote>2</mote> <mote>3</mote> <mote>4</mote> <mote>5</mote> <mote>6</mote> <mote>7</mote> <mote>8</mote> <mote>9</mote> <mote>10</mote> <mote>11</mote> <mote>12</mote> <mote>13</mote> <mote>14</mote> <mote>15</mote> <mote>16</mote> <mote>17</mote> <mote>18</mote> <mote>19</mote> <mote>20</mote> <mote>21</mote> <mote>22</mote> <mote>23</mote> <mote>24</mote> <showRadioRXTX /> <zoomfactor>52818.041078329756</zoomfactor> </plugin_config> <width>1347</width> <z>1</z> <height>233</height> <location_x>0</location_x> <location_y>588</location_y> </plugin> <plugin> org.contikios.cooja.plugins.ScriptRunner <plugin_config> <script>function print() { log.log("Received:\n"); for(i = 1; i <= nrNodes; i++) { log.log("Node " + i + " "); if(i == sink) { log.log("sink. Got " + total + " non-dups from " + num_reported + " nodes.\n"); } else { log.log("received: " + received[i] + " hops: " + hops[i] + "\n"); } } } TIMEOUT(400000); /* Conf. */ sink = 1; booted = new Array(); received = new Array(); hops = new Array(); nrNodes = 25; total = 0; /* number of non-dups the sink received */ reported = new Array(); /* nodes that have reported at least once */ nodes_starting = true; for(i = 1; i <= nrNodes; i++) { booted[i] = false; received[i] = "_____"; hops[i] = received[i]; reported[i] = 0; } /* Wait until all nodes have started */ while(nodes_starting) { YIELD_THEN_WAIT_UNTIL(msg.startsWith('Star')); log.log("Node " + id + " booted\n"); booted[id] = true; for(i = 1; i <= nrNodes; i++) { if(!booted[i]) { break; } if(i == nrNodes) { nodes_starting = false; } } } log.log("All nodes booted.\n"); while(true) { YIELD(); /* Count sensor data packets */ if (msg.contains("ÿ")) { log.log("WARN: Detected bad character in: '" + msg + "'\n"); msg = msg.replace("ÿ", ""); } data = msg.split(" "); if(data[24]) { len = parseInt(data[0]); timestamp1 = parseInt(data[1]); timestamp2 = parseInt(data[2]); timesynched_timestamp = parseInt(data[3]); node_id = parseInt(data[4]); seqno = parseInt(data[5]); hop = parseInt(data[6]); latency = parseInt(data[7]); data_len2 = parseInt(data[8]); clock = parseInt(data[9]); timesyncedtime = parseInt(data[10]); time_cpu = parseInt(data[11]); time_lpm = parseInt(data[12]); time_transmit = parseInt(data[13]); time_listen = parseInt(data[14]); best_neighbor = parseInt(data[15]); best_neighbor_etx = parseInt(data[16]); best_neighbor_rtmetrix = parseInt(data[17]); source = node_id & 0xff; seqno = seqno - 1; dups = received[source].substr(seqno, 1); reported[source]++; if(dups == "_") { dups = 1; total++; } else if(dups < 9) { dups++; } received[source] = received[source].substr(0, seqno) + dups + received[source].substr(seqno + 1, 10 - seqno); if(hop > 9) { hop = "+"; } hops[source] = hops[source].substr(0, seqno) + hop + hops[source].substr(seqno + 1, 10 - seqno); print(); } /* Signal OK if all nodes have reported 10 messages. */ num_reported = 0; for(i = 1; i <= nrNodes; i++) { if(reported[i] > 0) { num_reported++; } } if((num_reported == nrNodes - 1) && (total >= 75)) { print(); log.testOK(); } }</script> <active>true</active> </plugin_config> <width>600</width> <z>0</z> <height>700</height> <location_x>416</location_x> <location_y>8</location_y> </plugin> </simconf>