To be more specific, have i the right to use the combination of AMPacket and
Packet like this:

msg_request_neighbours_t* pkt = (msg_request_neighbours_t*)payload;
am_addr_t addr =call AMPacket.source(msg);

and continue with the message editing?

Thank you,

Artemis Voulkidis

National Technical Univerisity of Athens

On Mon, Oct 13, 2008 at 10:06 AM, Artemis Voulkidis <[EMAIL PROTECTED]>wrote:

>
> First of all, thank you for the quick answer!
>
> However, the main problem expressed in my previous message, is how can i
> get the am_addr_t of a received message!
>
> I should use the AMPacket interface? Can I use the AMPacket and the Packet
> interface at the same time?
>
> Again, thank you for your time,
>
> Artemis Voulkidis
>
> National Technical University of Athens
> On Sun, Oct 12, 2008 at 7:48 PM, tarun sharma <[EMAIL PROTECTED]>wrote:
>
>> I understand that you want to unicast message form a node. I have
>> implemented this in two ways in my projects based on the requirement:
>>
>> 1) if the sender knows the node to which it wants to send the message
>> and receiver doesn't know from which node it wants to receive:
>>
>>    sender uses the target nodes ID to send the message:
>>      call AMSend.send("the address", msg, len)
>>
>>   receiver on receiving check if message is intended for itself:
>>        call AMPacket.isForMe(msg)
>>
>> if it is, message is accepted
>>
>>
>>
>> 2) if sender doesn't know which node it wanted to send the message to
>> but receiver knows from which node it wants to receive:
>>
>>    sender broadcasts the message:
>>     call AMSend.send(AM_BROADCAST_ADDR, &pkt, len)
>>
>>
>> receiver on receiving the messages check if the sender of this message
>> was the one from which it is expecting a message:
>>
>> if(call AMPacket.source(msg)=="the address")
>>
>> if it is message is accepted
>>
>>
>>
>> On Sun, Oct 12, 2008 at 6:23 PM, Artemis Voulkidis <[EMAIL PROTECTED]>
>> wrote:
>> > Hello!
>> >
>> > I am trying to make a node send a data packet to another node, but i
>> cannot
>> > figure out how i can achieve this..
>> >
>> > For example, I have created a struct:
>> >
>> > typedef nx_struct msg_send_temp {
>> >  uint8_t msg_type;
>> >  uint8_t temp
>> > } msg_send_temp_t;
>> >
>> > I try to send it with the help of Packet, and AMSend interfaces like
>> this:
>> >
>> >  void msg_send_temp(am_addr_t XXXXX) {
>> >   msg_send_temp_t* pkt = (msg_send_temp_t*)call
>> Packet.getPayload(&packet,
>> > sizeof(msg_send_temp_t));
>> >   if(pkt == NULL){
>> >      return;
>> >   }
>> >   pkt->msg_type = (uint8_t)SEND_TEMP_MSG;
>> >   pkt->temp = node_temp;
>> >   call AMSend.send(XXXXX, &packet, sizeof(msg_send_temp_t));
>> >   dbg("NodeC","Temp information sent, node id = %hu.\n", node_id);
>> >   return;
>> >  }
>> >
>> > The XXXXX written above, is supposed to be an am_addr_t of the other
>> node,
>> > whose am_addr_t needs to be taken from a Receive function like this:
>> >
>> >  event message_t * Receive.receive(message_t * msg, void * payload,
>> uint8_t
>> > len){
>> >   if(len == sizeof(msg_request_temp_t)){
>> >   msg_request_temp_t* pkt = (msg_request_temp_t*)payload;
>> >   if (pkt->msg_type == REQUEST_IS_HEAD_MSG){
>> >   msg_send_temp(XXXXX);   //Here i should try to get the  msg's
>> am_addr_t..
>> >   }
>> >   return msg;
>> >   }
>> >
>> >
>> > However, i cannot figure out how to take the address of the source node,
>> to
>> > correctly pass it to the msg_send_temp(am_addr_t) function..
>> >
>> > Can i use simultaneously both the AMPacket and the Packet interface?
>> >
>> > Thank you in advance for your time,
>> >
>> > Artemis Voulkidis
>> >
>> > National Technical University of Athens
>> >
>> > _______________________________________________
>> > Tinyos-help mailing list
>> > Tinyos-help@millennium.berkeley.edu
>> >
>> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>> >
>>
>
>
_______________________________________________
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to