Sean: You'll need to grab the _whole_ tinyos-2.x tree from google code. Updating only _some_ directories will not work. Once you have the latest tree, follow the instructions in the README file.
Janos On Tue, May 24, 2011 at 11:31 PM, Xiaowei <[email protected]> wrote: > Hi Janos, > > To test your apps/tests/rfxlink/TestPacketTimeSync, I downloaded the whole > folder TestPacketTimeSync to my directory /opt/tinyos-2.1.0/apps, and > cc2420x to /opt/tinyos-2.1.0/tos/chips. When I compile TestPacketTimeSync, > there's always error like "no match", "cannot find***". Is it supposed to be > used like this, or I'm doing it in a wrong way? > > In fact, what I need to do is to get microsecond timestamp for packet > transmission and reception, I'm trying to do in in the following way: > download cc2420x from google code, put it under > /opt/tinyos-2.1.0/tos/chips, > add "App.PacketTimeStamp->CC2420XActiveMessageC" to my configuration, > add "uses interface PacketTimeStamp<TRadio, uint32_t> " to my module, > then call PacketTimeStamp.timestamp() to get microsecond timestamp value. > Any file else I have to bring in or modify? > > Thanks a lot.. > > Sean > > By the way, I'm using tinyos 2.1.0, is there any easy and feasible way to do > microsecond timestamping in other versions? > > Sean > > On Tue, May 24, 2011 at 3:28 PM, Xiaowei <[email protected]> wrote: >> >> Hi Janos, >> >> I tried to use CC2420TransmitC.ByteIndicator and >> C2420ReceiveC.PacketIndicator to determine the start of transmission and >> reception of a packet, didn't work. >> >> Then I write the following to my sender telosb mote, >> async event void CaptureSFD.captured( uint16_t time ){ >> sendtime = call Counter.get(); >> } >> >> will Counter.get() record the time when packets actually start being >> transmitted? >> I tried this out, but the result is not so good. I'm not sure whether it's >> because this doesn't work as I expected at all or it's some other reason. >> >> Thank you for your reply! >> >> Sean >> >> On Tue, May 24, 2011 at 11:15 AM, Janos Sallai >> <[email protected]> wrote: >>> >>> Sean: >>> >>> Look at how the wiring is done in the test app in >>> apps/tests/rfxlink/TestPacketTimeSync. TimeSyncMessageC and >>> ActiveMessageC provide multiple PacketTimeStamp interfaces, >>> PacketTimeStampRadio (TMicro precision on the telos/micaz) and >>> PacketTimeStampMilli (TMilli precision). You'll need to wire the >>> former. >>> >>> Janos >>> >>> On Tue, May 24, 2011 at 12:37 AM, Xiaowei <[email protected]> wrote: >>> > Dear Janos, >>> > >>> > Thank you very much for your reply! By the way, if you remember, you >>> > actually gave me the same clue several weeks ago! It's so frustrating >>> > that I >>> > still haven't figured it out. >>> > >>> > I looked into TestPacketTimeSync, you are using >>> > PacketTimeStamp.timestamp to >>> > get the time when packets are sent and received, is that right? >>> > So I tried to use interface PacketTimeStamp in my app just like you >>> > did in >>> > TestPacketTimeSync by: >>> > >>> > adding "App.PacketTimeStamp->ActiveMessageC;" in my configuration file, >>> > adding "uses interface PacketTimeStamp<TMicro, uint16_t>;" in module >>> > file, >>> > and call the timestamp command like this >>> > if (call PacketTimeStamp.isValid(msg)==TRUE){ >>> > sendtime = call PacketTimeStamp.timestamp(msg); >>> > When I compile the code, it says "no match" for the wiring >>> > App.PacketTimeStamp->ActiveMessageC. >>> > In your Packet timestamping TEP written with Miklos, you mentioned it >>> > does >>> > not prescribe how packet timestamping should be implemented: it only >>> > describes the interfaces and the required functionality. Feel like I'm >>> > not >>> > using PacketTimeStamp interface in the correct way. >>> > >>> > Then I tried to use your CC2420XActiveMessageC by downloading the >>> > trunk/cc2420x folder, put it under my tos/chips folder, and in the >>> > configuration wire App.PacketTimeStamp->CC2420XActiveMessageC. Got the >>> > compile error "cannot find `CC2420XActiveMessageC'". >>> > >>> > I'm using Counter<TMicro, uint16_t> to record time of microsecond >>> > presicion, >>> > and disabled csma by setting the default value of "ccaOn = TRUE" to >>> > "ccaOn >>> > = FALSE" in tinyos-2.1.0/tos/chips/cc2420/csma/CC2420CsmaP.nc. The rest >>> > I'm >>> > trying to do is to record the actual time when packets are >>> > transmitted(when >>> > the first bit hits the air, or at least as close to the moment as >>> > possible) >>> > and received. Can this be achieved in tinyos 2.1.0 with telosb mote in >>> > an >>> > easy, light-weighted way? >>> > >>> > Really appreciate your time of looking into this! >>> > >>> > Sean >>> > >>> > On Sun, May 22, 2011 at 12:11 AM, Janos Sallai >>> > <[email protected]> >>> > wrote: >>> >> >>> >> Sean: >>> >> >>> >> The default cc2420 radio stack doesn't support TMicro timestamping. >>> >> There's an alternative implementation, however, which does. Take a >>> >> look at apps/tests/rfxlink/TestPacketTimeSync. The readme file >>> >> explains how to compile for the telos. You'll need the latest sources >>> >> from google code. >>> >> >>> >> For your convenience, here's a direct link to the readme file. >>> >> >>> >> >>> >> http://code.google.com/p/tinyos-main/source/browse/trunk/apps/tests/rfxlink/TestPacketTimeSync/README.txt?spec=svn5544&r=5544 >>> >> >>> >> Janos >>> >> >>> >> On Sat, May 21, 2011 at 7:14 PM, Xiaowei <[email protected]> >>> >> wrote: >>> >> > Hi all, >>> >> > >>> >> > I'm doing some experiment to record the exact time when packets >>> >> > start >>> >> > transmission at the sending mote and being received at the receiving >>> >> > mote >>> >> > with telosb motes in TinyOS 2.1.0. >>> >> > These are the components and interface I'm using: >>> >> > components Msp430CounterMicroC; >>> >> > App.Counter -> Msp430CounterMicroC >>> >> > uses interface Counter<TMicro, uint16_t>; >>> >> > >>> >> > To get rid of random delay, I also disabled csma by setting: >>> >> > the default value of "ccaOn = TRUE" to "ccaOn = FALSE" in >>> >> > tinyos-2.1.0/tos/chips/cc2420/csma/CC2420CsmaP.nc >>> >> > >>> >> > At the sending mote, I called Counter.get() in sendDone event >>> >> > handler, >>> >> > and >>> >> > at the receiving mote I called Counter.get() in receive event >>> >> > handler. >>> >> > It >>> >> > seems that the time recorded is not the exact time when the packet >>> >> > is >>> >> > sent >>> >> > over the air. >>> >> > >>> >> > So I tried to use interface PacketTimeStamp<TMicro, uint16_t>, but >>> >> > got >>> >> > the >>> >> > "no match" error for the line App.PacketTimeStamp->ActiveMessageC >>> >> > when >>> >> > compiling the code, couldn't figure out why. Tried "include >>> >> > message.h in >>> >> > module file", didn't work. >>> >> > >>> >> > There's also another interface RadioTimeStamping that provides event >>> >> > transmittedSFD and receivedSFD, which satisfies my requirement. But >>> >> > it's >>> >> > said that RadioTimeStamping is not supported in TinyOS 2.1. I tried >>> >> > to >>> >> > use >>> >> > it by wire 'App.RadioTimeStamping->CC2420TransmitC.TimeStamp', got >>> >> > compile >>> >> > error "cannot find TimeStamp". >>> >> > >>> >> > I have been stuck in this problem for a while, anyone knows how to >>> >> > do >>> >> > this >>> >> > (Basically, get the time when packets actually being transmitted to >>> >> > the >>> >> > air >>> >> > and being received)? >>> >> > >>> >> > Any help is greatly appreciated. >>> >> > >>> >> > Sean >>> >> > >>> >> > >>> >> > >>> >> > _______________________________________________ >>> >> > Tinyos-help mailing list >>> >> > [email protected] >>> >> > >>> >> > https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help >>> >> > >>> > >>> > >> > > _______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
