From: sallai Date: Tue, 10 Jun 2008 22:20:30 +0000 (+0000) Subject: simple test app to test FTSP X-Git-Tag: release_tinyos_2_1_0_0~322 X-Git-Url: https://oss.titaniummirror.com/gitweb/?p=tinyos-2.x.git;a=commitdiff_plain;h=d055fdc39bb6bf704118726af2f06d8af5d2bb81 simple test app to test FTSP --- diff --git a/apps/tests/TestFTSP/Makefile b/apps/tests/TestFTSP/Makefile new file mode 100644 index 00000000..accc415e --- /dev/null +++ b/apps/tests/TestFTSP/Makefile @@ -0,0 +1,18 @@ +BUILD_EXTRA_DEPS = TestFTSPMsg.class +CLEAN_EXTRA = *.class TestFTSPMsg.java + +TestFTSPMsg.class: TestFTSPMsg.java + javac TestFTSPMsg.java + +TestFTSPMsg.java: TestFTSP.h + mig java -target=$(PLATFORM) $(CFLAGS) -java-classname=TestFTSPMsg TestFTSP.h test_ftsp_msg -o $@ + +COMPONENT=TestFTSPC + +PFLAGS += -v -DTIMESYNC_RATE=10 +#PFLAGS += -DTIMESYNC_DEBUG + +PFLAGS += -I$(TOSDIR)/lib/FTSP -I$(TOSDIR)/../apps/RadioCountToLeds + +include $(MAKERULES) + diff --git a/apps/tests/TestFTSP/TestFTSP.h b/apps/tests/TestFTSP/TestFTSP.h new file mode 100644 index 00000000..fb790ef7 --- /dev/null +++ b/apps/tests/TestFTSP/TestFTSP.h @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2002, Vanderbilt University + * All rights reserved. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose, without fee, and without written agreement is + * hereby granted, provided that the above copyright notice, the following + * two paragraphs and the author appear in all copies of this software. + * + * IN NO EVENT SHALL THE VANDERBILT UNIVERSITY BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT + * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE VANDERBILT + * UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * THE VANDERBILT UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE VANDERBILT UNIVERSITY HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * @author: Miklos Maroti, Brano Kusy (kusy@isis.vanderbilt.edu) + * Ported to T2: 3/17/08 by Brano Kusy (branislav.kusy@gmail.com) + */ + +#ifndef TEST_FTSP_H +#define TEST_FTSP_H + +typedef nx_struct test_ftsp_msg +{ + nx_uint16_t src_addr; + nx_uint16_t counter; + nx_uint32_t local_rx_timestamp; + nx_uint32_t global_rx_timestamp; + nx_uint32_t skew_times_1000000; + nx_uint8_t is_synced; + nx_uint16_t ftsp_root_addr; + nx_uint8_t ftsp_seq; + nx_uint8_t ftsp_table_entries; +} test_ftsp_msg_t; + +enum +{ + AM_TEST_FTSP_MSG = 9 +}; + +#endif diff --git a/apps/tests/TestFTSP/TestFTSPAppC.nc b/apps/tests/TestFTSP/TestFTSPAppC.nc new file mode 100644 index 00000000..a3f05331 --- /dev/null +++ b/apps/tests/TestFTSP/TestFTSPAppC.nc @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2002, Vanderbilt University + * All rights reserved. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose, without fee, and without written agreement is + * hereby granted, provided that the above copyright notice, the following + * two paragraphs and the author appear in all copies of this software. + * + * IN NO EVENT SHALL THE VANDERBILT UNIVERSITY BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT + * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE VANDERBILT + * UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * THE VANDERBILT UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE VANDERBILT UNIVERSITY HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * @author: Miklos Maroti, Brano Kusy (kusy@isis.vanderbilt.edu) + * Ported to T2: 3/17/08 by Brano Kusy (branislav.kusy@gmail.com) + */ + +#include "TestFTSP.h" +#include "RadioCountToLeds.h" + +module TestFTSPAppC +{ + uses + { + interface GlobalTime; + interface TimeSyncInfo; + interface Receive; + interface AMSend; + interface Packet; + interface Leds; + interface PacketTimeStamp; + interface Boot; + interface SplitControl as RadioControl; + } +} + +implementation +{ + message_t msg; + bool locked = FALSE; + + event void Boot.booted() { + call RadioControl.start(); + } + + event message_t* Receive.receive(message_t* msgPtr, void* payload, uint8_t len) + { + call Leds.led0Toggle(); + if (!locked && call PacketTimeStamp.isValid(msgPtr)) { + radio_count_msg_t* rcm = (radio_count_msg_t*)call Packet.getPayload(msgPtr, sizeof(radio_count_msg_t)); + test_ftsp_msg_t* report = (test_ftsp_msg_t*)call Packet.getPayload(&msg, sizeof(test_ftsp_msg_t)); + + uint32_t rx_timestamp = call PacketTimeStamp.timestamp(msgPtr); + + report->src_addr = TOS_NODE_ID; + report->counter = rcm->counter; + report->local_rx_timestamp = rx_timestamp; + report->is_synced = call GlobalTime.local2Global(&rx_timestamp); + report->global_rx_timestamp = rx_timestamp; + report->skew_times_1000000 = (uint32_t)call TimeSyncInfo.getSkew()*1000000UL; + report->ftsp_root_addr = call TimeSyncInfo.getRootID(); + report->ftsp_seq = call TimeSyncInfo.getSeqNum(); + report->ftsp_table_entries = call TimeSyncInfo.getNumEntries(); + + if (call AMSend.send(AM_BROADCAST_ADDR, &msg, sizeof(test_ftsp_msg_t)) == SUCCESS) { + locked = TRUE; + } + } + + return msgPtr; + } + + event void AMSend.sendDone(message_t* ptr, error_t success) { + locked = FALSE; + return; + } + + event void RadioControl.startDone(error_t err) {} + event void RadioControl.stopDone(error_t error){} +} diff --git a/apps/tests/TestFTSP/TestFTSPC.nc b/apps/tests/TestFTSP/TestFTSPC.nc new file mode 100644 index 00000000..c73de628 --- /dev/null +++ b/apps/tests/TestFTSP/TestFTSPC.nc @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2002, Vanderbilt University + * All rights reserved. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose, without fee, and without written agreement is + * hereby granted, provided that the above copyright notice, the following + * two paragraphs and the author appear in all copies of this software. + * + * IN NO EVENT SHALL THE VANDERBILT UNIVERSITY BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT + * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE VANDERBILT + * UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * THE VANDERBILT UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE VANDERBILT UNIVERSITY HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * @author: Miklos Maroti, Brano Kusy (kusy@isis.vanderbilt.edu) + * Ported to T2: 3/17/08 by Brano Kusy (branislav.kusy@gmail.com) + */ + +#include "TestFTSP.h" +#include "RadioCountToLeds.h" + +configuration TestFTSPC { +} + +implementation { + components MainC, TimeSyncC; + + MainC.SoftwareInit -> TimeSyncC; + TimeSyncC.Boot -> MainC; + + components TestFTSPAppC as App; + App.Boot -> MainC; + + components ActiveMessageC; + App.RadioControl -> ActiveMessageC; + App.Receive -> ActiveMessageC.Receive[AM_RADIO_COUNT_MSG]; + App.AMSend -> ActiveMessageC.AMSend[AM_TEST_FTSP_MSG]; + App.Packet -> ActiveMessageC; + App.PacketTimeStamp -> ActiveMessageC; + + components LedsC; + + App.GlobalTime -> TimeSyncC; + App.TimeSyncInfo -> TimeSyncC; + App.Leds -> LedsC; + +}