[Tinyos-2-commits] CVS: tinyos-2.x/tos/platforms/eyesIFX TimeSyncMessageP.nc, NONE, 1.1 TimeSyncMessageC.nc, NONE, 1.1 PacketStampP.nc, NONE, 1.1 PacketStampC.nc, NONE, 1.1 LocalTimeP.nc, 1.4, 1.5 LocalTimeC.nc, 1.2, 1.3 ActiveMessageC.nc, 1.5, 1.6
akoepke
andreaskoepke at users.sourceforge.net
Wed Jul 9 03:00:50 PDT 2008
- Previous message: [Tinyos-2-commits] CVS: tinyos-2.x/tos/lib/printf PrintfP.nc, 1.13, 1.14
- Next message: [Tinyos-2-commits] CVS: tinyos-2.x/tos/platforms/eyesIFX TimeSyncMessageP.nc, 1.1, 1.2 TimeSyncMessageC.nc, 1.1, 1.2 PacketStampP.nc, 1.1, 1.2 PacketStampC.nc, 1.1, 1.2 LocalTimeP.nc, 1.5, 1.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/tinyos/tinyos-2.x/tos/platforms/eyesIFX
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv27162
Modified Files:
LocalTimeP.nc LocalTimeC.nc ActiveMessageC.nc
Added Files:
TimeSyncMessageP.nc TimeSyncMessageC.nc PacketStampP.nc
PacketStampC.nc
Log Message:
started support for FTSP
--- NEW FILE: TimeSyncMessageP.nc ---
/* -*- mode:c++; indent-tabs-mode:nil -*-
* Copyright (c) 2008, Technische Universitaet Berlin
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* - Neither the name of the Technische Universitaet Berlin nor the names
* of its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**
* Expose the time sync capabilities of the eyesIFX platform
*/
#include "radiopacketfunctions.h"
module TimeSyncMessageP {
provides {
interface TimeSyncAMSend<T32khz, uint32_t> as TimeSyncAMSend32khz[am_id_t id];
interface TimeSyncPacket<T32khz, uint32_t> as TimeSyncPacket32khz;
interface TimeSyncAMSend<TMilli, uint32_t> as TimeSyncAMSendMilli[am_id_t id];
interface TimeSyncPacket<TMilli, uint32_t> as TimeSyncPacketMilli;
}
uses {
interface AMSend as SubSend[am_id_t id];
interface AMPacket;
}
}
implementation {
typedef enum
{
NONE,
RES_32_K,
RES_1_K
} resolution_t;
resolution_t resolution = NONE;
command error_t TimeSyncAMSend32khz.send[am_id_t id](am_addr_t addr,
message_t* msg,
uint8_t len,
uint32_t event_time) {
getMetadata(msg)->time = event_time;
resolution = RES_32_K;
return call SubSend.send[id](addr, msg, len);
}
command error_t TimeSyncAMSend32khz.cancel[am_id_t id](message_t* msg) {
return call SubSend.cancel[id](msg);
}
command uint8_t TimeSyncAMSend32khz.maxPayloadLength[am_id_t id]() {
return call SubSend.maxPayloadLength[id]();
}
command void* TimeSyncAMSend32khz.getPayload[am_id_t id](message_t* m, uint8_t len) {
return call SubSend.getPayload[id](m, len);
}
command bool TimeSyncPacket32khz.isValid(message_t* msg) {
return TRUE;
}
command uint32_t TimeSyncPacket32khz.eventTime(message_t* msg) {
return getMetadata(msg)->time;
};
command error_t TimeSyncAMSendMilli.send[am_id_t id](am_addr_t addr,
message_t* msg,
uint8_t len,
uint32_t event_time) {
getMetadata(msg)->time = (event_time * 32);
resolution = RES_1_K;
return call SubSend.send[id](addr, msg, len);
}
command error_t TimeSyncAMSendMilli.cancel[am_id_t id](message_t* msg) {
return call SubSend.cancel[id](msg);
}
command uint8_t TimeSyncAMSendMilli.maxPayloadLength[am_id_t id]() {
return call SubSend.maxPayloadLength[id]();
}
command void* TimeSyncAMSendMilli.getPayload[am_id_t id](message_t* m, uint8_t len) {
return call SubSend.getPayload[id](m, len);
}
command bool TimeSyncPacketMilli.isValid(message_t* msg) {
return TRUE;
}
command uint32_t TimeSyncPacketMilli.eventTime(message_t* msg) {
return (getMetadata(msg)->time / 32);
};
event void SubSend.sendDone[uint8_t id](message_t* msg, error_t result) {
if(resolution == RES_32_K) {
signal TimeSyncAMSend32khz.sendDone[id](msg, result);
}
else {
signal TimeSyncAMSendMilli.sendDone[id](msg, result);
}
}
default event void TimeSyncAMSend32khz.sendDone[uint8_t id](message_t* msg, error_t err) {
return;
}
default event void TimeSyncAMSendMilli.sendDone[uint8_t id](message_t* msg, error_t err) {
return;
}
}
--- NEW FILE: TimeSyncMessageC.nc ---
/* -*- mode:c++; indent-tabs-mode:nil -*-
* Copyright (c) 2008, Technische Universitaet Berlin
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* - Neither the name of the Technische Universitaet Berlin nor the names
* of its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**
* Expose the time sync capabilities of the eyesIFX platform
*/
configuration TimeSyncMessageC {
provides {
interface SplitControl;
interface Receive[am_id_t id];
interface Receive as Snoop[am_id_t id];
interface Packet;
interface AMPacket;
interface PacketTimeStamp<T32khz, uint32_t> as PacketTimeStamp32khz;
interface PacketTimeStamp<TMilli, uint32_t> as PacketTimeStampMilli;
interface TimeSyncAMSend<T32khz, uint32_t> as TimeSyncAMSend32khz[am_id_t id];
interface TimeSyncPacket<T32khz, uint32_t> as TimeSyncPacket32khz;
interface TimeSyncAMSend<TMilli, uint32_t> as TimeSyncAMSendMilli[am_id_t id];
interface TimeSyncPacket<TMilli, uint32_t> as TimeSyncPacketMilli;
}
}
implementation {
components TimeSyncMessageP as TS;
components ActiveMessageC as AM;
SplitControl = AM;
Receive = AM.Receive;
Snoop = AM.Snoop;
Packet = AM;
AMPacket = AM;
PacketTimeStamp32khz = AM;
PacketTimeStampMilli = AM;
TS.SubSend -> AM.AMSend;
TS.AMPacket -> AM.AMPacket;
TimeSyncAMSend32khz = TS;
TimeSyncAMSendMilli = TS;
TimeSyncPacket32khz = TS;
TimeSyncPacketMilli = TS;
}
--- NEW FILE: PacketStampP.nc ---
/* -*- mode:c++; indent-tabs-mode:nil -*-
* Copyright (c) 2008, Technische Universitaet Berlin
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* - Neither the name of the Technische Universitaet Berlin nor the names
* of its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "radiopacketfunctions.h"
module PacketStampP {
provides {
interface PacketTimeStamp<T32khz, uint32_t> as PacketTimeStamp32khz;
interface PacketTimeStamp<TMilli, uint32_t> as PacketTimeStampMilli;
}
}
implementation {
async command bool PacketTimeStamp32khz.isValid(message_t* msg) {
return TRUE;
}
async command void PacketTimeStamp32khz.clear(message_t* msg) {
}
async command uint32_t PacketTimeStamp32khz.timestamp(message_t* msg) {
return getMetadata(msg)->time;
}
async command void PacketTimeStamp32khz.set(message_t* msg, uint32_t value) {
getMetadata(msg)->time = value;
}
async command bool PacketTimeStampMilli.isValid(message_t* msg) {
return TRUE;
}
async command void PacketTimeStampMilli.clear(message_t* msg) {
}
async command uint32_t PacketTimeStampMilli.timestamp(message_t* msg) {
return (getMetadata(msg)->time / 32);
}
async command void PacketTimeStampMilli.set(message_t* msg, uint32_t value) {
getMetadata(msg)->time = value * 32;
}
}
--- NEW FILE: PacketStampC.nc ---
/* -*- mode:c++; indent-tabs-mode:nil -*-
* Copyright (c) 2008, Technische Universitaet Berlin
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* - Neither the name of the Technische Universitaet Berlin nor the names
* of its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
configuration PacketStampC {
provides {
interface PacketTimeStamp<T32khz, uint32_t> as PacketTimeStamp32khz;
interface PacketTimeStamp<TMilli, uint32_t> as PacketTimeStampMilli;
}
}
implementation {
components PacketStampP as PS;
PacketTimeStamp32khz = PS;
PacketTimeStampMilli = PS;
}
Index: LocalTimeP.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/platforms/eyesIFX/LocalTimeP.nc,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** LocalTimeP.nc 7 Dec 2007 19:00:15 -0000 1.4
--- LocalTimeP.nc 9 Jul 2008 10:00:43 -0000 1.5
***************
*** 31,34 ****
--- 31,35 ----
provides {
interface LocalTime<T32khz> as LocalTime32kHz;
+ interface LocalTime<TMilli> as LocalTimeTMilli;
interface WideLocalTime<T32khz> as WideLocalTime;
}
***************
*** 92,95 ****
--- 93,100 ----
if(dayCounter < 0) dayCounter = 0;
}
+
+ async command uint32_t LocalTimeTMilli.get() {
+ return (call LocalTime32kHz.get() / 32);
+ }
}
Index: LocalTimeC.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/platforms/eyesIFX/LocalTimeC.nc,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** LocalTimeC.nc 5 Dec 2007 10:14:55 -0000 1.2
--- LocalTimeC.nc 9 Jul 2008 10:00:44 -0000 1.3
***************
*** 30,34 ****
configuration LocalTimeC {
provides {
! interface LocalTime<T32khz> as LocalTime;
interface WideLocalTime<T32khz> as WideLocalTime;
}
--- 30,35 ----
configuration LocalTimeC {
provides {
! interface LocalTime<T32khz> as LocalTimeT32khz;
! interface LocalTime<TMilli> as LocalTimeTMilli;
interface WideLocalTime<T32khz> as WideLocalTime;
}
***************
*** 36,40 ****
implementation {
components LocalTimeP, Counter32khz16C as Counter;
! LocalTime = LocalTimeP;
WideLocalTime = LocalTimeP;
LocalTimeP.Counter32khz16 -> Counter;
--- 37,42 ----
implementation {
components LocalTimeP, Counter32khz16C as Counter;
! LocalTimeT32khz = LocalTimeP;
! LocalTimeTMilli = LocalTimeP;
WideLocalTime = LocalTimeP;
LocalTimeP.Counter32khz16 -> Counter;
Index: ActiveMessageC.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-2.x/tos/platforms/eyesIFX/ActiveMessageC.nc,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** ActiveMessageC.nc 11 Jun 2008 00:46:26 -0000 1.5
--- ActiveMessageC.nc 9 Jul 2008 10:00:44 -0000 1.6
***************
*** 46,49 ****
--- 46,51 ----
*/
+ #include "Timer.h"
+
configuration ActiveMessageC {
provides {
***************
*** 58,61 ****
--- 60,66 ----
interface PacketAcknowledgements;
+
+ interface PacketTimeStamp<T32khz, uint32_t> as PacketTimeStamp32khz;
+ interface PacketTimeStamp<TMilli, uint32_t> as PacketTimeStampMilli;
}
}
***************
*** 63,66 ****
--- 68,72 ----
components ActiveMessageFilterC as Filter;
components Tda5250ActiveMessageC as AM;
+ components PacketStampC as PacketStamp;
AMSend = Filter;
***************
*** 78,80 ****
--- 84,89 ----
PacketAcknowledgements = AM;
+
+ PacketTimeStamp32khz = PacketStamp;
+ PacketTimeStampMilli = PacketStamp;
}
- Previous message: [Tinyos-2-commits] CVS: tinyos-2.x/tos/lib/printf PrintfP.nc, 1.13, 1.14
- Next message: [Tinyos-2-commits] CVS: tinyos-2.x/tos/platforms/eyesIFX TimeSyncMessageP.nc, 1.1, 1.2 TimeSyncMessageC.nc, 1.1, 1.2 PacketStampP.nc, 1.1, 1.2 PacketStampC.nc, 1.1, 1.2 LocalTimeP.nc, 1.5, 1.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Tinyos-2-commits
mailing list