Re: [Tinyos-help] Need help on receiving multiple messages in tinyos-2.x

2007-06-26 Thread Steve McKown
On Monday 25 June 2007 12:05:37 am Murtuza wrote:
> Hi Steve
>
> Thanks for ur reply...and i apologize for replying late
>
> > Two packets coming from different kinds of motes running different
> > applications can be distinguished using AM types. Am I right ?
>
> [This was your reply]
> I'm not sure I understand this question.  Can you share what are you trying
> to
> accomplish?  The AM type field allows one to distinguish the contents of
> the active message payload only.  Any correlations between "kind of mote"
> or application and AM type value sets is up to the programmer.
>
> Actually what I mean is suppose there are two mica2 motes running distinct
> applications on eachother. Then how can I distinguish between these
> messages at the receiver. Can I have two Receive.receive events in my
> receiver application. Or should I use the same Receive.recvieve event and
> then separate out (or distinguish) between the messages by looking into the
> packet.

Using the type field to get two different Receive events will work great here.  
The advantage of this approach is that all active messages have a type field, 
whereas your application-specific messages can contain anything.  So working 
off the type field makes the dispatching logic in your gateway/receiver more 
application independent.

>
> Can i do sth like this..
>
> In mote 1 configuration
> Mote_1.AMSend -> AMSenderC.AMSend[AM_Type_1];
>
> In mote2 configuraton
> Mote_2.AMSend -> AMSenderC.AMSend[AM_Type_2];
>
>
> IN THE RECEIVER MOTE
>
> Now I dont understand how I can have separate ActiveMessageC.Receive
> events. Is this permitted
>
> uses interface Receive as Mote_1_Receive;
> uses interface Receive as Mote_2_Receive;
>
> Rx_Mote.Mote_1_Receive -> ActiveMessageC.Receive[AM_Type_1];
> Rx_Mote.Mote_2_Receive -> ActiveMessageC.Receive[AM_Type_2];

If you are using TinyOS-2.x, you can use the AMSenderC() and AMRecevierC() 
generic components:

components new AMServerC(AM_Type_1) as Send1;
SendApp.AMSend -> Send1;

...

components new AMReceiverC(AM_Type_1) as Receive1,
new AMReceiverC(AM_Type_2) as Receive2;
RecvApp.Receive1 -> Receive1;
RecvApp.Receive2 -> Receive2;


All the best,
Steve

>
> My aim is to have a receiving mote receive data from two motes running
> different applications. Without parsing through the received message can I
> separate out these packets { The ones received from different motes }. I
> basically want to separate them during Receive events.
>
> I am not sure whether i have a valid question or not. I would really
> appreciate your help and others' as well.
>
> Thanking You
> MMA
>
>
>
>
> I want to elaborate on these sentences of mine in the previous mail
>
> On 14/06/07, Steve McKown <[EMAIL PROTECTED] > wrote:
> > On Friday 08 June 2007 13:58, Murtuza wrote:
> > > Hello friends,
> > >
> > > I have 2 different questions.
> > >
> > > 1. I wanted to know how can I receive messages of different payload
> >
> > format
> >
> > > i.e the payload are of different sizes and structures from different
> >
> > motes
> >
> > > to a common mote. I have seen the code for BaseStation. It does a
> >
> > similar
> >
> > > thing. But the doubt which bogs me is the AM type of a message. Can
> >
> > anyone
> >
> > > tell me the meaning of AM type. I understand that different message
> >
> > types
> >
> > > have different AM types. And we can differentiate different message
> >
> > based
> >
> > > on this.
> >
> > Yes.  Every type of message can have its own AM type value.  So a
> > receiver receiving a message with type==1 can treat it differently than
> > for a message
> > with type==2.
> >
> > > Two packets coming from different kinds of motes running different
> > > applications can be distinguished using AM types. Am I right ?
> >
> > I'm not sure I understand this question.  Can you share what are you
> > trying to
> > accomplish?  The AM type field allows one to distinguish the contents of
> > the
> > active message payload only.  Any correlations between "kind of mote" or
> > application and AM type value sets is up to the programmer.
> >
> > > If I am [right] then
> > > how can we make sure that the AM types are always distinct.
> >
> > If you want unique AM type values, you'll have to manage this yourself.
> > One option would be to maintain a header containing the list of all
> > message
> > types for all your applications, to ensure they are unique.  Each time
> > you
> >
> > need a new app msg, add one to the list and give it the next number in
> > sequence.  Include this with all apps as the sole source of am type
> > definitions.
> >
> > #define AM_TYPE_APP1_MSG1   0x20
> > #define AM_TYPE_APP1_MSG2   0x21
> > #define AM_TYPE_APP2_MSG1   0x22
> > #define AM_TYPE_APP2_MSG2   0x23
> > #define AM_TYPE_APP2_MSG3   0x24
> >
> > > 2. When i receive messages from motes to the base station I get a
> >
> > messages
> >
> > > that do not match the tinyos message_t str

