[Tinyos-help] Why Collection does not work?
Pablo Gil Montaño
pgilmon at yahoo.es
Mon Jan 15 02:36:21 PST 2007
Have you tried using components in tos/lib/Route (for mica) or tos/lib/MultiHopLQI for telos? These components allow you to send data from any mote to a sink (node with ID 0) in a multi-hop way.
Regards,
Pablo Gil
----- Mensaje original ----
De: Lorenzo Mainardi <lorenzo.mainardi at gmail.com>
Para: tinyos-help <tinyos-help at Millennium.Berkeley.EDU>
Enviado: lunes, 15 de enero, 2007 10:39:40
Asunto: [Tinyos-help] Why Collection does not work?
Hi everybody, I try to using Collection alghortim in a small app, but it did'nt work; when I call RoutingControl.start() I cannot obtain SUCCESS. I'was thinking it was a fault in the "linking" structure, but I copy just the
TestRoutingC.nc file by TestNetwork app.
Could you help me?
P.S. I'm sorry for the debug message in italian
This is my code:
####################################################################################################################
#include "TestRouting.h"
#include "Ctp.h"
module TestRoutingP {
uses {
interface Boot;
interface DisseminationValue<DisseminationMsg> as Value;
interface DisseminationUpdate<DisseminationMsg> as Update;
interface Timer<TMilli>as TimerSink;
interface SplitControl as RadioControl;
interface StdControl as RoutingControl;
interface RootControl;
interface CtpInfo;
interface CtpCongestion;
interface CollectionPacket;
interface CtpPacket;
interface CollectionDebug;
interface Send;
interface Receive;
}
}
implementation {
uint8_t counter=0;
message_t m;
message_t* mPtr=&m;
DisseminationMsg* dissMsgPtr;
bool sendBusy=FALSE;
bool routeSet=FALSE;
CollectionMsg* collMsgPtr;
task void CollectionSend(){
dbg("routing", "Sto mandando un messaggio da un client verso il sink\n");
collMsgPtr= (CollectionMsg*) call
Send.getPayload(mPtr);
collMsgPtr -> sender=TOS_NODE_ID;
if(call Send.send(mPtr, sizeof(CollectionMsg))!=SUCCESS){
dbg("routing", "Messaggio non inviato\n");
}
sendBusy=TRUE;
}
task void modifyMsg(){
dbg("routing", "modifyMsg\n");
counter++;
dissMsgPtr->payload=counter;
}
task void setRoot(){
if(!(call RootControl.isRoot())){
if(call RootControl.setRoot()){
dbg("routing", "Settato il root\n");
routeSet=TRUE;
}
else{
dbg("routing", "Non riesco a settare il routing\n");
}
}
else{
routeSet=TRUE;
dbg("routing", "Sono già root\n");
}
}
event void Boot.booted(){
dbg("routing", "Avvio\n");
if(call RoutingControl.start()){
dbg("routing", "Il routing è partito\n");
}
else{
dbg("routing", "Il routing non parte\n");
}
if(TOS_NODE_ID==1){
call RootControl.setRoot();
post setRoot();
call TimerSink.startPeriodic(20);
dbg("routing", "Timer Start\n");
}
else{
//do nothing
}
call RadioControl.start();
}
event void
Value.changed(){
dbg("routing", "Ricevuto un messaggio dal Dissemination\n");
if(!sendBusy){
post CollectionSend();
}
}
event void
TimerSink.fired(){
dbg("routing", "Timer Fired\n");
post modifyMsg();
call Update.change(dissMsgPtr);
}
event void RadioControl.startDone
(error_t error){
if(error==SUCCESS){
dbg("routing", "Radio Start\n");
call RoutingControl.start();
}
}
event void RadioControl.stopDone(error_t error){
}
event void Send.sendDone(message_t *msg, error_t error){
if(error !=SUCCESS){
dbg("routing", "Non riesco a mandare messaggi\n");
}
else{
dbg("routing", "Sono risucito a mandare messaggi\n");
sendBusy=FALSE;
}
}
event message_t *
Receive.receive(message_t *msg, void *payload, uint8_t len){
dbg("routing", "Ho ricevuto un messaggio dal Collection\n");
return msg;
}
}
_______________________________________________
Tinyos-help mailing list
Tinyos-help at Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
______________________________________________
LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.millennium.berkeley.edu/pipermail/tinyos-help/attachments/20070115/a8ee6e45/attachment.html
More information about the Tinyos-help
mailing list