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