Re: [Tinyos-help] Need help on receiving multiple messages in tinyos-2.x

2007-06-25 Thread Bernardo Avila Pires

   Yes, you can.
___
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help


Re: [Tinyos-help] Need help on receiving multiple messages in tinyos-2.x

2007-06-25 Thread Bernardo Avila Pires

2007/6/25, Murtuza <[EMAIL PROTECTED]>:

Hi Steve

 Thanks for ur reply...and i apologize for replying late

 I want to elaborate on these sentences of mine in the previous mail

 > Two packets coming from different kinds of motes running different
 > applications can be distinguished using AM types. Am I right ?

 [This was your reply]
 I'm not sure I understand this question.  Can you share what are you trying
to
 accomplish?  The AM type field allows one to distinguish the contents of
the
 active message payload only.  Any correlations between "kind of mote" or
 application and AM type value sets is up to the programmer.

 Actually what I mean is suppose there are two mica2 motes running distinct
applications on eachother. Then how can I distinguish between these messages
at the receiver. Can I have two Receive.receive events in my receiver
application. Or should I use the same Receive.recvieve event and then
separate out (or distinguish) between the messages by looking into the
packet.

 Can i do sth like this..

 In mote 1 configuration
 Mote_1.AMSend -> AMSenderC.AMSend[AM_Type_1];

 In mote2 configuraton
 Mote_2.AMSend -> AMSenderC.AMSend[AM_Type_2];


 IN THE RECEIVER MOTE

 Now I dont understand how I can have separate ActiveMessageC.Receive
events. Is this permitted

 uses interface Receive as Mote_1_Receive;
 uses interface Receive as Mote_2_Receive;

 Rx_Mote.Mote_1_Receive -> ActiveMessageC.Receive[AM_Type_1];
 Rx_Mote.Mote_2_Receive -> ActiveMessageC.Receive[AM_Type_2];

 My aim is to have a receiving mote receive data from two motes running
different applications. Without parsing through the received message can I
separate out these packets { The ones received from different motes }. I
basically want to separate them during Receive events.

 I am not sure whether i have a valid question or not. I would really
appreciate your help and others' as well.



 Yes you can. Try it out and you'll se it works fine...



 Thanking You
 MMA






