My suggestion was to change the T1 message struct to match
the new-improved-version and then ignore the additions, so
no one needs to know what version parented the message. This
is, of course, made from a position of complete ignorance...
but it might work for some applications anyway.

MS

Eric Decker wrote:
> The big problem is I don't see a way for a receiver to determine if a 
> packet was
> sent from a T1 stack or a T2 stack.
> 
> eric
> 
> 2008/9/8 Michael Schippling <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
> 
> 
>     Wow! That new data obsfucation technique really works!
> 
>     So it looks like the main difference is in cc2420_header_t
>     where, compared to the T1 micaZ AM.h, these:
>      nxle_uint16_t src;
>      nxle_uint8_t network;
>     have been inserted before the AM message type. There is
>     a 'permanent' message serial number added right after the
>     header info, and  I think the max length is 1 byte shorter.
>     I also 'think' I remember that the T1 fields are little-end,
>     which is what the "nxle_" would seem to indicate...whereas
>     new improved nx_int is big-endian, just to expand the data
>     obfuscation techniques all the way into the bit realm.
> 
>     Someone who was motivated to talk to T1 could probably
>     translate all those nested structs into a congruent AM.h
>     TOS_Msg definition and just ignore or default all the new
>     fields. But it would mean re-compiling all the legacy apps.
> 
>     onward into the future
>     MS
> 
> 
>     Eric Decker wrote:
>      > All paths are from the top of a current T2 source tree:
>      >
>      > tos/types/message.h contains the structure that pulls all the pieces
>      > together.
>      >
>      > # 19 "/Users/cire/mm_t2/t2_cur/tinyos-2.x/tos/types/message.h"
>      > typedef nx_struct message_t {
>      >   nx_uint8_t header[sizeof(message_header_t )];
>      >   nx_uint8_t data[28];
>      >   nx_uint8_t footer[sizeof(message_footer_t )];
>      >   nx_uint8_t metadata[sizeof(message_metadata_t )];
>      > } __attribute__((packed)) message_t;
>      >
>      >
>      > The header pieces are a union defined in platform_message.h.  I
>     have a
>      > platform
>      > called mm3 which is almost identical to the telosb (telosa is what
>      > contains the
>      > platform_message.h file).
>      >
>      > # 48 "/Users/cire/mm_t2/t2_mm3/tos/platforms/mm3/platform_message.h"
>      > #line 45
>      > typedef union message_header {
>      >   cc2420_header_t cc2420;
>      >   serial_header_t serial;
>      > } message_header_t;
>      >
>      > typedef union TOSRadioFooter {
>      >   cc2420_footer_t cc2420;
>      > } message_footer_t;
>      >
>      > #line 54
>      > typedef union TOSRadioMetadata {
>      >   cc2420_metadata_t cc2420;
>      >   serial_metadata_t serial;
>      > } message_metadata_t;
>      >
>      >
>      >
>      >
>      > For the radio part we see:
>      >
>      > # 39 "/Users/cire/mm_t2/t2_cur/tinyos-2.x/tos/chips/cc2420/CC2420.h"
>      > typedef uint8_t cc2420_status_t;
>      > #line 66
>      > #line 49
>      > typedef nx_struct cc2420_header_t {
>      >   nxle_uint8_t length;
>      >   nxle_uint16_t fcf;
>      >   nxle_uint8_t dsn;
>      >   nxle_uint16_t destpan;
>      >   nxle_uint16_t dest;
>      >   nxle_uint16_t src;
>      >   nxle_uint8_t network;
>      >   nxle_uint8_t type;
>      > } __attribute__((packed))
>      >
>      > cc2420_header_t;
>      >
>      >
>      > #line 71
>      > typedef nx_struct cc2420_footer_t {
>      > } __attribute__((packed)) cc2420_footer_t;
>      > #line 97
>      > #line 81
>      > typedef nx_struct cc2420_metadata_t {
>      >   nx_uint8_t rssi;
>      >   nx_uint8_t lqi;
>      >   nx_uint8_t tx_power;
>      >   nx_bool crc;
>      >   nx_bool ack;
>      >   nx_bool timesync;
>      >   nx_uint32_t timestamp;
>      >   nx_uint16_t rxInterval;
>      > } __attribute__((packed))
>      >
>      > For the serial part we see:
>      >
>      > # 72 "/Users/cire/mm_t2/t2_cur/tinyos-2.x/tos/lib/serial/Serial.h"
>      > #line 112
>      > typedef nx_struct serial_header {
>      >   nx_am_addr_t dest;
>      >   nx_am_addr_t src;
>      >   nx_uint8_t length;
>      >   nx_am_group_t group;
>      >   nx_am_id_t type;
>      > } __attribute__((packed)) serial_header_t;
>      >
>      >
>      > #line 120
>      > typedef nx_struct serial_packet {
>      >   serial_header_t header;
>      >   nx_uint8_t data[];
>      > } __attribute__((packed)) serial_packet_t;
>      >
>      >
>      > #line 125
>      > typedef nx_struct serial_metadata {
>      >   nx_uint8_t ack;
>      > } __attribute__((packed)) serial_metadata_t;
>      >
>      >
>      > 2008/9/7 Michael Schippling <[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>>>
>      >
>      >     OK I found TEP 111
>     http://www.tinyos.net/tinyos-2.x/doc/html/tep111.html
>      >     which does a nice job of explaining why we "need" so many levels
>      >     of data obfuscation, but doesn't actually show what the final
>      >     structs are and what's the difference. I presume the 2420 headers
>      >     must be identical because they are part of 802.11.14 (I
>     think...).
>      >     It's hard to imagine that the low level radio code would need
>     (much)
>      >     massaging in order to make T1&2 compatible for a one-off system.
>      >
>      >     Since I'm not now nor ever have been a T2'er, could someone post
>      >     or point to the two structs for me?
>      >
>      >     thanks
>      >     MS
>      >
>      >     Eric Decker wrote:
>      >      >
>      >      >
>      >      > 2008/9/7 Renee Azhen <[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>
>      >     <mailto:[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>>
>      >      > <mailto:[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>>>>
>      >      >
>      >      >     yep, Eric, I want to communicate by radio.
>      >      >     In T2, the message format_t is named msaage_t, and in
>     T1, it is
>      >      >     named TOS_msg, and it is almost different.  So each
>     nodes in
>      >      >     different T# can't analyze other type radio message as
>     expected.
>      >      >
>      >      >
>      >      > Not sure what you mean by "almost different".  Slightly
>     different?
>      >      >
>      >      >
>      >      >     Can we revise the code in the mac-lay  of T2 to
>     receive and
>      >     analysze
>      >      >     radio message send by T1 node?
>      >      >
>      >      >
>      >      > It is possible.   It would have to be done at a fairly low
>     level
>      >     in the
>      >      > stack.  My gut feeling is you'd be biting
>      >      > off a lot.  Asking for lots of problems.
>      >      >
>      >      > What problem are you trying to solve?  In other words what
>     are you
>      >      > trying to do with the node that
>      >      > is communicating using the T1 stack?
>      >      >
>      >      >
>      >      >     Can we move on by some other method to resolve this
>     problem, then
>      >      >     let them communicate between different platform. Or
>      >     definitely no way?
>      >      >
>      >      >
>      >      > A different approach would be to build a T1-T2 gateway.  A
>     node
>      >     that has
>      >      > two radios or possibly one radio
>      >      > attached to two stacks.  But this too seems like more trouble
>      >     then it is
>      >      > worth.
>      >      >
>      >      >
>      >      >
>      >      >     thanks
>      >      >     zhijian
>      >      >     */Eric Decker <[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>>
>      >     <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>     <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>>/* 写道:
>      >      >
>      >      >         Communicate in what way?  Using the radio?
>      >      >
>      >      >         It is my understanding that there is a small
>     difference
>      >     between
>      >      >         the packet format in
>      >      >         T2 vs. T1.  I would recommend looking at message_t
>     for the
>      >      >         communications medium
>      >      >         used for T2.  I don't remember what the packet
>     structure is
>      >      >         called in T1 but that is
>      >      >         what you want to compare against.
>      >      >
>      >      >         That is where I would start.
>      >      >
>      >      >         eric
>      >      >
>      >      >
>      >      >         2008/9/6 Renee Azhen <[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>
>      >     <mailto:[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>>
>      >      >         <mailto:[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>
>      >     <mailto:[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>>>>
>      >      >
>      >      >             hi, all,
>      >      >             Most of my nodes are programed with tinyos
>     2.0, but
>      >     there is
>      >      >             a message sender is programed with tinyos 1.x.
>      >      >
>      >      >             It is possble to let the nodes with tinyos 2.0
>      >     receive the
>      >      >             msg sent by tinyos 1.x??
>      >      >             thanks
>      >      >             zhijian
>      >      >
>      >    
>     ------------------------------------------------------------------------
>      >      >             雅虎邮箱,您的终生邮箱!
>     <http://cn.mail.yahoo.com/>
>      >      >             _______________________________________________
>      >      >             Tinyos-help mailing list
>      >      >             [email protected]
>     <mailto:[email protected]>
>      >     <mailto:[email protected]
>     <mailto:[email protected]>>
>      >      >             <mailto:[email protected]
>     <mailto:[email protected]>
>      >     <mailto:[email protected]
>     <mailto:[email protected]>>>
>      >      >
>      >    
>     https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>      >      >
>      >      >
>      >      >
>      >      >
>      >      >         --
>      >      >         Eric B. Decker
>      >      >         Senior (over 50 :-) Researcher
>      >      >         Autonomous Systems Lab
>      >      >         Jack Baskin School of Engineering
>      >      >         UCSC
>      >      >
>      >      >
>      >      >
>      >    
>     ------------------------------------------------------------------------
>      >      >     雅虎邮箱,您的终生邮箱! <http://cn.mail.yahoo.com/>
>      >      >
>      >      >
>      >      >
>      >      >
>      >      > --
>      >      > Eric B. Decker
>      >      > Senior (over 50 :-) Researcher
>      >      > Autonomous Systems Lab
>      >      > Jack Baskin School of Engineering
>      >      > UCSC
>      >      >
>      >      >
>      >      >
>      >    
>     ------------------------------------------------------------------------
>      >      >
>      >      > _______________________________________________
>      >      > Tinyos-help mailing list
>      >      > [email protected]
>     <mailto:[email protected]>
>      >     <mailto:[email protected]
>     <mailto:[email protected]>>
>      >      >
>      >    
>     https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>      >
>      >
>      >
>      >
>      > --
>      > Eric B. Decker
>      > Senior (over 50 :-) Researcher
>      > Autonomous Systems Lab
>      > Jack Baskin School of Engineering
>      > UCSC
>      >
> 
> 
> 
> 
> -- 
> Eric B. Decker
> Senior (over 50 :-) Researcher
> Autonomous Systems Lab
> Jack Baskin School of Engineering
> UCSC
> 
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to