X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=apps%2Ftests%2FTestDhv%2FTestDhvP.nc;fp=apps%2Ftests%2FTestDhv%2FTestDhvP.nc;h=5c75d2f91a737626ad4c547364e8c60422aa38aa;hb=e9bfab607e051bae6afb47b44892ce37541d1b44;hp=0000000000000000000000000000000000000000;hpb=adf1de6c009d13b7b52e68535c63b28f59c97400;p=tinyos-2.x.git diff --git a/apps/tests/TestDhv/TestDhvP.nc b/apps/tests/TestDhv/TestDhvP.nc new file mode 100644 index 00000000..5c75d2f9 --- /dev/null +++ b/apps/tests/TestDhv/TestDhvP.nc @@ -0,0 +1,674 @@ + +module TestDhvP { + uses interface Leds; + uses interface StdControl; + + /* + uses interface DisseminationUpdate as DisseminationUpdate1; + uses interface DisseminationValue as DisseminationValue1; + */ + + uses interface DisseminationUpdate as DisseminationUpdate1; + uses interface DisseminationValue as DisseminationValue1; + + uses interface DisseminationUpdate as DisseminationUpdate2; + uses interface DisseminationValue as DisseminationValue2; + + uses interface DisseminationUpdate as DisseminationUpdate3; + uses interface DisseminationValue as DisseminationValue3; + + uses interface DisseminationUpdate as DisseminationUpdate4; + uses interface DisseminationValue as DisseminationValue4; + + uses interface DisseminationUpdate as DisseminationUpdate5; + uses interface DisseminationValue as DisseminationValue5; + + uses interface DisseminationUpdate as DisseminationUpdate6; + uses interface DisseminationValue as DisseminationValue6; + + uses interface DisseminationUpdate as DisseminationUpdate7; + uses interface DisseminationValue as DisseminationValue7; + + uses interface DisseminationUpdate as DisseminationUpdate8; + uses interface DisseminationValue as DisseminationValue8; + + uses interface DisseminationUpdate as DisseminationUpdate9; + uses interface DisseminationValue as DisseminationValue9; + + uses interface DisseminationUpdate as DisseminationUpdate10; + uses interface DisseminationValue as DisseminationValue10; + + uses interface DisseminationUpdate as DisseminationUpdate11; + uses interface DisseminationValue as DisseminationValue11; + + uses interface DisseminationUpdate as DisseminationUpdate12; + uses interface DisseminationValue as DisseminationValue12; + + uses interface DisseminationUpdate as DisseminationUpdate13; + uses interface DisseminationValue as DisseminationValue13; + + uses interface DisseminationUpdate as DisseminationUpdate14; + uses interface DisseminationValue as DisseminationValue14; + + uses interface DisseminationUpdate as DisseminationUpdate15; + uses interface DisseminationValue as DisseminationValue15; + + uses interface DisseminationUpdate as DisseminationUpdate16; + uses interface DisseminationValue as DisseminationValue16; + + uses interface DisseminationUpdate as DisseminationUpdate17; + uses interface DisseminationValue as DisseminationValue17; + + uses interface DisseminationUpdate as DisseminationUpdate18; + uses interface DisseminationValue as DisseminationValue18; + + uses interface DisseminationUpdate as DisseminationUpdate19; + uses interface DisseminationValue as DisseminationValue19; + + uses interface DisseminationUpdate as DisseminationUpdate20; + uses interface DisseminationValue as DisseminationValue20; + + uses interface DisseminationUpdate as DisseminationUpdate21; + uses interface DisseminationValue as DisseminationValue21; + + uses interface DisseminationUpdate as DisseminationUpdate22; + uses interface DisseminationValue as DisseminationValue22; + + uses interface DisseminationUpdate as DisseminationUpdate23; + uses interface DisseminationValue as DisseminationValue23; + + uses interface DisseminationUpdate as DisseminationUpdate24; + uses interface DisseminationValue as DisseminationValue24; + + uses interface DisseminationUpdate as DisseminationUpdate25; + uses interface DisseminationValue as DisseminationValue25; + + uses interface DisseminationUpdate as DisseminationUpdate26; + uses interface DisseminationValue as DisseminationValue26; + + uses interface DisseminationUpdate as DisseminationUpdate27; + uses interface DisseminationValue as DisseminationValue27; + + uses interface DisseminationUpdate as DisseminationUpdate28; + uses interface DisseminationValue as DisseminationValue28; + + uses interface DisseminationUpdate as DisseminationUpdate29; + uses interface DisseminationValue as DisseminationValue29; + + uses interface DisseminationUpdate as DisseminationUpdate30; + uses interface DisseminationValue as DisseminationValue30; + + uses interface DisseminationUpdate as DisseminationUpdate31; + uses interface DisseminationValue as DisseminationValue31; + + uses interface DisseminationUpdate as DisseminationUpdate32; + uses interface DisseminationValue as DisseminationValue32; + + uses interface DisseminationUpdate as DisseminationUpdate33; + uses interface DisseminationValue as DisseminationValue33; + + uses interface DisseminationUpdate as DisseminationUpdate34; + uses interface DisseminationValue as DisseminationValue34; + + uses interface DisseminationUpdate as DisseminationUpdate35; + uses interface DisseminationValue as DisseminationValue35; + + uses interface DisseminationUpdate as DisseminationUpdate36; + uses interface DisseminationValue as DisseminationValue36; + + uses interface DisseminationUpdate as DisseminationUpdate37; + uses interface DisseminationValue as DisseminationValue37; + + uses interface DisseminationUpdate as DisseminationUpdate38; + uses interface DisseminationValue as DisseminationValue38; + + uses interface DisseminationUpdate as DisseminationUpdate39; + uses interface DisseminationValue as DisseminationValue39; + + uses interface DisseminationUpdate as DisseminationUpdate40; + uses interface DisseminationValue as DisseminationValue40; + + uses interface DisseminationUpdate as DisseminationUpdate41; + uses interface DisseminationValue as DisseminationValue41; + + uses interface DisseminationUpdate as DisseminationUpdate42; + uses interface DisseminationValue as DisseminationValue42; + + uses interface DisseminationUpdate as DisseminationUpdate43; + uses interface DisseminationValue as DisseminationValue43; + + uses interface DisseminationUpdate as DisseminationUpdate44; + uses interface DisseminationValue as DisseminationValue44; + + uses interface DisseminationUpdate as DisseminationUpdate45; + uses interface DisseminationValue as DisseminationValue45; + + uses interface DisseminationUpdate as DisseminationUpdate46; + uses interface DisseminationValue as DisseminationValue46; + + uses interface DisseminationUpdate as DisseminationUpdate47; + uses interface DisseminationValue as DisseminationValue47; + + uses interface DisseminationUpdate as DisseminationUpdate48; + uses interface DisseminationValue as DisseminationValue48; + + uses interface DisseminationUpdate as DisseminationUpdate49; + uses interface DisseminationValue as DisseminationValue49; + + uses interface DisseminationUpdate as DisseminationUpdate50; + uses interface DisseminationValue as DisseminationValue50; + + uses interface DisseminationUpdate as DisseminationUpdate51; + uses interface DisseminationValue as DisseminationValue51; + + uses interface DisseminationUpdate as DisseminationUpdate52; + uses interface DisseminationValue as DisseminationValue52; + + uses interface DisseminationUpdate as DisseminationUpdate53; + uses interface DisseminationValue as DisseminationValue53; + + uses interface DisseminationUpdate as DisseminationUpdate54; + uses interface DisseminationValue as DisseminationValue54; + + uses interface DisseminationUpdate as DisseminationUpdate55; + uses interface DisseminationValue as DisseminationValue55; + + uses interface DisseminationUpdate as DisseminationUpdate56; + uses interface DisseminationValue as DisseminationValue56; + + uses interface DisseminationUpdate as DisseminationUpdate57; + uses interface DisseminationValue as DisseminationValue57; + + uses interface DisseminationUpdate as DisseminationUpdate58; + uses interface DisseminationValue as DisseminationValue58; + + uses interface DisseminationUpdate as DisseminationUpdate59; + uses interface DisseminationValue as DisseminationValue59; + + uses interface DisseminationUpdate as DisseminationUpdate60; + uses interface DisseminationValue as DisseminationValue60; + + uses interface DisseminationUpdate as DisseminationUpdate61; + uses interface DisseminationValue as DisseminationValue61; + + uses interface DisseminationUpdate as DisseminationUpdate62; + uses interface DisseminationValue as DisseminationValue62; + + uses interface DisseminationUpdate as DisseminationUpdate63; + uses interface DisseminationValue as DisseminationValue63; + + uses interface DisseminationUpdate as DisseminationUpdate64; + uses interface DisseminationValue as DisseminationValue64; + + + uses interface Boot; + uses interface AMSend as SerialSend; + uses interface SplitControl as SerialControl; +} + +implementation { + typedef nx_struct dhv_test_msg_t { + nx_am_addr_t id; + nx_uint8_t count; + nx_uint8_t isOk; + } dhv_test_msg_t; + + message_t testMsg; + + uint8_t okBit = 1; + uint16_t data; + uint8_t count = 0; + /* + uint8_t newCount = N; + */ + uint8_t newCount = 8; + + void bookkeep(); + + event void SerialControl.startDone(error_t err) { + call StdControl.start(); + if(TOS_NODE_ID == 1) { + data = 0xBEEF; + dbg("TestDhvP","Updating data items\n"); + /* + call DisseminationUpdate1.change(&data); + */ + call DisseminationUpdate18.change(&data); + call DisseminationUpdate61.change(&data); + call DisseminationUpdate21.change(&data); + call DisseminationUpdate53.change(&data); + call DisseminationUpdate17.change(&data); + call DisseminationUpdate19.change(&data); + call DisseminationUpdate11.change(&data); + call DisseminationUpdate36.change(&data); + } + } + + event void SerialControl.stopDone(error_t err) { + + } + + event void Boot.booted() { + call SerialControl.start(); + dbg("TestDhvP", "Booted at %s\n", sim_time_string()); + } + /* + event void DisseminationValue1.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue1.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + */ + + event void DisseminationValue1.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue1.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue2.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue2.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue3.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue3.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue4.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue4.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue5.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue5.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue6.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue6.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue7.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue7.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue8.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue8.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue9.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue9.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue10.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue10.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue11.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue11.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue12.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue12.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue13.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue13.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue14.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue14.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue15.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue15.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue16.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue16.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue17.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue17.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue18.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue18.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue19.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue19.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue20.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue20.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue21.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue21.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue22.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue22.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue23.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue23.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue24.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue24.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue25.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue25.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue26.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue26.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue27.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue27.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue28.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue28.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue29.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue29.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue30.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue30.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue31.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue31.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue32.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue32.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue33.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue33.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue34.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue34.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue35.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue35.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue36.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue36.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue37.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue37.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue38.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue38.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue39.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue39.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue40.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue40.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue41.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue41.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue42.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue42.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue43.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue43.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue44.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue44.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue45.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue45.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue46.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue46.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue47.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue47.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue48.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue48.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue49.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue49.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue50.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue50.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue51.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue51.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue52.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue52.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue53.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue53.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue54.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue54.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue55.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue55.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue56.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue56.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue57.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue57.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue58.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue58.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue59.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue59.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue60.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue60.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue61.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue61.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue62.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue62.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue63.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue63.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + event void DisseminationValue64.changed() { + uint16_t val = *(uint16_t*) call DisseminationValue64.get(); + if(val != 0xBEEF) { return; } + bookkeep(); + } + + + void bookkeep() { + dhv_test_msg_t* dhvTestMsgPtr; + + if(count < newCount) { + count++; + } + dbg("TestDhvP", "Got an update, %u complete now at %s\n", count, sim_time_string()); + call Leds.led0Toggle(); + + dhvTestMsgPtr = (dhv_test_msg_t*) call SerialSend.getPayload(&testMsg, 0); + dhvTestMsgPtr->id = TOS_NODE_ID; + dhvTestMsgPtr->count = count; + dhvTestMsgPtr->isOk = okBit; + call SerialSend.send(0, &testMsg, sizeof(dhv_test_msg_t)); + + + if(newCount == count) { + dbg("TestDhvP","Dissemination COMPLETE!\n"); + call Leds.set(7); + } + + } + + event void SerialSend.sendDone(message_t* message, error_t err) { + + } +}