On 14/06/07, Steve McKown < [EMAIL PROTECTED] > wrote:
> On Friday 08 June 2007 13:58, Murtuza wrote:
> > Hello friends,
> >
> > I have 2 different questions.
> >
> > 1. I wanted to know how can I receive messages of different payload
format
> > i.e the payload are of different sizes and structures from different
motes
> > to a common mote. I have seen the code for BaseStation. It does a
similar
> > thing. But the doubt which bogs me is the AM type of a message. Can
anyone
> > tell me the meaning of AM type. I understand that different message
types
> > have different AM types. And we can differentiate different message
based
> > on this.
>
> Yes.  Every type of message can have its own AM type value.  So a receiver
> receiving a message with type==1 can treat it differently than for a
message
> with type==2.
>
> > Two packets coming from different kinds of motes running different
> > applications can be distinguished using AM types. Am I right ?
>
> I'm not sure I understand this question.  Can you share what are you
trying to
> accomplish?  The AM type field allows one to distinguish the contents of
the
> active message payload only.  Any correlations between "kind of mote" or
> application and AM type value sets is up to the programmer.
>
> > If I am [right] then
> > how can we make sure that the AM types are always distinct.
>
> If you want unique AM type values, you'll have to manage this yourself.
> One option would be to maintain a header containing the list of all
message
> types for all your applications, to ensure they are unique.  Each time you
> need a new app msg, add one to the list and give it the next number in
> sequence.  Include this with all apps as the sole source of am type
> definitions.
>
> #define AM_TYPE_APP1_MSG1   0x20
> #define AM_TYPE_APP1_MSG2   0x21
> #define AM_TYPE_APP2_MSG1   0x22
> #define AM_TYPE_APP2_MSG2   0x23
> #define AM_TYPE_APP2_MSG3   0x24
>
> > 2. When i receive messages from motes to the base station I get a
messages
> > that do not match the tinyos message_t structure. For example I ran a
> > simple test in which the source mote sends its TOS_NODE_ID and a serial
> > number of the message over the radio.  The TOS_NODE_ID  of this node was
3.
> > The structure of the message payload was as shown below.
> >
> > typedef nx_struct test{
> > nx_am_addr_t nodeid;
> > nx_uint16_t num;
> > }test;
> >
> > I got this as the output displayed on my computer.
> > 00 FF FF 00 03 04 22 06 00 03 00 01
> > 00 FF FF 00 03 04 22 06 00 03 00 02
> > 00 FF FF 00 03 04 22 06 00 03 00 03
>
> This looks good.  I presume you have a java or C serial forwarder running
> against the serial port to which the base station mote is attached, then
the
> output above is from a program attaching to the local port opened by the
> serial forwarder.  Here's how the first packet's values break down:
>
> The first byte is the serial packet format dispatch byte.  A
> val

[Tinyos-help] Need help on receiving multiple messages in tinyos-2.x

2007-06-24 Thread Murtuza

Hi Steve

Thanks for ur reply...and i apologize for replying late

I want to elaborate on these sentences of mine in the previous mail


Two packets coming from different kinds of motes running different
applications can be distinguished using AM types. Am I right ?


[This was your reply]
I'm not sure I understand this question.  Can you share what are you trying
to
accomplish?  The AM type field allows one to distinguish the contents of the
active message payload only.  Any correlations between "kind of mote" or
application and AM type value sets is up to the programmer.

Actually what I mean is suppose there are two mica2 motes running distinct
applications on eachother. Then how can I distinguish between these messages
at the receiver. Can I have two Receive.receive events in my receiver
application. Or should I use the same Receive.recvieve event and then
separate out (or distinguish) between the messages by looking into the
packet.

Can i do sth like this..

In mote 1 configuration
Mote_1.AMSend -> AMSenderC.AMSend[AM_Type_1];

In mote2 configuraton
Mote_2.AMSend -> AMSenderC.AMSend[AM_Type_2];


IN THE RECEIVER MOTE

Now I dont understand how I can have separate ActiveMessageC.Receive events.
Is this permitted

uses interface Receive as Mote_1_Receive;
uses interface Receive as Mote_2_Receive;

Rx_Mote.Mote_1_Receive -> ActiveMessageC.Receive[AM_Type_1];
Rx_Mote.Mote_2_Receive -> ActiveMessageC.Receive[AM_Type_2];

My aim is to have a receiving mote receive data from two motes running
different applications. Without parsing through the received message can I
separate out these packets { The ones received from different motes }. I
basically want to separate them during Receive events.

I am not sure whether i have a valid question or not. I would really
appreciate your help and others' as well.

