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