diff --git a/cooja/simulation-00.csc b/cooja/simulation-00.csc index ac45cf8..d4312a9 100644 --- a/cooja/simulation-00.csc +++ b/cooja/simulation-00.csc @@ -8,7 +8,6 @@ [APPS_DIR]/powertracker TheMatrix - 1.0 123456 1000000 @@ -65,8 +64,8 @@ org.contikios.cooja.interfaces.Position - 9.068528825751553 - 37.67859304913931 + 86.13444974265813 + 69.90280107817652 0.0 @@ -83,8 +82,8 @@ org.contikios.cooja.interfaces.Position - 80.79035680654219 - 30.703106284953506 + 51.52627033556432 + 156.50687058384247 0.0 @@ -101,8 +100,8 @@ org.contikios.cooja.interfaces.Position - 9.77736656046293 - 49.8308642040235 + 135.46626460917662 + 175.0121677245167 0.0 @@ -119,8 +118,8 @@ org.contikios.cooja.interfaces.Position - 45.26921395736429 - 45.67070621929374 + 42.826166715568235 + 131.42320868067324 0.0 @@ -137,8 +136,8 @@ org.contikios.cooja.interfaces.Position - 18.46200164044397 - 1.1473676044364778 + 187.05667809684172 + 169.3188559183185 0.0 @@ -155,8 +154,8 @@ org.contikios.cooja.interfaces.Position - 75.51657406123633 - 60.87695540301412 + 32.82891907363539 + 15.516635561430592 0.0 @@ -169,14 +168,464 @@ z12 + + + + org.contikios.cooja.interfaces.Position + 53.227886077285106 + 56.65074004214692 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 7 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 9.478776977357972 + 141.6872676748177 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 8 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 121.3216653175472 + 79.12780506658024 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 9 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 140.4274166445628 + 48.19411557315654 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 10 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 141.8774935790525 + 118.01947990974314 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 11 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 167.54133708401406 + 141.62452988655903 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 12 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 182.19925638559323 + 45.94414109294538 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 13 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 94.23114956779912 + 7.372914932476138 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 14 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 28.4351017753266 + 54.086725788078674 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 15 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 194.99716411863673 + 74.93216287863017 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 16 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 34.692590848066104 + 97.96844103802013 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 17 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 12.575336165029904 + 17.556879953372338 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 18 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 188.5841996502633 + 116.89735135147325 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 19 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 133.43709588605824 + 38.25370176148881 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 20 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 78.76068226918665 + 28.22809372316739 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 21 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 150.08742374085077 + 70.09703322226797 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 22 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 48.63056610039707 + 36.08069318062117 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 23 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 95.60417975572267 + 155.21342903799032 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 24 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 1.4443131618000926 + 22.60341764850282 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 25 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 145.97717601565432 + 28.754329514574174 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 26 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 107.17179210686996 + 41.995577152348964 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 27 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 79.75285371214716 + 141.10964790096108 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 28 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 10.011740148116122 + 5.5755307926002695 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 29 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 16.516397756095703 + 100.66328458096703 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 30 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 103.78274003802443 + 83.492664972201 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 31 + + z12 + org.contikios.cooja.plugins.SimControl 280 - 0 + 1 160 - 681 - 643 + 4 + 651 org.contikios.cooja.plugins.Visualizer @@ -186,11 +635,11 @@ org.contikios.cooja.plugins.skins.GridVisualizerSkin org.contikios.cooja.plugins.skins.TrafficVisualizerSkin org.contikios.cooja.plugins.skins.UDGMVisualizerSkin - 8.441705440311774 0.0 0.0 8.441705440311774 -46.28112185124378 27.204467518174773 + 4.363597628395609 0.0 0.0 4.363597628395609 -112.84186218972216 -81.59855112545544 - 678 - 3 - 633 + 667 + 2 + 644 1 1 @@ -201,11 +650,11 @@ - 1039 - 1 - 475 - 681 - 160 + 1041 + 5 + 460 + 679 + 2 org.contikios.cooja.plugins.TimeLine @@ -216,41 +665,89 @@ 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 500.0 1720 - 5 + 6 166 0 818 - - org.contikios.cooja.plugins.Notes - - Enter notes here - true - - 1040 - 4 - 160 - 680 - 0 - org.contikios.cooja.serialsocket.SerialSocketServer 0 60001 - true + false 362 - 2 + 3 116 - 992 - 662 + 287 + 698 + + + org.contikios.cooja.plugins.RadioLogger + + 213 + + false + false + + 1052 + 4 + 357 + 667 + 462 + + + org.contikios.cooja.plugins.ScriptRunner + + + false + + 600 + 0 + 700 + 176 + 121 diff --git a/cooja/simulation-prng.csc b/cooja/simulation-prng.csc new file mode 100644 index 0000000..df5bce6 --- /dev/null +++ b/cooja/simulation-prng.csc @@ -0,0 +1,753 @@ + + + [APPS_DIR]/mrm + [APPS_DIR]/mspsim + [APPS_DIR]/avrora + [APPS_DIR]/serial_socket + [APPS_DIR]/collect-view + [APPS_DIR]/powertracker + + My simulation + generated + 1000000 + + org.contikios.cooja.radiomediums.UDGM + 50.0 + 100.0 + 1.0 + 1.0 + + + 40000 + + + org.contikios.cooja.mspmote.Z1MoteType + z11 + border router + [CONTIKI_DIR]/examples/ipv6/rpl-border-router/border-router.c + make border-router.z1 TARGET=z1 + [CONTIKI_DIR]/examples/ipv6/rpl-border-router/border-router.z1 + org.contikios.cooja.interfaces.Position + org.contikios.cooja.interfaces.RimeAddress + org.contikios.cooja.interfaces.IPAddress + org.contikios.cooja.interfaces.Mote2MoteRelations + org.contikios.cooja.interfaces.MoteAttributes + org.contikios.cooja.mspmote.interfaces.MspClock + org.contikios.cooja.mspmote.interfaces.MspMoteID + org.contikios.cooja.mspmote.interfaces.MspButton + org.contikios.cooja.mspmote.interfaces.Msp802154Radio + org.contikios.cooja.mspmote.interfaces.MspDefaultSerial + org.contikios.cooja.mspmote.interfaces.MspLED + org.contikios.cooja.mspmote.interfaces.MspDebugOutput + + + org.contikios.cooja.mspmote.Z1MoteType + z12 + oracle + [CONFIG_DIR]/../oracle/main.c + make main.z1 TARGET=z1 + [CONFIG_DIR]/../oracle/main.z1 + org.contikios.cooja.interfaces.Position + org.contikios.cooja.interfaces.RimeAddress + org.contikios.cooja.interfaces.IPAddress + org.contikios.cooja.interfaces.Mote2MoteRelations + org.contikios.cooja.interfaces.MoteAttributes + org.contikios.cooja.mspmote.interfaces.MspClock + org.contikios.cooja.mspmote.interfaces.MspMoteID + org.contikios.cooja.mspmote.interfaces.MspButton + org.contikios.cooja.mspmote.interfaces.Msp802154Radio + org.contikios.cooja.mspmote.interfaces.MspDefaultSerial + org.contikios.cooja.mspmote.interfaces.MspLED + org.contikios.cooja.mspmote.interfaces.MspDebugOutput + + + + + org.contikios.cooja.interfaces.Position + 2.8401240027287944 + 20.180398464401506 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 1 + + z11 + + + + + org.contikios.cooja.interfaces.Position + 62.70457624916895 + 5.461823348621493 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 2 + + z12 + + + + + org.contikios.cooja.interfaces.Position + -42.50529195002628 + 95.99347517915606 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 3 + + z12 + + + + + org.contikios.cooja.interfaces.Position + -64.0342030412418 + -76.45182374542104 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 4 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 26.546391605398625 + -59.30002353310728 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 5 + + z12 + + + + + org.contikios.cooja.interfaces.Position + -84.85459248648142 + 98.55316515771543 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 6 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 73.08943636820524 + -36.58257187319245 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 7 + + z12 + + + + + org.contikios.cooja.interfaces.Position + -98.8057360093751 + -73.06961837300403 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 8 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 23.471662544709446 + 53.225517361008684 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 9 + + z12 + + + + + org.contikios.cooja.interfaces.Position + -13.565530041615915 + -80.11928625014107 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 10 + + z12 + + + + + org.contikios.cooja.interfaces.Position + -34.51438626745433 + -81.09816665820632 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 11 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 71.70626744929694 + -46.85016956041235 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 12 + + z12 + + + + + org.contikios.cooja.interfaces.Position + -41.520309705555846 + 71.44077281376488 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 13 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 43.08727383704024 + 69.28339212423197 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 14 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 1.1574329431798276 + -10.80591664080768 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 15 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 86.63895925194797 + 16.352747256872362 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 16 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 70.93169772866406 + 20.543994795105263 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 17 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 39.091328725160054 + 55.941084547841 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 18 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 16.453276006224286 + -59.66650954910484 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 19 + + z12 + + + + + org.contikios.cooja.interfaces.Position + -4.390747291039673 + 87.26687348716987 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 20 + + z12 + + + + + org.contikios.cooja.interfaces.Position + -91.67228068349867 + -31.508149118910467 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 21 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 53.98786953015234 + -66.86616338929652 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 22 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 30.80831962466192 + 51.80268003334382 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 23 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 81.0646699044992 + -79.55330040239726 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 24 + + z12 + + + + + org.contikios.cooja.interfaces.Position + -29.078011851630833 + 53.4674864072434 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 25 + + z12 + + + + + org.contikios.cooja.interfaces.Position + -18.275675734835886 + 30.46886342152942 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 26 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 81.7369940927974 + 33.90815409313575 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 27 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 30.75563686385422 + 55.40035529973554 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 28 + + z12 + + + + + org.contikios.cooja.interfaces.Position + -38.71906313508564 + 88.66374116285508 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 29 + + z12 + + + + + org.contikios.cooja.interfaces.Position + 16.30310917244114 + 14.567282002160084 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 30 + + z12 + + + + + org.contikios.cooja.interfaces.Position + -7.756304235356026 + 39.799774604890644 + 0.0 + + + org.contikios.cooja.mspmote.interfaces.MspClock + 1.0 + + + org.contikios.cooja.mspmote.interfaces.MspMoteID + 31 + + z12 + + + + org.contikios.cooja.plugins.SimControl + 280 + 3 + 160 + 11 + 627 + + + org.contikios.cooja.plugins.Visualizer + + true + org.contikios.cooja.plugins.skins.IDVisualizerSkin + org.contikios.cooja.plugins.skins.GridVisualizerSkin + org.contikios.cooja.plugins.skins.TrafficVisualizerSkin + org.contikios.cooja.plugins.skins.UDGMVisualizerSkin + 2.631613289609486 0.0 0.0 2.631613289609486 346.00912570327847 269.9189081106048 + + 672 + 1 + 609 + 1 + 1 + + + org.contikios.cooja.plugins.LogListener + + + + + + 1040 + 4 + 436 + 677 + 374 + + + org.contikios.cooja.plugins.TimeLine + + 0 + 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 + + + + 500.0 + + 1720 + 6 + 166 + 0 + 818 + + + org.contikios.cooja.serialsocket.SerialSocketServer + 0 + + 60001 + false + + 362 + 2 + 116 + 301 + 654 + + + org.contikios.cooja.plugins.RadioLogger + + 150 + + false + false + + 1037 + 5 + 366 + 677 + 3 + + + org.contikios.cooja.plugins.ScriptRunner + + + false + + 600 + 0 + 700 + 958 + 39 + + + diff --git a/oracle/main.c b/oracle/main.c index 0152c44..cadc5e7 100644 --- a/oracle/main.c +++ b/oracle/main.c @@ -22,7 +22,7 @@ void res_get_handler(void* request, void* response, uint8_t* buffer, uint16_t pr void res_periodic_handler(); /* declare resource and set handlers */ -PERIODIC_RESOURCE(myresource, "title=\"An observable resource\";rt=\"some descriptive text\";obs", res_get_handler, NULL, NULL, NULL, 10 * CLOCK_SECOND, res_periodic_handler); +PERIODIC_RESOURCE(myresource, "title=\"An observable resource\";rt=\"some descriptive text\";obs", res_get_handler, NULL, NULL, NULL, 60 * CLOCK_SECOND, res_periodic_handler); void res_periodic_handler() { /* sample some sensor */ diff --git a/oracle/project-conf.h b/oracle/project-conf.h index 06133e3..5bca679 100644 --- a/oracle/project-conf.h +++ b/oracle/project-conf.h @@ -1,9 +1,10 @@ -/* reduce RAM consumption */ - #ifndef PROJECT_CONF_H_ #define PROJECT_CONF_H_ -#undef REST_MAX_CHUNK_SIZE // Set the max response payload before fragmentation + +/* Set the max response payload before fragmentation */ +#undef REST_MAX_CHUNK_SIZE #define REST_MAX_CHUNK_SIZE 64 +<<<<<<< HEAD #undef COAP_MAX_OPEN_TRANSACTIONS // Set the max number of concurrent transactions #define COAP_MAX_OPEN_TRANSACTIONS 4 #undef NBR_TABLE_CONF_MAX_NEIGHBORS // Set the max number of entries in neighbors table @@ -21,5 +22,34 @@ #undef RPL_CONF_DIO_INTERVAL_DOUBLINGS #define RPL_CONF_DIO_INTERVAL_DOUBLINGS 25 +======= + +/* Set the max number of concurrent transactions */ +#undef COAP_MAX_OPEN_TRANSACTIONS +#define COAP_MAX_OPEN_TRANSACTIONS 2 + +/* Set the max number of entries in neighbors table */ +#undef NBR_TABLE_CONF_MAX_NEIGHBORS +#define NBR_TABLE_CONF_MAX_NEIGHBORS 10 + +/*Set the max number of routes handled by the node */ +#undef UIP_CONF_MAX_ROUTES +#define UIP_CONF_MAX_ROUTES 32 + +/* Set the amount of memory reserved to the uIP packet buffer */ +#undef UIP_CONF_BUFFER_SIZE +#define UIP_CONF_BUFFER_SIZE 192 + +/* RPL specific tuning parameters */ +#undef RPL_CONF_DIO_REDUNDANCY +#define RPL_CONF_DIO_REDUNDANCY 10 + +#undef RPL_CONF_INTERVAL_MIN +#define RPL_CONF_INTERVAL_MIN 3 + +#undef RPL_CONF_DIO_INTERVAL_DOUBLINGS +#define RPL_CONF_DIO_INTERVAL_DOUBLINGS 8 + +>>>>>>> rplfix #endif diff --git a/simulation/.gitignore b/simulation/.gitignore new file mode 100644 index 0000000..4d80fa1 --- /dev/null +++ b/simulation/.gitignore @@ -0,0 +1,4 @@ +results/ +env/ +*.csv + diff --git a/simulation/drawplot.sh b/simulation/drawplot.sh new file mode 100755 index 0000000..67c8c37 --- /dev/null +++ b/simulation/drawplot.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +python pretty.py | sort -n > pretty.csv +python plot.py + diff --git a/simulation/main.sh b/simulation/main.sh new file mode 100755 index 0000000..a83fb24 --- /dev/null +++ b/simulation/main.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +REPOSITORY=$(pwd) +CONTIKI=/home/giomba/workspace/uni/contiki/ +SIMULATION=/home/giomba/workspace/uni/anaws-proj/cooja/simulation-prng.csc +REPEAT=20 + +# Setup environment +mkdir -p "$REPOSITORY/simulation/results" + +# Setup simulation parameters +for KAPPA in 5; do + for I_MIN in 20 18 16; do + I_MAX=$((22 - I_MIN)) # 22 =~ 70 minutes + + for PROJECTCONF in "$REPOSITORY/oracle/project-conf.h" "$CONTIKI/examples/ipv6/rpl-border-router/project-conf.h"; do + sed -i "s/^\#define RPL_CONF_DIO_REDUNDANCY *[0-9]*$/\#define RPL_CONF_DIO_REDUNDANCY $KAPPA/g" "$PROJECTCONF" + sed -i "s/^\#define RPL_CONF_INTERVAL_MIN *[0-9]*$/\#define RPL_CONF_INTERVAL_MIN $I_MIN/g" "$PROJECTCONF" + sed -i "s/^\#define RPL_CONF_DIO_INTERVAL_DOUBLINGS *[0-9]*$/\#define RPL_CONF_DIO_INTERVAL_DOUBLINGS $I_MAX/g" "$PROJECTCONF" + done + + # Run simulation + for (( i = 0; i<=$REPEAT; i++ )); do + cd "$CONTIKI/tools/cooja" + ant run_nogui -Dargs="$SIMULATION" & + + cd "$CONTIKI/examples/ipv6/rpl-border-router" + RESULT="" + while [ -z $RESULT ]; do # wait for cooja border router server + sleep 1 + RESULT=$(ss -tlnp | awk '{print $4}' | grep 60001) + done + make connect-router-cooja PREFIX="2001:470:c844:32::1/64" # this will terminate as soon as simulation ends + + UNIXTIMESTAMP=$(date +%s) + echo -e "REPEAT\t$i\nKAPPA\t$KAPPA\nI_MIN\t$I_MIN\nI_MAX\t$I_MAX\n" | cat - "$CONTIKI/tools/cooja/build/COOJA.testlog" > "$REPOSITORY/simulation/results/$UNIXTIMESTAMP" + done + done +done + + diff --git a/simulation/plot.py b/simulation/plot.py new file mode 100644 index 0000000..93127a9 --- /dev/null +++ b/simulation/plot.py @@ -0,0 +1,37 @@ +import matplotlib.pyplot as plt +import matplotlib.patches as mpatches +import numpy as numpy +import pandas as pd + +def getcolor(n): + return ['#aa0000', '#00aa00', '#0000aa', '#aaaa00', '#aa00aa'][int((i - 12) / 2)] + +df = pd.read_csv('pretty.csv', delimiter='\s', engine='python') + +x = df['k'].unique() + +for i in df['i_min'].unique(): + rows = df.loc[df['i_min'] == i] + plt.errorbar( + x, + rows['mean'], + yerr=rows['ci'], + marker='.', + capsize=4, + ms=3, + mec='r', + mfc='r', + linestyle='-', + linewidth=1, + color=getcolor(i), + ecolor='red' + ) + +handles = [] +for i in df['i_min'].unique(): + handles.append(mpatches.Patch(color=getcolor(i), label='Imin = ' + str(i))) + +plt.legend(handles=handles) + +plt.show() + diff --git a/simulation/pretty.py b/simulation/pretty.py new file mode 100644 index 0000000..039ba1e --- /dev/null +++ b/simulation/pretty.py @@ -0,0 +1,63 @@ +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd +import csv +import os +import re +import statistics + +### PARAMETERS ### +RESULTSDIR='results/' + +### FUNCTIONS ### +def compute_confidence_interval(samples): # 95% + stdev = statistics.stdev(samples) + ci = 1.96 * stdev / np.sqrt(len(samples)) + return ci + +### GLOBAL VARIABLES ### +all_route_discovery = dict() + +### MAIN ### +for filename in os.listdir(RESULTSDIR): + df = pd.read_csv(RESULTSDIR + '/' + filename, + delimiter='\s|\t', + index_col=0, + nrows=4, + engine='python', + header=None).T + + kappa = int(df['KAPPA'].to_string().split()[1]) + i_min = int(df['I_MIN'].to_string().split()[1]) + key = str(kappa) + ':' + str(i_min) + + if (not key in all_route_discovery): + all_route_discovery[key] = { 'samples': [], 'k': kappa, 'i_min': i_min, 'count': 0 } + + all_route_discovery[key]['count'] += 1 + + with open(RESULTSDIR + '/' + filename) as file: + for line in file: + if (re.match('ALL-ROUTE-DISCOVERY', line)): + t = int(line.split()[1]) / (10**6) + all_route_discovery[key]['samples'].append(t) + break + +# now, for every k, i_min, i_max +# all_route_discovery contains an array with all samples of the measured value + +print('k i_min count mean ci') +for simulation in all_route_discovery: + all_route_discovery[simulation]['mean'] = np.mean(all_route_discovery[simulation]['samples']) + all_route_discovery[simulation]['ci'] = compute_confidence_interval(all_route_discovery[simulation]['samples']) + + print( + all_route_discovery[simulation]['k'], + all_route_discovery[simulation]['i_min'], + all_route_discovery[simulation]['count'], + all_route_discovery[simulation]['mean'], + all_route_discovery[simulation]['ci'] + ) + +exit(0) + diff --git a/simulation/requirements.txt b/simulation/requirements.txt new file mode 100644 index 0000000..cfb5eff --- /dev/null +++ b/simulation/requirements.txt @@ -0,0 +1,10 @@ +cycler==0.10.0 +kiwisolver==1.1.0 +matplotlib==3.1.2 +numpy==1.17.4 +pandas==0.25.3 +pkg-resources==0.0.0 +pyparsing==2.4.5 +python-dateutil==2.8.1 +pytz==2019.3 +six==1.13.0