Thanking You
MMA





On 14/06/07, Steve McKown < [EMAIL PROTECTED] > wrote:


On Friday 08 June 2007 13:58, Murtuza wrote:
> Hello friends,
>
> I have 2 different questions.
>
> 1. I wanted to know how can I receive messages of different payload
format
> i.e the payload are of different sizes and structures from different
motes
> to a common mote. I have seen the code for BaseStation. It does a
similar
> thing. But the doubt which bogs me is the AM type of a message. Can
anyone
> tell me the meaning of AM type. I understand that different message
types
> have different AM types. And we can differentiate different message
based
> on this.

Yes.  Every type of message can have its own AM type value.  So a receiver
receiving a message with type==1 can treat it differently than for a
message
with type==2.

> Two packets coming from different kinds of motes running different
> applications can be distinguished using AM types. Am I right ?

I'm not sure I understand this question.  Can you share what are you
trying to
accomplish?  The AM type field allows one to distinguish the contents of
the
active message payload only.  Any correlations between "kind of mote" or
application and AM type value sets is up to the programmer.

> If I am [right] then
> how can we make sure that the AM types are always distinct.

If you want unique AM type values, you'll have to manage this yourself.
One option would be to maintain a header containing the list of all
message
types for all your applications, to ensure they are unique.  Each time you

need a new app msg, add one to the list and give it the next number in
sequence.  Include this with all apps as the sole source of am type
definitions.

#define AM_TYPE_APP1_MSG1   0x20
#define AM_TYPE_APP1_MSG2   0x21
#define AM_TYPE_APP2_MSG1   0x22
#define AM_TYPE_APP2_MSG2   0x23
#define AM_TYPE_APP2_MSG3   0x24

> 2. When i receive messages from motes to the base station I get a
messages
> that do not match the tinyos message_t structure. For example I ran a
> simple test in which the source mote sends its TOS_NODE_ID and a serial
> number of the message over the radio.  The TOS_NODE_ID  of this node was
3.
> The structure of the message payload was as shown below.
>
> typedef nx_struct test{
> nx_am_addr_t nodeid;
> nx_uint16_t num;
> }test;
>
> I got this as the output displayed on my computer.
> 00 FF FF 00 03 04 22 06 00 03 00 01
> 00 FF FF 00 03 04 22 06 00 03 00 02
> 00 FF FF 00 03 04 22 06 00 03 00 03

This looks good.  I presume you have a java or C serial forwarder running
against the serial port to which the base station mote is attached, then
the
output above is from a program attaching to the local port opened by the
serial forwarder.  Here's how the first packet's values break down:

The first byte is the serial packet format dispatch byte.  A
value of 0 (TOS_SERIAL_ACTIVE_MESSAGE_ID) means the
data following are a serial active message.  See
$TOSDIR/lib/serial/Serial.h and TEP113 for the details.
00
The next 7 bytes are the serial am header, as defined in

Re: [Tinyos-help] Need help on receiving multiple messages in tinyos-2.x

2007-06-24 Thread Murtuza

Hi Steve

Thanks for ur reply...and i apologize for replying late


Two packets coming from different kinds of motes running different
applications can be distinguished using AM types. Am I right ?


[This was your reply]
I'm not sure I understand this question.  Can you share what are you trying
to
accomplish?  The AM type field allows one to distinguish the contents of the
active message payload only.  Any correlations between "kind of mote" or
application and AM type value sets is up to the programmer.

Actually what I mean is suppose there are two mica2 motes running distinct
applications on eachother. Then how can I distinguish between these messages
at the receiver. Can I have two Receive.receive events in my receiver
application. Or should I use the same Receive.recvieve event and then
separate out (or distinguish) between the messages by looking into the
packet.

Can i do sth like this..

In mote 1 configuration
Mote_1.AMSend -> AMSenderC.AMSend[AM_Type_1];

