[Tinyos-2-commits] CVS: tinyos-2.x/apps/tests/TestFtsp/FtspLpl FtspDataLogger.py, NONE, 1.1 Makefile, NONE, 1.1 README, NONE, 1.1 TestFtsp.h, NONE, 1.1 TestFtspAppC.nc, NONE, 1.1 TestFtspC.nc, NONE, 1.1 TestFtspMsg.py, NONE, 1.1
kusy
kusy at users.sourceforge.net
Wed Jul 15 23:59:40 PDT 2009
- Previous message: [Tinyos-2-commits] CVS: tinyos-2.x/apps/tests/TestFtsp/Ftsp FtspDataAnalyzer.m, NONE, 1.1 FtspDataLogger.java, NONE, 1.1 FtspDataLogger.py, NONE, 1.1 Makefile, NONE, 1.1 README.MATLAB.txt, NONE, 1.1 README.txt, NONE, 1.1 TestFtsp.h, NONE, 1.1 TestFtspAppC.nc, NONE, 1.1 TestFtspC.nc, NONE, 1.1
- Next message: [Tinyos-2-commits] CVS: tinyos-2.x/apps/tests/TestFtsp/FtspLplBeaconer Makefile, NONE, 1.1 RadioCountToLeds.h, NONE, 1.1 RadioCountToLedsAppC.nc, NONE, 1.1 RadioCountToLedsC.nc, NONE, 1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/tinyos/tinyos-2.x/apps/tests/TestFtsp/FtspLpl
In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv18289/FtspLpl
Added Files:
FtspDataLogger.py Makefile README TestFtsp.h TestFtspAppC.nc
TestFtspC.nc TestFtspMsg.py
Log Message:
Reorganizing directory: enabling LPL, 32khz clock for certain platforms. Patches thanks to Thomas Schmidt
--- NEW FILE: FtspDataLogger.py ---
#!/usr/bin/env python
import sys, time
import tos
AM_TEST_FTSP_MSG = 137
class FtspMsg(tos.Packet):
def __init__(self, packet = None):
tos.Packet.__init__(self,
[('src_addr', 'int', 2),
('counter', 'int', 2),
('local_rx_timestamp', 'int', 4),
('global_rx_timestamp', 'int', 4),
('skew_times_1000000', 'int', 4),
('is_synced', 'int', 1),
('ftsp_root_addr', 'int', 2),
('ftsp_seq', 'int', 1),
('ftsp_table_entries', 'int', 2)],
packet)
if '-h' in sys.argv:
print "Usage:", sys.argv[0], "serial@/dev/ttyUSB0:57600"
sys.exit()
am = tos.AM()
while True:
p = am.read()
if p and p.type == AM_TEST_FTSP_MSG:
msg = FtspMsg(p.data)
print int(time.time()), msg.src_addr, msg.counter, msg.global_rx_timestamp, msg.is_synced
#print msg
--- NEW FILE: Makefile ---
SENSORBOARD=quantoplus
COMPONENT=TestFtspAppC
PFLAGS += -DTIMESYNC_RATE=10
#PFLAGS += -DTIMESYNC_DEBUG
#PFLAGS += -DCC2420_CHANNEL=26
CFLAGS += -DTOSH_DATA_LENGTH=50
#CFLAGS += -DCOUNT_LOG
PFLAGS += -I$(TOSDIR)/lib/ftsp -I$(TOSDIR)/../apps/RadioCountToLeds -I$(TOSDIR)/lib/printf
CFLAGS += -DLPL_INTERVAL=200
CFLAGS += -DLOW_POWER_LISTENING
include $(MAKERULES)
--- NEW FILE: README ---
First, program several nodes with this TestFtsp application. In addition,
you will need one TinyOS Basestation that listens for messages, and one
beacon node. Program the beacon node with the RadioCountToLed application
from the TestFtsp32kLplBeaconer directory. This is a special modification of
the RadioCountToLed code which allows to evaluate a duty-cycled ftsp
network. The regular RadioCountToLed code doesn't work, since a LPL
broadcast message gets transmitted more than just once. Thus, there is a
disambiguity in which precise broadcast message was actually timestamped by
the TestFtsp application. The modifications take care of this by using the
TimeSyncAMSend interface and setting an arbitrary event time. Thus, on
reception, the TestFtsp code can account for this delayed send.
To evaluate the synchronization precision, use the FtspDataLogger.py
application. First, you will need a serial forwarder that connects to the
BaseStation node. Then, run the python application like this:
python FtspDataLogger.py sf at localhost:9002
You should now see messages coming in, one per line. The first value is the
current time as a unix timestamp. The last line is a binary value indicating
if there was some missed data, and thus the values are not good (indicated
by a 1), or if all the nodes are synchronized and we received a value for
each and every one of them (indicated by a 0).
Note!!!!!
- the basestation should also define
CFLAGS += -DTOSH_DATA_LENGTH=50
in the makefile. Else, the reports will not fit into 1 tinyos message, and
they will get silently dropped.
- 32k timesync only works for certain platforms (those that provide 32khz
counter), if your platform does not support the counter, LPL still works,
but you need to use TMilli timesync
--- NEW FILE: TestFtsp.h ---
/*
* 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 at isis.vanderbilt.edu)
* Ported to T2: 3/17/08 by Brano Kusy (branislav.kusy at 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_int32_t skew_times_1000000;
nx_float skew;
nx_uint8_t is_synced;
nx_uint16_t ftsp_root_addr;
nx_uint8_t ftsp_seq;
nx_uint8_t ftsp_table_entries;
nx_uint32_t localAverage;
nx_int32_t offsetAverage;
} test_ftsp_msg_t;
enum
{
AM_TEST_FTSP_MSG = 137
};
#endif
--- NEW FILE: TestFtspAppC.nc ---
/*
* 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 at isis.vanderbilt.edu)
* Ported to T2: 3/17/08 by Brano Kusy (branislav.kusy at gmail.com)
* Adapted for LPL: 6/16/09 by Thomas Schmid (thomas.schmid at ucla.edu)
*/
#include "TestFtsp.h"
#include "RadioCountToLeds.h"
configuration TestFtspAppC {
}
implementation {
components MainC, TimeSync32kC;
MainC.SoftwareInit -> TimeSync32kC;
TimeSync32kC.Boot -> MainC;
components TestFtspC as App;
App.Boot -> MainC;
components ActiveMessageC;
components TimeSyncMessageC;
App.RadioControl -> ActiveMessageC;
App.Receive -> TimeSyncMessageC.Receive[AM_RADIO_COUNT_MSG];
App.TimeSyncPacket -> TimeSyncMessageC;
App.AMSend -> ActiveMessageC.AMSend[AM_TEST_FTSP_MSG];
App.Packet -> ActiveMessageC;
App.PacketTimeStamp -> ActiveMessageC;
components RandomC;
App.Random -> RandomC;
components new TimerMilliC() as Timer0;
App.RandomTimer -> Timer0;
components LedsC;
App.GlobalTime -> TimeSync32kC;
App.TimeSyncInfo -> TimeSync32kC;
App.Leds -> LedsC;
#ifdef LOW_POWER_LISTENING
components CC2420ActiveMessageC;
App.LowPowerListening -> CC2420ActiveMessageC;
#endif
}
--- NEW FILE: TestFtspC.nc ---
/*
* 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 at isis.vanderbilt.edu)
* Ported to T2: 3/17/08 by Brano Kusy (branislav.kusy at gmail.com)
* Ported for LPL: Thomas Schmid (thomas.schmid at ucla.edu)
*/
#include "TestFtsp.h"
#include "RadioCountToLeds.h"
module TestFtspC
{
uses
{
interface GlobalTime<T32khz>;
interface TimeSyncInfo;
interface Receive;
interface AMSend;
interface Packet;
interface Leds;
interface PacketTimeStamp<T32khz,uint32_t>;
interface Boot;
interface SplitControl as RadioControl;
interface Timer<TMilli> as RandomTimer;
interface Random;
interface TimeSyncPacket<T32khz,uint32_t>;
#ifdef LOW_POWER_LISTENING
interface LowPowerListening;
#endif
}
}
implementation
{
enum {
ACT_TESTFTSP = 0x11,
};
message_t msg;
bool locked = FALSE;
test_ftsp_msg_t* report;
event void Boot.booted() {
call RadioControl.start();
}
event message_t* Receive.receive(message_t* msgPtr, void* payload, uint8_t len)
{
if (!(call PacketTimeStamp.isValid(msgPtr))){
call Leds.led1Toggle();
}
if (!locked && call PacketTimeStamp.isValid(msgPtr)) {
radio_count_msg_t* rcm = (radio_count_msg_t*)call Packet.getPayload(msgPtr, sizeof(radio_count_msg_t));
if(call TimeSyncPacket.isValid(msgPtr)) {
uint32_t rxTimestamp = call TimeSyncPacket.eventTime(msgPtr);
report = (test_ftsp_msg_t*)call Packet.getPayload(&msg, sizeof(test_ftsp_msg_t));
report->src_addr = TOS_NODE_ID;
report->counter = rcm->counter;
report->local_rx_timestamp = rxTimestamp;
report->is_synced = call GlobalTime.local2Global(&rxTimestamp);
report->global_rx_timestamp = rxTimestamp;
report->skew_times_1000000 = (uint32_t)call TimeSyncInfo.getSkew()*1000000UL;
report->skew = call TimeSyncInfo.getSkew();
report->ftsp_root_addr = call TimeSyncInfo.getRootID();
report->ftsp_seq = call TimeSyncInfo.getSeqNum();
report->ftsp_table_entries = call TimeSyncInfo.getNumEntries();
report->localAverage = call TimeSyncInfo.getSyncPoint();
report->offsetAverage = call TimeSyncInfo.getOffset();
locked = TRUE;
call RandomTimer.startOneShot(call Random.rand16() % (64));
}
}
return msgPtr;
}
event void RandomTimer.fired()
{
#ifdef LOW_POWER_LISTENING
call LowPowerListening.setRxSleepInterval(&msg, LPL_INTERVAL);
#endif
if(locked && (call AMSend.send(4000, &msg, sizeof(test_ftsp_msg_t)) == SUCCESS)){
call Leds.led2On();
} else {
locked = FALSE;
}
}
event void AMSend.sendDone(message_t* ptr, error_t success) {
locked = FALSE;
call Leds.led2Off();
return;
}
event void RadioControl.startDone(error_t err) {
#ifdef LOW_POWER_LISTENING
call LowPowerListening.setLocalSleepInterval(LPL_INTERVAL);
#endif
}
event void RadioControl.stopDone(error_t error){}
}
--- NEW FILE: TestFtspMsg.py ---
#
# This class is automatically generated by mig. DO NOT EDIT THIS FILE.
# This class implements a Python interface to the 'TestFtspMsg'
# message type.
#
import tinyos.message.Message
# The default size of this message type in bytes.
DEFAULT_MESSAGE_SIZE = 33
# The Active Message type associated with this message.
AM_TYPE = 137
class TestFtspMsg(tinyos.message.Message.Message):
# Create a new TestFtspMsg of size 33.
def __init__(self, data="", addr=None, gid=None, base_offset=0, data_length=33):
tinyos.message.Message.Message.__init__(self, data, addr, gid, base_offset, data_length)
self.amTypeSet(AM_TYPE)
# Get AM_TYPE
def get_amType(cls):
return AM_TYPE
get_amType = classmethod(get_amType)
#
# Return a String representation of this message. Includes the
# message type name and the non-indexed field values.
#
def __str__(self):
s = "Message <TestFtspMsg> \n"
try:
s += " [src_addr=0x%x]\n" % (self.get_src_addr())
except:
pass
try:
s += " [counter=0x%x]\n" % (self.get_counter())
except:
pass
try:
s += " [local_rx_timestamp=0x%x]\n" % (self.get_local_rx_timestamp())
except:
pass
try:
s += " [global_rx_timestamp=0x%x]\n" % (self.get_global_rx_timestamp())
except:
pass
try:
s += " [skew_times_1000000=0x%x]\n" % (self.get_skew_times_1000000())
except:
pass
try:
s += " [skew=0x%x]\n" % (self.get_skew())
except:
pass
try:
s += " [is_synced=0x%x]\n" % (self.get_is_synced())
except:
pass
try:
s += " [ftsp_root_addr=0x%x]\n" % (self.get_ftsp_root_addr())
except:
pass
try:
s += " [ftsp_seq=0x%x]\n" % (self.get_ftsp_seq())
except:
pass
try:
s += " [ftsp_table_entries=0x%x]\n" % (self.get_ftsp_table_entries())
except:
pass
try:
s += " [localAverage=0x%x]\n" % (self.get_localAverage())
except:
pass
try:
s += " [offsetAverage=0x%x]\n" % (self.get_offsetAverage())
except:
pass
return s
# Message-type-specific access methods appear below.
#
# Accessor methods for field: src_addr
# Field type: int
# Offset (bits): 0
# Size (bits): 16
#
#
# Return whether the field 'src_addr' is signed (False).
#
def isSigned_src_addr(self):
return False
#
# Return whether the field 'src_addr' is an array (False).
#
def isArray_src_addr(self):
return False
#
# Return the offset (in bytes) of the field 'src_addr'
#
def offset_src_addr(self):
return (0 / 8)
#
# Return the offset (in bits) of the field 'src_addr'
#
def offsetBits_src_addr(self):
return 0
#
# Return the value (as a int) of the field 'src_addr'
#
def get_src_addr(self):
return self.getUIntElement(self.offsetBits_src_addr(), 16, 1)
#
# Set the value of the field 'src_addr'
#
def set_src_addr(self, value):
self.setUIntElement(self.offsetBits_src_addr(), 16, value, 1)
#
# Return the size, in bytes, of the field 'src_addr'
#
def size_src_addr(self):
return (16 / 8)
#
# Return the size, in bits, of the field 'src_addr'
#
def sizeBits_src_addr(self):
return 16
#
# Accessor methods for field: counter
# Field type: int
# Offset (bits): 16
# Size (bits): 16
#
#
# Return whether the field 'counter' is signed (False).
#
def isSigned_counter(self):
return False
#
# Return whether the field 'counter' is an array (False).
#
def isArray_counter(self):
return False
#
# Return the offset (in bytes) of the field 'counter'
#
def offset_counter(self):
return (16 / 8)
#
# Return the offset (in bits) of the field 'counter'
#
def offsetBits_counter(self):
return 16
#
# Return the value (as a int) of the field 'counter'
#
def get_counter(self):
return self.getUIntElement(self.offsetBits_counter(), 16, 1)
#
# Set the value of the field 'counter'
#
def set_counter(self, value):
self.setUIntElement(self.offsetBits_counter(), 16, value, 1)
#
# Return the size, in bytes, of the field 'counter'
#
def size_counter(self):
return (16 / 8)
#
# Return the size, in bits, of the field 'counter'
#
def sizeBits_counter(self):
return 16
#
# Accessor methods for field: local_rx_timestamp
# Field type: long
# Offset (bits): 32
# Size (bits): 32
#
#
# Return whether the field 'local_rx_timestamp' is signed (False).
#
def isSigned_local_rx_timestamp(self):
return False
#
# Return whether the field 'local_rx_timestamp' is an array (False).
#
def isArray_local_rx_timestamp(self):
return False
#
# Return the offset (in bytes) of the field 'local_rx_timestamp'
#
def offset_local_rx_timestamp(self):
return (32 / 8)
#
# Return the offset (in bits) of the field 'local_rx_timestamp'
#
def offsetBits_local_rx_timestamp(self):
return 32
#
# Return the value (as a long) of the field 'local_rx_timestamp'
#
def get_local_rx_timestamp(self):
return self.getUIntElement(self.offsetBits_local_rx_timestamp(), 32, 1)
#
# Set the value of the field 'local_rx_timestamp'
#
def set_local_rx_timestamp(self, value):
self.setUIntElement(self.offsetBits_local_rx_timestamp(), 32, value, 1)
#
# Return the size, in bytes, of the field 'local_rx_timestamp'
#
def size_local_rx_timestamp(self):
return (32 / 8)
#
# Return the size, in bits, of the field 'local_rx_timestamp'
#
def sizeBits_local_rx_timestamp(self):
return 32
#
# Accessor methods for field: global_rx_timestamp
# Field type: long
# Offset (bits): 64
# Size (bits): 32
#
#
# Return whether the field 'global_rx_timestamp' is signed (False).
#
def isSigned_global_rx_timestamp(self):
return False
#
# Return whether the field 'global_rx_timestamp' is an array (False).
#
def isArray_global_rx_timestamp(self):
return False
#
# Return the offset (in bytes) of the field 'global_rx_timestamp'
#
def offset_global_rx_timestamp(self):
return (64 / 8)
#
# Return the offset (in bits) of the field 'global_rx_timestamp'
#
def offsetBits_global_rx_timestamp(self):
return 64
#
# Return the value (as a long) of the field 'global_rx_timestamp'
#
def get_global_rx_timestamp(self):
return self.getUIntElement(self.offsetBits_global_rx_timestamp(), 32, 1)
#
# Set the value of the field 'global_rx_timestamp'
#
def set_global_rx_timestamp(self, value):
self.setUIntElement(self.offsetBits_global_rx_timestamp(), 32, value, 1)
#
# Return the size, in bytes, of the field 'global_rx_timestamp'
#
def size_global_rx_timestamp(self):
return (32 / 8)
#
# Return the size, in bits, of the field 'global_rx_timestamp'
#
def sizeBits_global_rx_timestamp(self):
return 32
#
# Accessor methods for field: skew_times_1000000
# Field type: int
# Offset (bits): 96
# Size (bits): 32
#
#
# Return whether the field 'skew_times_1000000' is signed (False).
#
def isSigned_skew_times_1000000(self):
return False
#
# Return whether the field 'skew_times_1000000' is an array (False).
#
def isArray_skew_times_1000000(self):
return False
#
# Return the offset (in bytes) of the field 'skew_times_1000000'
#
def offset_skew_times_1000000(self):
return (96 / 8)
#
# Return the offset (in bits) of the field 'skew_times_1000000'
#
def offsetBits_skew_times_1000000(self):
return 96
#
# Return the value (as a int) of the field 'skew_times_1000000'
#
def get_skew_times_1000000(self):
return self.getSIntElement(self.offsetBits_skew_times_1000000(), 32, 1)
#
# Set the value of the field 'skew_times_1000000'
#
def set_skew_times_1000000(self, value):
self.setSIntElement(self.offsetBits_skew_times_1000000(), 32, value, 1)
#
# Return the size, in bytes, of the field 'skew_times_1000000'
#
def size_skew_times_1000000(self):
return (32 / 8)
#
# Return the size, in bits, of the field 'skew_times_1000000'
#
def sizeBits_skew_times_1000000(self):
return 32
#
# Accessor methods for field: skew
# Field type: int
# Offset (bits): 128
# Size (bits): 32
#
#
# Return whether the field 'skew' is signed (False).
#
def isSigned_skew(self):
return False
#
# Return whether the field 'skew' is an array (False).
#
def isArray_skew(self):
return False
#
# Return the offset (in bytes) of the field 'skew'
#
def offset_skew(self):
return (128 / 8)
#
# Return the offset (in bits) of the field 'skew'
#
def offsetBits_skew(self):
return 128
#
# Return the value (as a int) of the field 'skew'
#
def get_skew(self):
return self.getFloatElement(self.offsetBits_skew(), 32, 0)
#
# Set the value of the field 'skew'
#
def set_skew(self, value):
self.setSIntElement(self.offsetBits_skew(), 32, value, 1)
#
# Return the size, in bytes, of the field 'skew'
#
def size_skew(self):
return (32 / 8)
#
# Return the size, in bits, of the field 'skew'
#
def sizeBits_skew(self):
return 32
#
# Accessor methods for field: is_synced
# Field type: short
# Offset (bits): 160
# Size (bits): 8
#
#
# Return whether the field 'is_synced' is signed (False).
#
def isSigned_is_synced(self):
return False
#
# Return whether the field 'is_synced' is an array (False).
#
def isArray_is_synced(self):
return False
#
# Return the offset (in bytes) of the field 'is_synced'
#
def offset_is_synced(self):
return (160 / 8)
#
# Return the offset (in bits) of the field 'is_synced'
#
def offsetBits_is_synced(self):
return 160
#
# Return the value (as a short) of the field 'is_synced'
#
def get_is_synced(self):
return self.getUIntElement(self.offsetBits_is_synced(), 8, 1)
#
# Set the value of the field 'is_synced'
#
def set_is_synced(self, value):
self.setUIntElement(self.offsetBits_is_synced(), 8, value, 1)
#
# Return the size, in bytes, of the field 'is_synced'
#
def size_is_synced(self):
return (8 / 8)
#
# Return the size, in bits, of the field 'is_synced'
#
def sizeBits_is_synced(self):
return 8
#
# Accessor methods for field: ftsp_root_addr
# Field type: int
# Offset (bits): 168
# Size (bits): 16
#
#
# Return whether the field 'ftsp_root_addr' is signed (False).
#
def isSigned_ftsp_root_addr(self):
return False
#
# Return whether the field 'ftsp_root_addr' is an array (False).
#
def isArray_ftsp_root_addr(self):
return False
#
# Return the offset (in bytes) of the field 'ftsp_root_addr'
#
def offset_ftsp_root_addr(self):
return (168 / 8)
#
# Return the offset (in bits) of the field 'ftsp_root_addr'
#
def offsetBits_ftsp_root_addr(self):
return 168
#
# Return the value (as a int) of the field 'ftsp_root_addr'
#
def get_ftsp_root_addr(self):
return self.getUIntElement(self.offsetBits_ftsp_root_addr(), 16, 1)
#
# Set the value of the field 'ftsp_root_addr'
#
def set_ftsp_root_addr(self, value):
self.setUIntElement(self.offsetBits_ftsp_root_addr(), 16, value, 1)
#
# Return the size, in bytes, of the field 'ftsp_root_addr'
#
def size_ftsp_root_addr(self):
return (16 / 8)
#
# Return the size, in bits, of the field 'ftsp_root_addr'
#
def sizeBits_ftsp_root_addr(self):
return 16
#
# Accessor methods for field: ftsp_seq
# Field type: short
# Offset (bits): 184
# Size (bits): 8
#
#
# Return whether the field 'ftsp_seq' is signed (False).
#
def isSigned_ftsp_seq(self):
return False
#
# Return whether the field 'ftsp_seq' is an array (False).
#
def isArray_ftsp_seq(self):
return False
#
# Return the offset (in bytes) of the field 'ftsp_seq'
#
def offset_ftsp_seq(self):
return (184 / 8)
#
# Return the offset (in bits) of the field 'ftsp_seq'
#
def offsetBits_ftsp_seq(self):
return 184
#
# Return the value (as a short) of the field 'ftsp_seq'
#
def get_ftsp_seq(self):
return self.getUIntElement(self.offsetBits_ftsp_seq(), 8, 1)
#
# Set the value of the field 'ftsp_seq'
#
def set_ftsp_seq(self, value):
self.setUIntElement(self.offsetBits_ftsp_seq(), 8, value, 1)
#
# Return the size, in bytes, of the field 'ftsp_seq'
#
def size_ftsp_seq(self):
return (8 / 8)
#
# Return the size, in bits, of the field 'ftsp_seq'
#
def sizeBits_ftsp_seq(self):
return 8
#
# Accessor methods for field: ftsp_table_entries
# Field type: short
# Offset (bits): 192
# Size (bits): 8
#
#
# Return whether the field 'ftsp_table_entries' is signed (False).
#
def isSigned_ftsp_table_entries(self):
return False
#
# Return whether the field 'ftsp_table_entries' is an array (False).
#
def isArray_ftsp_table_entries(self):
return False
#
# Return the offset (in bytes) of the field 'ftsp_table_entries'
#
def offset_ftsp_table_entries(self):
return (192 / 8)
#
# Return the offset (in bits) of the field 'ftsp_table_entries'
#
def offsetBits_ftsp_table_entries(self):
return 192
#
# Return the value (as a short) of the field 'ftsp_table_entries'
#
def get_ftsp_table_entries(self):
return self.getUIntElement(self.offsetBits_ftsp_table_entries(), 8, 1)
#
# Set the value of the field 'ftsp_table_entries'
#
def set_ftsp_table_entries(self, value):
self.setUIntElement(self.offsetBits_ftsp_table_entries(), 8, value, 1)
#
# Return the size, in bytes, of the field 'ftsp_table_entries'
#
def size_ftsp_table_entries(self):
return (8 / 8)
#
# Return the size, in bits, of the field 'ftsp_table_entries'
#
def sizeBits_ftsp_table_entries(self):
return 8
#
# Accessor methods for field: localAverage
# Field type: long
# Offset (bits): 200
# Size (bits): 32
#
#
# Return whether the field 'localAverage' is signed (False).
#
def isSigned_localAverage(self):
return False
#
# Return whether the field 'localAverage' is an array (False).
#
def isArray_localAverage(self):
return False
#
# Return the offset (in bytes) of the field 'localAverage'
#
def offset_localAverage(self):
return (200 / 8)
#
# Return the offset (in bits) of the field 'localAverage'
#
def offsetBits_localAverage(self):
return 200
#
# Return the value (as a long) of the field 'localAverage'
#
def get_localAverage(self):
return self.getUIntElement(self.offsetBits_localAverage(), 32, 1)
#
# Set the value of the field 'localAverage'
#
def set_localAverage(self, value):
self.setUIntElement(self.offsetBits_localAverage(), 32, value, 1)
#
# Return the size, in bytes, of the field 'localAverage'
#
def size_localAverage(self):
return (32 / 8)
#
# Return the size, in bits, of the field 'localAverage'
#
def sizeBits_localAverage(self):
return 32
#
# Accessor methods for field: offsetAverage
# Field type: int
# Offset (bits): 232
# Size (bits): 32
#
#
# Return whether the field 'offsetAverage' is signed (False).
#
def isSigned_offsetAverage(self):
return False
#
# Return whether the field 'offsetAverage' is an array (False).
#
def isArray_offsetAverage(self):
return False
#
# Return the offset (in bytes) of the field 'offsetAverage'
#
def offset_offsetAverage(self):
return (232 / 8)
#
# Return the offset (in bits) of the field 'offsetAverage'
#
def offsetBits_offsetAverage(self):
return 232
#
# Return the value (as a int) of the field 'offsetAverage'
#
def get_offsetAverage(self):
return self.getSIntElement(self.offsetBits_offsetAverage(), 32, 1)
#
# Set the value of the field 'offsetAverage'
#
def set_offsetAverage(self, value):
self.setSIntElement(self.offsetBits_offsetAverage(), 32, value, 1)
#
# Return the size, in bytes, of the field 'offsetAverage'
#
def size_offsetAverage(self):
return (32 / 8)
#
# Return the size, in bits, of the field 'offsetAverage'
#
def sizeBits_offsetAverage(self):
return 32
- Previous message: [Tinyos-2-commits] CVS: tinyos-2.x/apps/tests/TestFtsp/Ftsp FtspDataAnalyzer.m, NONE, 1.1 FtspDataLogger.java, NONE, 1.1 FtspDataLogger.py, NONE, 1.1 Makefile, NONE, 1.1 README.MATLAB.txt, NONE, 1.1 README.txt, NONE, 1.1 TestFtsp.h, NONE, 1.1 TestFtspAppC.nc, NONE, 1.1 TestFtspC.nc, NONE, 1.1
- Next message: [Tinyos-2-commits] CVS: tinyos-2.x/apps/tests/TestFtsp/FtspLplBeaconer Makefile, NONE, 1.1 RadioCountToLeds.h, NONE, 1.1 RadioCountToLedsAppC.nc, NONE, 1.1 RadioCountToLedsC.nc, NONE, 1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Tinyos-2-commits
mailing list