Thank you for the answer.
During the past days i've been working on the code. I included the next
structure on the Ctp.h header file:
typedef nx_struct {
> nx_bool adChildren;
> } ctp_children_header_t;
In the routing engine i added some lines, including a new task which is
posted inside another task (updateRouteTask). As you can see, to send the
info I used the same method that beacons use but changing the arguments. The
variable 'childrenMsg' used in the task is declared in this way:
ctp_children_header_t* chidlrenMsg;
task void modifyChildrenTask(am_addr_t actualParent, am_addr_t newParent)
> {
> error_t eval;
> if (sending) {
> return;
> }
> // If had parent...
> if (actualParent != INVALID_ADDR) {
> // ...set the boolean and send it
> childrenMsg->adChildren = FALSE;
> eval = call BeaconSend.send(actualParent, &childrenMsg,
> sizeof(ctp_children_header_t));
> if (eval == SUCCESS) {
> sending = TRUE;
> } else if (eval == EOFF) {
> radioOn = FALSE;
> dbg("Checkpoint 1");
> }
> }
> // Set the boolean and send to the new parent
> childrenMsg->adChildren = TRUE;
>
> eval = call BeaconSend.send(newParent, &childrenMsg,
> sizeof(ctp_children_header_t));
> if (eval == SUCCESS) {
> sending = TRUE;
> } else if (eval == EOFF) {
> radioOn = FALSE;
> dbg("Checkpoint 2");
> }
> }
My actual problem is about receiving the packet. The routing engine
overrides the Receive interface but, is possible (depending on what packet
the nodes receive) to trigger different functions? If not, i think i will
check the length to do that :p
Any advice, suggestion or whatever is welcome! :)
2011/8/21 Omprakash Gnawali
> On Thu, Aug 18, 2011 at 9:44 PM, FraN J wrote:
> > Hello!
> > Im doing some research about CTP, want to modify it ant test if i can
> > improve the energy consumption but im new to nesC and im having some
> > troubles with the code.
> > By now, i added a new field to the "route_info_t" structure defined in
> > TreeRouting.h. I also added the same field to the "ctp_routing_header_t"
> > structure defined in Ctp.h so the field get sent each time the node send
> a
> > beacon avertising his routeInfo.
> > When a node changes his parent (in the task "updateRouteTask"), if the
> best
> > neighbor found in the routing table is even better than our actual
> parent,
> > the node is going to change his actual parent.
> > In that moment i need to send 2 messages, 1 to my old parent and 1 to the
> > new to let them know the changes, so my question is:
> > ¿How can i do that? I've been reading some related TEP's and some nesC
> > tutorials, but i got stuck at this point so i appreciate any help or
> advice
> > :)
>
> You need to send a regular single hop message. You can use AMSenderC to do
> that.
>
> - om_p
>
___
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help