In mote2 configuraton
Mote_2.AMSend -> AMSenderC.AMSend[AM_Type_2];


IN THE RECEIVER MOTE

Now I dont understand how I can have separate ActiveMessageC.Receive events.
Is this permitted

uses interface Receive as Mote_1_Receive;
uses interface Receive as Mote_2_Receive;

Rx_Mote.Mote_1_Receive -> ActiveMessageC.Receive[AM_Type_1];
Rx_Mote.Mote_2_Receive -> ActiveMessageC.Receive[AM_Type_2];

My aim is to have a receiving mote receive data from two motes running
different applications. Without parsing through the received message can I
separate out these packets { The ones received from different motes }. I
basically want to separate them during Receive events.

I am not sure whether i have a valid question or not. I would really
appreciate your help and others' as well.

Thanking You
MMA




I want to elaborate on these sentences of mine in the previous mail

On 14/06/07, Steve McKown <[EMAIL PROTECTED] > wrote:


On Friday 08 June 2007 13:58, Murtuza wrote:
> Hello friends,
>
> I have 2 different questions.
>
> 1. I wanted to know how can I receive messages of different payload
format
> i.e the payload are of different sizes and structures from different
motes
> to a common mote. I have seen the code for BaseStation. It does a
similar
> thing. But the doubt which bogs me is the AM type of a message. Can
anyone
> tell me the meaning of AM type. I understand that different message
types
> have different AM types. And we can differentiate different message
based
> on this.

Yes.  Every type of message can have its own AM type value.  So a receiver
receiving a message with type==1 can treat it differently than for a
message
with type==2.

> Two packets coming from different kinds of motes running different
> applications can be distinguished using AM types. Am I right ?

I'm not sure I understand this question.  Can you share what are you
trying to
accomplish?  The AM type field allows one to distinguish the contents of
the
active message payload only.  Any correlations between "kind of mote" or
application and AM type value sets is up to the programmer.

> If I am [right] then
> how can we make sure that the AM types are always distinct.

If you want unique AM type values, you'll have to manage this yourself.
One option would be to maintain a header containing the list of all
message
types for all your applications, to ensure they are unique.  Each time you

need a new app msg, add one to the list and give it the next number in
sequence.  Include this with all apps as the sole source of am type
definitions.

#define AM_TYPE_APP1_MSG1   0x20
#define AM_TYPE_APP1_MSG2   0x21
#define AM_TYPE_APP2_MSG1   0x22
#define AM_TYPE_APP2_MSG2   0x23
#define AM_TYPE_APP2_MSG3   0x24

> 2. When i receive messages from motes to the base station I get a
messages
> that do not match the tinyos message_t structure. For example I ran a
> simple test in which the source mote sends its TOS_NODE_ID and a serial
> number of the message over the radio.  The TOS_NODE_ID  of this node was
3.
> The structure of the message payload was as shown below.
>
> typedef nx_struct test{
> nx_am_addr_t nodeid;
> nx_uint16_t num;
> }test;
>
> I got this as the output displayed on my computer.
> 00 FF FF 00 03 04 22 06 00 03 00 01
> 00 FF FF 00 03 04 22 06 00 03 00 02
> 00 FF FF 00 03 04 22 06 00 03 00 03

This looks good.  I presume you have a java or C serial forwarder running
against the serial port to which the base station mote is attached, then
the
output above is from a program attaching to the local port opened by the
serial forwarder.  Here's how the first packet's values break down:

The first byte is the serial packet format dispatch byte.  A
value of 0 (TOS_SERIAL_ACTIVE_MESSAGE_ID) means the
data following are a serial active message.  See
$TOSDIR/lib/serial/Serial.h and TEP113 for the details.
00
The next 7 bytes are the serial am header, as defined in
Se

Re: [Tinyos-help] Need help on receiving multiple messages in tinyos-2.x

