X-Git-Url: https://oss.titaniummirror.com/gitweb/?p=tinyos-2.x.git;a=blobdiff_plain;f=apps%2Ftests%2FTestNetwork%2FTestNetworkC.nc;h=05e44d2fbf2ca1b41a5fc246a7d4864d233e1e0c;hp=7e7278246969bada93f08868e56da9b5c8f035f0;hb=82ff984239b5b5088c952b684a5ab0f8112b8074;hpb=33bb0f7d24c0b81f4cb533fd2c08ca855ea7fa16 diff --git a/apps/tests/TestNetwork/TestNetworkC.nc b/apps/tests/TestNetwork/TestNetworkC.nc index 7e727824..05e44d2f 100644 --- a/apps/tests/TestNetwork/TestNetworkC.nc +++ b/apps/tests/TestNetwork/TestNetworkC.nc @@ -114,7 +114,6 @@ implementation { event void Timer.fired() { uint32_t nextInt; - call Leds.led0Toggle(); dbg("TestNetworkC", "TestNetworkC: Timer fired.\n"); nextInt = call Random.rand32() % SEND_INTERVAL; nextInt += SEND_INTERVAL >> 1; @@ -125,7 +124,7 @@ implementation { event void Send.sendDone(message_t* m, error_t err) { if (err != SUCCESS) { - // call Leds.led0On(); + call Leds.led0On(); } sendBusy = FALSE; dbg("TestNetworkC", "Send completed.\n"); @@ -137,13 +136,26 @@ implementation { call Timer.startPeriodic(*newVal); } + + uint8_t prevSeq = 0; + uint8_t firstMsg = 0; + event message_t* Receive.receive(message_t* msg, void* payload, uint8_t len) { dbg("TestNetworkC", "Received packet at %s from node %hhu.\n", sim_time_string(), call CollectionPacket.getOrigin(msg)); - call Leds.led1Toggle(); - if (!call Pool.size() <= (TEST_NETWORK_QUEUE_SIZE < 4)? 1:3) { - // call CtpCongestion.setClientCongested(TRUE); + call Leds.led1Toggle(); + + if (call CollectionPacket.getOrigin(msg) == 1) { + if (firstMsg == 1) { + if (call CollectionPacket.getSequenceNumber(msg) - prevSeq > 1) { + call Leds.led2On(); + } + } else { + firstMsg = 1; + } + prevSeq = call CollectionPacket.getSequenceNumber(msg); } + if (!call Pool.empty() && call Queue.size() < call Queue.maxSize()) { message_t* tmp = call Pool.get(); call Queue.enqueue(msg);