great! i'm sorry, i did not know about the PacketTimeStamp interface which is very useful in this.
Thank you very much for the explanation. ranal fernando > From: [email protected] > Date: Tue, 1 Feb 2011 17:10:33 -0600 > Subject: Re: [Tinyos-help] how to measure interval btw Send.sendDone() and > Receive.receive()? > To: [email protected] > CC: [email protected]; [email protected] > > You can do that using the LocalTime and the PacketTimestamp > interfaces. In the sendDone event, you can figure out the time delay > between transmitting the SFD byte and invoking the sendDone event as > follows: > > event void AMSend.sendDone(message_t* bufPtr, error_t error) { > uint32_t txSfdTime; > uint32_t sendDoneEventTime; > > sendDoneEventTime = call LocalTime.get(); > > if(call PacketTimeStamp.isValid(bufPtr)) { > txSfdTime = call PacketTimeStamp.timestamp(bufPtr); > dt = sendDoneEventTime - txSfdTime; > > // use dt here however you wish (printf, diagmsg, etc.) > > } > } > > > Similarly, on the receiver side, you can figure out the time delay > between receiving the SFD byte and the invocation of the receive > event. > > event message_t* Receive.receive(message_t* bufPtr, > void* payload, uint8_t len) { > uint32_t rxSfdTime; > uint32_t receiveEventTime; > > receiveEventTime = call LocalTime.get(); > > if(call PacketTimeStamp.isValid(bufPtr)) { > rxSfdTime = call PacketTimeStamp.timestamp(bufPtr); > dt = receiveEventTime - rxSfdTime; > > // use dt here however you wish (printf, diagmsg, etc.) > > } > > return bufPtr; > } > > The sum of the two delays (the one on the transmitter's side and the > one on the receiver) will give you the time between the sendDone and > the receive events. > > Janos > > On Tue, Feb 1, 2011 at 4:24 PM, ranal fernando <[email protected]> wrote: > > my belief is that it is hard to sync time between mote to capture a very > > little time between the Send.sendDone() and Receive.receive(). > > > > you can get the Send.sendDone() separately (without trying to send it using > > the same packet) & calculate (get the Receive.receive() time separately). > > > > i'm really not sure whether this will give the exact answer. (because at the > > destination, packet processing also will take some time before > > signalingReceive.receive() ) > > > > > > ranal fernando > > > > ________________________________ > > Date: Sat, 29 Jan 2011 22:28:26 -0500 > > From: [email protected] > > To: [email protected] > > Subject: [Tinyos-help] how to measure interval btw Send.sendDone() and > > Receive.receive()? > > > > Hi everyone, > > Assuming sender and receiver are synchronous, I want to measure the time > > interval between two events: namely, Send.sendDone() event of a packet at > > the sender and Receive.receive() event of the packet at the receiver. > > Initially I decided to put timestamp of Send.sendDone() event in the packet > > and timestamp Receive.receive() event at the receiver, the interval could be > > obtained by the difference of the two timestamps. However, packet payload is > > loaded prior to calling Send.send() thus before Send.sendDone(), it is > > impossible to timestamp Send.sendDone() event and place the timestamp in the > > packet. Can anyone give me some suggestion on how this may be achieved? > > Thanks very much. > > > > -- > > -Xiaohui Liu > > > > _______________________________________________ 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 > >
_______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