2007-06-14 Thread Steve McKown
On Friday 08 June 2007 13:58, Murtuza wrote:
> Hello friends,
>
> I have 2 different questions.
>
> 1. I wanted to know how can I receive messages of different payload format
> i.e the payload are of different sizes and structures from different motes
> to a common mote. I have seen the code for BaseStation. It does a similar
> thing. But the doubt which bogs me is the AM type of a message. Can anyone
> tell me the meaning of AM type. I understand that different message types 
> have different AM types. And we can differentiate different message based
> on this.

Yes.  Every type of message can have its own AM type value.  So a receiver 
receiving a message with type==1 can treat it differently than for a message 
with type==2.

> Two packets coming from different kinds of motes running different 
> applications can be distinguished using AM types. Am I right ?

I'm not sure I understand this question.  Can you share what are you trying to 
accomplish?  The AM type field allows one to distinguish the contents of the 
active message payload only.  Any correlations between "kind of mote" or 
application and AM type value sets is up to the programmer.

> If I am [right] then 
> how can we make sure that the AM types are always distinct.

If you want unique AM type values, you'll have to manage this yourself.
One option would be to maintain a header containing the list of all message 
types for all your applications, to ensure they are unique.  Each time you 
need a new app msg, add one to the list and give it the next number in 
sequence.  Include this with all apps as the sole source of am type 
definitions.

#define AM_TYPE_APP1_MSG1   0x20
#define AM_TYPE_APP1_MSG2   0x21
#define AM_TYPE_APP2_MSG1   0x22
#define AM_TYPE_APP2_MSG2   0x23
#define AM_TYPE_APP2_MSG3   0x24

> 2. When i receive messages from motes to the base station I get a messages
> that do not match the tinyos message_t structure. For example I ran a
> simple test in which the source mote sends its TOS_NODE_ID and a serial
> number of the message over the radio.  The TOS_NODE_ID  of this node was 3.
> The structure of the message payload was as shown below.
>
> typedef nx_struct test{
> nx_am_addr_t nodeid;
> nx_uint16_t num;
> }test;
>
> I got this as the output displayed on my computer.
> 00 FF FF 00 03 04 22 06 00 03 00 01
> 00 FF FF 00 03 04 22 06 00 03 00 02
> 00 FF FF 00 03 04 22 06 00 03 00 03

This looks good.  I presume you have a java or C serial forwarder running 
against the serial port to which the base station mote is attached, then the 
output above is from a program attaching to the local port opened by the 
serial forwarder.  Here's how the first packet's values break down:

The first byte is the serial packet format dispatch byte.  A
value of 0 (TOS_SERIAL_ACTIVE_MESSAGE_ID) means the
data following are a serial active message.  See
$TOSDIR/lib/serial/Serial.h and TEP113 for the details.
00
The next 7 bytes are the serial am header, as defined in
Serial.h's serial_header_t structure.
FF FF   dest addr
00 03   src addr
04  length of the data payload
22  group (TOS_AM_GROUP)
06  type (AM type).  This value controls how the
remainder of the packet should be interpreted.

The next 4 bytes are the data payload, represented by the
structure 'test' that you defined:
00 03   nodeid
00 01   num

> The output of the BlinkToRadio application. But why is it that the output
> sent by the motes is not according to the message_t structure.
>
> typedef nx_struct cc1000_header {
>   nx_am_addr_t addr;
>   nx_uint8_t length;
>   nx_am_group_t group;
>   nx_am_id_t type;
> } cc1000_header_t;

Since the PC is receiving the message over a serial port, the message has a 
serial header.  The header of a message is tied to the network device used to 
send or receive it (aka the link), so it can change from device to device.

> Why is it that there is always the TOS_NODE_ID inserted after the
> destination ID. In the header the
> first field is the destination address right. Then its the length. But
> why is it that i always get
> the source node ID.
>
> Thanking You
> MMA
>
>
> !DSPAM:4669b6a1175882362839998!
___
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help


Re: [Tinyos-help] Need help on receiving multiple messages in tinyos-2.x

