From: gtolle Date: Sat, 14 Apr 2007 00:34:20 +0000 (+0000) Subject: Updated TestDissemination and TestNetwork to start the dissemination service manually... X-Git-Tag: tinyos/2.0.1~50 X-Git-Url: https://oss.titaniummirror.com/gitweb/?p=tinyos-2.x.git;a=commitdiff_plain;h=9926b97d227f94bf79d70c1f576b0ad7c0dadff6 Updated TestDissemination and TestNetwork to start the dissemination service manually. I've tried TestDissemination, but haven't tried TestNetwork. Let me know if you experience any problems. --- diff --git a/apps/tests/TestDissemination/TestDisseminationAppC.nc b/apps/tests/TestDissemination/TestDisseminationAppC.nc index 0d5c6132..ce1e121c 100644 --- a/apps/tests/TestDissemination/TestDisseminationAppC.nc +++ b/apps/tests/TestDissemination/TestDisseminationAppC.nc @@ -52,6 +52,16 @@ implementation { components MainC; TestDisseminationC.Boot -> MainC; + components ActiveMessageC; + TestDisseminationC.RadioControl -> ActiveMessageC; + + components DisseminationC; + TestDisseminationC.DisseminationControl -> DisseminationC; + + components UserButtonC; + TestDisseminationC.Get -> UserButtonC; + TestDisseminationC.Notify -> UserButtonC; + components new DisseminatorC(uint32_t, 0x1234) as Object32C; TestDisseminationC.Value32 -> Object32C; TestDisseminationC.Update32 -> Object32C; diff --git a/apps/tests/TestDissemination/TestDisseminationC.nc b/apps/tests/TestDissemination/TestDisseminationC.nc index 270f61ac..df388ed7 100644 --- a/apps/tests/TestDissemination/TestDisseminationC.nc +++ b/apps/tests/TestDissemination/TestDisseminationC.nc @@ -1,4 +1,5 @@ #include +#include /* * Copyright (c) 2006 Arched Rock Corporation @@ -50,6 +51,13 @@ module TestDisseminationC { uses interface Boot; + uses interface SplitControl as RadioControl; + + uses interface StdControl as DisseminationControl; + + uses interface Get; + uses interface Notify; + uses interface DisseminationValue as Value32; uses interface DisseminationUpdate as Update32; @@ -62,19 +70,51 @@ module TestDisseminationC { } implementation { event void Boot.booted() { - if ( TOS_NODE_ID % 4 == 1 ) { - call Timer.startPeriodic(20000); + uint32_t initialVal32 = 123456; + uint16_t initialVal16 = 1234; + + call Value32.set( &initialVal32 ); + call Value16.set( &initialVal16 ); + + call RadioControl.start(); + } + + event void RadioControl.startDone( error_t result ) { + + if ( result != SUCCESS ) { + + call RadioControl.start(); + + } else { + + call DisseminationControl.start(); + + if ( TOS_NODE_ID % 4 == 1 ) { + call Timer.startPeriodic( 1024 * 20 ); + } else { + call Timer.startPeriodic( 1024 ); + } } } + event void RadioControl.stopDone( error_t result ) { } + event void Timer.fired() { uint32_t newVal32 = 0xDEADBEEF; uint16_t newVal16 = 0xABCD; - call Leds.led0Toggle(); - call Leds.led1Toggle(); - call Update32.change( &newVal32 ); - call Update16.change( &newVal16 ); - dbg("TestDisseminationC", "TestDisseminationC: Timer fired.\n"); + + if ( TOS_NODE_ID % 4 == 1 ) { + call Leds.led0Toggle(); + call Leds.led1Toggle(); + call Update32.change( &newVal32 ); + call Update16.change( &newVal16 ); + dbg("TestDisseminationC", "TestDisseminationC: Timer fired.\n"); + } else { + const uint32_t* newVal = call Value32.get(); + if ( *newVal == 123456 ) { + call Leds.led2Toggle(); + } + } } event void Value32.changed() { diff --git a/apps/tests/TestNetwork/TestNetworkAppC.nc b/apps/tests/TestNetwork/TestNetworkAppC.nc index cbe5078b..a95dab01 100644 --- a/apps/tests/TestNetwork/TestNetworkAppC.nc +++ b/apps/tests/TestNetwork/TestNetworkAppC.nc @@ -16,6 +16,7 @@ configuration TestNetworkAppC {} implementation { components TestNetworkC, MainC, LedsC, ActiveMessageC; + components DisseminationC; components new DisseminatorC(uint16_t, SAMPLE_RATE_KEY) as Object16C; components CollectionC as Collector; components new CollectionSenderC(CL_TEST); @@ -35,6 +36,7 @@ implementation { TestNetworkC.RadioControl -> ActiveMessageC; TestNetworkC.SerialControl -> SerialActiveMessageC; TestNetworkC.RoutingControl -> Collector; + TestNetworkC.DisseminationControl -> DisseminationC; TestNetworkC.Leds -> LedsC; TestNetworkC.Timer -> TimerMilliC; TestNetworkC.DisseminationPeriod -> Object16C; diff --git a/apps/tests/TestNetwork/TestNetworkC.nc b/apps/tests/TestNetwork/TestNetworkC.nc index a2ba9e11..63dce3ba 100644 --- a/apps/tests/TestNetwork/TestNetworkC.nc +++ b/apps/tests/TestNetwork/TestNetworkC.nc @@ -19,6 +19,7 @@ module TestNetworkC { uses interface SplitControl as RadioControl; uses interface SplitControl as SerialControl; uses interface StdControl as RoutingControl; + uses interface StdControl as DisseminationControl; uses interface DisseminationValue as DisseminationPeriod; uses interface Send; uses interface Leds; @@ -63,6 +64,7 @@ implementation { call RadioControl.start(); } else { + call DisseminationControl.start(); call RoutingControl.start(); if (TOS_NODE_ID % 500 == 0) { call RootControl.setRoot();