2007-06-14 Thread Bernardo Avila Pires

I think it would be easier to deal with defining a struct for a
message and then manipulating it as in BlinkToRadio...

2007/6/8, Murtuza <[EMAIL PROTECTED]>:

Hello friends,

I have 2 different questions.

1. I wanted to know how can I receive messages of different payload format
i.e the payload are of different sizes and structures from different motes
to a common mote. I have seen the code for BaseStation. It does a similar
thing. But the doubt which bogs me is the AM type of a message. Can anyone
tell me the meaning of AM type. I understand that different message types
have different AM types. And we can differentiate different message based on
this. Two packets coming from different kinds of motes running different
applications can be distinguished using AM types. Am I right ? If I am then
how can we make sure that the AM types are always distinct.

  And if my concept of AM Type is entirely wrong then please do not curse me
and tell me what it really means. I would be more than thankful if you do
so.

2. When i receive messages from motes to the base station I get a messages
that do not match the tinyos message_t structure. For example I ran a simple
test in which the source mote sends its TOS_NODE_ID and a serial number of
the message over the radio.  The TOS_NODE_ID  of this node was 3. The
structure of the message payload was as shown below.

typedef nx_struct test{
nx_am_addr_t nodeid;
nx_uint16_t num;
}test;

I got this as the output displayed on my computer.
00 FF FF 00 03 04 22 06 00 03 00 01
00 FF FF 00 03 04 22 06 00 03 00 02
00 FF FF 00 03 04 22 06 00 03 00 03


The output of the BlinkToRadio application. But why is it that the output
sent by the motes is not according to the message_t structure.
typedef nx_struct cc1000_header {
 nx_am_addr_t addr;
 nx_uint8_t length;
 nx_am_group_t group;
 nx_am_id_t type;
} cc1000_header_t;

Why is it that there is always the TOS_NODE_ID inserted after the
destination ID. In the header the

first field is the destination address right. Then its the length. But why
is it that i always get
the source node ID.

Thanking You
MMA





















___
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help




--
"The truth shall set you free"
___
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help


[Tinyos-help] Need help on receiving multiple messages in tinyos-2.x

2007-06-08 Thread Murtuza

Hello friends,

I have 2 different questions.

1. I wanted to know how can I receive messages of different payload format
i.e the payload are of different sizes and structures from different motes
to a common mote. I have seen the code for BaseStation. It does a similar
thing. But the doubt which bogs me is the AM type of a message. Can anyone
tell me the meaning of AM type. I understand that different message types
have different AM types. And we can differentiate different message based on
this. Two packets coming from different kinds of motes running different
applications can be distinguished using AM types. Am I right ? If I am then
how can we make sure that the AM types are always distinct.

 And if my concept of AM Type is entirely wrong then please do not curse me
and tell me what it really means. I would be more than thankful if you do
so.

2. When i receive messages from motes to the base station I get a messages
that do not match the tinyos message_t structure. For example I ran a simple
test in which the source mote sends its TOS_NODE_ID and a serial number of
the message over the radio.  The TOS_NODE_ID  of this node was 3. The
structure of the message payload was as shown below.

typedef nx_struct test{
   nx_am_addr_t nodeid;
   nx_uint16_t num;
}test;

I got this as the output displayed on my computer.
00 FF FF 00 03 04 22 06 00 03 00 01
00 FF FF 00 03 04 22 06 00 03 00 02
00 FF FF 00 03 04 22 06 00 03 00 03


The output of the BlinkToRadio application. But why is it that the output
sent by the motes is not according to the message_t structure.

typedef nx_struct cc1000_header {
 nx_am_addr_t addr;
 nx_uint8_t length;
 nx_am_group_t group;
 nx_am_id_t type;
} cc1000_header_t;

Why is it that there is always the TOS_NODE_ID inserted after the
destination ID. In the header the
first field is the destination address right. Then its the length. But
why is it that i always get
the source node ID.

Thanking You
MMA
___
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help