Changeset 225


Ignore:
Timestamp:
10/19/09 09:44:00 (4 years ago)
Author:
thomas
Message:

sync happens, but sometimes slots get crazy for a few minutes.

Location:
apps/TSCH
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • apps/TSCH/TODO.txt

    r217 r225  
    1 - CellUsageC: TXRES cells will always be reserved, regardless of the previous state. This can cause trouble. Enquire. 
     1- slots get crazy 
     2- when a node reboots, it forgets all its RES slots. So should its neighbors. 
     3- when a node gets out of sync, it keeps its tables. If it stays out of sync for over delays, it should erase its tables. 
     4- at each new RES, node should tell its neighbor how many TXDATA/RXDATA slots it has to that neighbor 
    25- based on gathered statistics, trigger garbage collection of cells/neighbors 
  • apps/TSCH/TSCH.h

    r224 r225  
    99   LOST_SYNC_DELAY = 30,    //in seconds 
    1010   TXRETRIES = 5, 
    11    RESRETRIES = 3, 
     11   RESRETRIES = 5, 
    1212   DELAY_REMOVE_FROZEN_RESERVATIONS =10000,  //in ms 
    1313   DELAY_REMOVE_DEAD_NEIGHBOR       =320000, //32000=1s 
  • apps/TSCH/TSCHAppC.nc

    r221 r225  
    5353   ReservationC.SerialIO->SerialIOC; 
    5454 
     55   NeighborsC.GlobalTime->GlobalTimeC; 
    5556   NeighborsC.DeQueue->TSCHQueueC; 
    56    NeighborsC.GlobalTime->GlobalTimeC; 
    5757   NeighborsC.SendADV->TSCHQueueC.SendADV; 
    5858   NeighborsC.SendDATA->TSCHQueueC.SendDATA; 
     
    6666   NeighborsC.SerialIO->SerialIOC; 
    6767 
    68    CellUsageC.GlobalSync->GlobalTimeC; 
     68   CellUsageC.NeighborGet->NeighborsC; 
    6969   CellUsageC.GlobalTime->GlobalTimeC; 
    7070   CellUsageC.IDManager->IDManagerC; 
    71    CellUsageC.NeighborGet->NeighborsC; 
     71   CellUsageC.GlobalSync->GlobalTimeC; 
    7272   CellUsageC.SerialIO->SerialIOC; 
    7373 
     
    9595   SlotEngineC.GlobalSync->GlobalTimeC; 
    9696   SlotEngineC.CellUsageGet->CellUsageC; 
     97   SlotEngineC.NeighborGet->NeighborsC; 
    9798   SlotEngineC.GlobalTime->GlobalTimeC; 
    9899   SlotEngineC.IDManager->IDManagerC; 
     
    100101   SlotEngineC.CellStats->CellUsageC; 
    101102   SlotEngineC.SerialIO->SerialIOC; 
    102    SlotEngineC.NeighborGet->NeighborsC; 
    103103 
    104104   GlobalTimeC.SubReceive->SlotEngineC; 
  • apps/TSCH/debugwsn.py

    r224 r225  
    7575         text.insert(END,"input too short to be a command ("+str(len(input))+" chars)\n") 
    7676      except: 
    77          pass 
     77         print "ERROR 1" 
     78         err = sys.exc_info() 
     79         sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    7880      return 
    7981   #byte 0 is the type of status message 
     
    8486         text.insert(END,"data\n", (serial_port)) 
    8587      except: 
    86          pass 
     88         print "ERROR 2" 
     89         err = sys.exc_info() 
     90            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    8791   elif (input[0]=="S"): 
    8892      #bytes 1 and 2 is moteID 
     
    9397      if   (statusElementNumber==0): displayAdvertise(serial_port,input) 
    9498      elif (statusElementNumber==1): recordCellTableRow(serial_port,input) 
    95       elif (statusElementNumber==2): recordNeighborsRow(serial_port,input) 
    96       elif (statusElementNumber==3): recordOngoingResRow(serial_port,input) 
     99   elif (statusElementNumber==2): recordNeighborsRow(serial_port,input) 
     100elif (statusElementNumber==3): recordOngoingResRow(serial_port,input) 
    97101      elif (statusElementNumber==4): displayOutputBufferIndexes(serial_port,input) 
    98       elif (statusElementNumber==5): recordQueueRow(serial_port,input) 
    99       else: 
    100          try: 
    101             text.insert(END,"STATUS_ELEMENT_UNKNOWN\n", (serial_port)) 
    102          except: 
    103             pass 
     102   elif (statusElementNumber==5): recordQueueRow(serial_port,input) 
     103else: 
     104   try: 
     105      text.insert(END,"STATUS_ELEMENT_UNKNOWN\n", (serial_port)) 
     106   except: 
     107      print "ERROR 3" 
     108            err = sys.exc_info() 
     109            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    104110   else: 
    105111      try: 
    106112         text.insert(END,"status message of unknown type="+input[0]+"\n") 
    107113      except: 
    108          pass 
     114         print "ERROR 4" 
     115         err = sys.exc_info() 
     116            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    109117 
    110118#========================= state translators ======================== 
     
    113121   if   (slotState==0):return "S_SETTING_CHAN" 
    114122   elif (slotState==1):return "S_STARTING" 
    115    elif (slotState==2):return "S_STARTED" 
     123elif (slotState==2):return "S_STARTED" 
    116124   elif (slotState==3):return "S_SYNCHRONIZING" 
    117    elif (slotState==4):return "S_TXDATA" 
     125elif (slotState==4):return "S_TXDATA" 
    118126   elif (slotState==5):return "S_WAIT_RXACK" 
    119    elif (slotState==6):return "S_ACK" 
     127elif (slotState==6):return "S_ACK" 
    120128   elif (slotState==7):return "S_RXDATA" 
    121    elif (slotState==8):return "S_WAIT_TXACK" 
     129elif (slotState==8):return "S_WAIT_TXACK" 
    122130   elif (slotState==9):return "S_TXACK" 
    123    elif (slotState==10):return "S_STOPPING" 
     131elif (slotState==10):return "S_STOPPING" 
    124132   elif (slotState==11):return "S_SLEEP" 
    125    else: return "!!unknow state ("+str(slotState)+")!!" 
     133else: return "!!unknow state ("+str(slotState)+")!!" 
    126134 
    127135def getComponentName(componentName): 
    128136   if   (componentName==0):return "[TSCHP]" 
    129137   elif (componentName==1):return "[ForwardingP]" 
    130    elif (componentName==2):return "[ReservationP]" 
     138elif (componentName==2):return "[ReservationP]" 
    131139   elif (componentName==3):return "[NeighborsP]" 
    132    elif (componentName==4):return "[CellUsageP]" 
     140elif (componentName==4):return "[CellUsageP]" 
    133141   elif (componentName==5):return "[AdvertiseP]" 
    134    elif (componentName==6):return "[TSCHQueueP]" 
     142elif (componentName==6):return "[TSCHQueueP]" 
    135143   elif (componentName==7):return "[KeepAliveP]" 
    136    elif (componentName==8):return "[MultiplexP]" 
     144elif (componentName==8):return "[MultiplexP]" 
    137145   elif (componentName==9):return "[SlotEngineP]" 
    138    elif (componentName==10):return "[GlobalTimeP]" 
     146elif (componentName==10):return "[GlobalTimeP]" 
    139147   elif (componentName==11):return "[SerialIOP]" 
    140    elif (componentName==12):return "[TestLowerTSCHP]" 
    141    else: output=output+"[!!unknow component("+str(componentName)+")!!] " 
     148elif (componentName==12):return "[TestLowerTSCHP]" 
     149   else: return "[!!unknow component("+str(componentName)+")!!] " 
    142150 
    143151def getCellType(cellType): 
    144152   if   (cellType==0):return "OFF" 
    145153   elif (cellType==1):return "RESER" 
    146    elif (cellType==2):return "ADV" 
     154elif (cellType==2):return "ADV" 
    147155   elif (cellType==3):return "TXSER" 
    148    elif (cellType==4):return "RXSER" 
     156elif (cellType==4):return "RXSER" 
    149157   elif (cellType==5):return "RES" 
    150    elif (cellType==6):return "TXDAT" 
     158elif (cellType==6):return "TXDAT" 
    151159   elif (cellType==7):return "RXDAT" 
    152    else: output=output+"[!!unknow cellType("+str(cellType)+")!!] " 
     160else: return "[!!unknow cellType("+str(cellType)+")!!] " 
    153161 
    154162def getReservationTodo(todo): 
    155163   if   (todo==0):return "UNUSED" 
    156164   elif (todo==1):return "LOCAL_RES" 
    157    elif (todo==2):return "DISTANT_RES" 
     165elif (todo==2):return "DISTANT_RES" 
    158166   elif (todo==3):return "WAIT_SENT" 
    159    elif (todo==4):return "WAIT_RES" 
     167elif (todo==4):return "WAIT_RES" 
    160168   elif (todo==5):return "DISTANT_FAILED_RESTART_LOCAL" 
    161    elif (todo==6):return "INFORM_REQUESTER" 
    162    else: output=output+"[!!unknow Todo("+str(todo)+")!!] " 
     169elif (todo==6):return "INFORM_REQUESTER" 
     170   else: return "[!!unknow Todo("+str(todo)+")!!] " 
    163171 
    164172def getReservationRequest(request): 
    165173   if   (request==0):return "REQ_CELL" 
    166174   elif (request==1):return "FREE_CELL" 
    167    elif (request==2):return "SUCCESS" 
     175elif (request==2):return "SUCCESS" 
    168176   elif (request==3):return "FAIL" 
    169    else: output=output+"[!!unknow request("+str(request)+")!!] " 
     177else: return "[!!unknow request("+str(request)+")!!] " 
    170178 
    171179#========================= parsing and displaying =================== 
     
    176184         text.insert(END,"input too short to be of type \"error\" ("+str(len(input))+" chars)\n") 
    177185      except: 
    178          pass 
     186         print "ERROR 5" 
     187         err = sys.exc_info() 
     188            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    179189      return 
    180190   #bytes 1 and 2 is moteID 
     
    382392      seriousness="debug" 
    383393   elif (command==57): 
    384       #output=output+"neighbor "+str(arg1)+" assumed dead, removed" 
    385       #output=output+"neighbor remove "+str(ord(input[5]))+","+str(ord(input[6]))+","+str(ord(input[7]))+","+str(ord(input[8])) 
    386       output=output+"neighbor remove "+str(ord(input[5])*256*256*256+ord(input[6])*256*256+ord(input[7])*256+ord(input[8])) 
     394      output=output+"neighbor "+str(arg1)+" assumed dead, removed"       
    387395      seriousness="warning" 
    388396   else: 
     
    392400      text.insert(END,output, (serial_port,seriousness)) 
    393401   except: 
    394       pass 
     402      print "ERROR 6" 
     403      err = sys.exc_info() 
     404            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    395405 
    396406def displayAdvertise(serial_port,input): 
     
    399409         text.insert(END,"input too short to be status message from AdvertiseP ("+str(len(input))+" chars)\n") 
    400410      except: 
    401          pass 
     411         print "ERROR 7" 
     412         err = sys.exc_info() 
     413            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    402414      return 
    403415   #bytes 4 and 5 is the length 
     
    412424         text.insert(END,"input too short to be status message from SerialIOP ("+str(len(input))+" chars)\n") 
    413425      except: 
    414          pass 
     426         print "ERROR 8" 
     427         err = sys.exc_info() 
     428            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    415429      return 
    416430   #bytes 4 and 5 is the length 
     
    427441      elements[serial_port]["STATUS_SERIALIOP_OUTPUTBUFFERINDEXES"].insert(END,output) 
    428442   except: 
    429       pass 
     443      print "ERROR 9" 
     444      err = sys.exc_info() 
     445            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    430446 
    431447def recordCellTableRow(serial_port,input): 
     
    434450         text.insert(END,"input too short to be status message from CellUsageP ("+str(len(input))+" chars)\n") 
    435451      except: 
    436          pass 
     452         print "ERROR 10" 
     453         err = sys.exc_info() 
     454            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    437455      return 
    438456   #bytes 4 and 5 is the length 
     
    468486      elements[serial_port]["STATUS_CELLUSAGEP_CELLTABLE"]["TABLE_ELEM"].insert(END,output) 
    469487   except: 
    470       pass 
     488      print "ERROR 11" 
     489      err = sys.exc_info() 
     490            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    471491   for key, value in elements[serial_port]["STATUS_CELLUSAGEP_CELLTABLE"]["TABLE"].iteritems(): 
    472492      output = str(key)+"\t| "+str(value["type"])+"\t| "+str(value["neighbor"])+"\t| "+str(value["channel"])+"\t| "+str(value["numUser"])+"\t| "+str(value["numACK"])+"\t| "+str(value["lastUsedTimestamp"])+"\n" 
     
    475495            elements[serial_port]["STATUS_CELLUSAGEP_CELLTABLE"]["TABLE_ELEM"].insert(END,output,("last_row")) 
    476496         except: 
    477             pass 
     497            print "ERROR 12" 
     498            err = sys.exc_info() 
     499            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    478500      else: 
    479501         try: 
    480502            elements[serial_port]["STATUS_CELLUSAGEP_CELLTABLE"]["TABLE_ELEM"].insert(END,output) 
    481503         except: 
    482             pass 
     504            print "ERROR 13" 
     505            err = sys.exc_info() 
     506            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    483507 
    484508def recordQueueRow(serial_port,input): 
     
    487511         text.insert(END,"input too short to be status message from TSCHQueueP ("+str(len(input))+" chars)\n") 
    488512      except: 
    489          pass 
     513         print "ERROR 14" 
     514         err = sys.exc_info() 
     515            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    490516      return 
    491517   #bytes 4 and 5 is the length 
     
    508534      elements[serial_port]["STATUS_TSCHQUEUEP_QUEUE"]["TABLE_ELEM"].insert(END,output) 
    509535   except: 
    510       pass 
     536      print "ERROR 15" 
     537      err = sys.exc_info() 
     538            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    511539   for key, value in elements[serial_port]["STATUS_TSCHQUEUEP_QUEUE"]["TABLE"].iteritems(): 
    512540      output = str(key)+" | "+str(value["used"])+"\t| "+str(value["retries"])+"\n" 
     
    515543            elements[serial_port]["STATUS_TSCHQUEUEP_QUEUE"]["TABLE_ELEM"].insert(END,output,("last_row")) 
    516544         except: 
    517             pass 
     545            print "ERROR 16" 
     546            err = sys.exc_info() 
     547            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    518548      else: 
    519549         try: 
    520550            elements[serial_port]["STATUS_TSCHQUEUEP_QUEUE"]["TABLE_ELEM"].insert(END,output) 
    521551         except: 
    522             pass 
     552            print "ERROR 17" 
     553            err = sys.exc_info() 
     554            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    523555 
    524556def recordNeighborsRow(serial_port,input): 
     
    527559         text.insert(END,"input too short to be status message from NeighborsP ("+str(len(input))+" chars)\n") 
    528560      except: 
    529          pass 
     561         print "ERROR 18" 
     562         err = sys.exc_info() 
     563            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    530564      return 
    531565   #bytes 4 and 5 is the length 
     
    570604      elements[serial_port]["STATUS_NEIGHBORSP_NEIGHBORS"]["TABLE_ELEM"].insert(END,output) 
    571605   except: 
    572       pass 
     606      print "ERROR 19" 
     607      err = sys.exc_info() 
     608            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    573609   for key, value in elements[serial_port]["STATUS_NEIGHBORSP_NEIGHBORS"]["TABLE"].iteritems(): 
    574610      output = str(key)+" | "+str(value["used"])+"\t| "+str(value["id"])+"\t| "+str(value["DAGrank"])+"\t| "+str(value["RESchannelOffset"])+"\t| "+str(value["linkQuality"])+"\t| "+str(value["confidence"])+"\t| "+str(value["numSent"])+"\t| "+str(value["numSentOK"])+"\t| "+str(value["lastHeardTimeStamp"])+"\n" 
     
    577613            elements[serial_port]["STATUS_NEIGHBORSP_NEIGHBORS"]["TABLE_ELEM"].insert(END,output,("last_row")) 
    578614         except: 
    579             pass 
     615            print "ERROR 20" 
     616            err = sys.exc_info() 
     617            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    580618      else: 
    581619         try: 
    582620            elements[serial_port]["STATUS_NEIGHBORSP_NEIGHBORS"]["TABLE_ELEM"].insert(END,output) 
    583621         except: 
    584             pass 
     622            print "ERROR 21" 
     623            err = sys.exc_info() 
     624            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    585625 
    586626def recordOngoingResRow(serial_port,input): 
     
    589629         text.insert(END,"input too short to be status message from ReservationP ("+str(len(input))+" chars)\n") 
    590630      except: 
    591          pass 
     631         print "ERROR 22" 
     632         err = sys.exc_info() 
     633            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    592634      return 
    593635   #bytes 4 and 5 is the length 
     
    634676      elements[serial_port]["STATUS_RESERVATIONP_ONGOINGRES"]["TABLE_ELEM"].insert(END,output) 
    635677   except: 
    636       pass 
     678      print "ERROR 23" 
     679      err = sys.exc_info() 
     680            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    637681   for key, value in elements[serial_port]["STATUS_RESERVATIONP_ONGOINGRES"]["TABLE"].iteritems(): 
    638682      output = str(key)+" | "+str(value["todo"])+"\t| "+str(value["type"])+"\t| "+str(value["neighbor"])+"\t| "+str(value["retries"])+"\t| "+str(value["randomCell"])+"\t| "+str(value["slotOffset"])+"\t| "+str(value["channelOffset"])+"\t| "+str(value["localRequester"])+"\t| "+str(value["outcome"])+"\t| "+str(value["timestamp"])+"\n" 
     
    641685            elements[serial_port]["STATUS_RESERVATIONP_ONGOINGRES"]["TABLE_ELEM"].insert(END,output,("last_row")) 
    642686         except: 
    643             pass 
     687            print "ERROR 24" 
     688            err = sys.exc_info() 
     689            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    644690      else: 
    645691         try: 
    646692            elements[serial_port]["STATUS_RESERVATIONP_ONGOINGRES"]["TABLE_ELEM"].insert(END,output) 
    647693         except: 
    648             pass 
     694            print "ERROR 25" 
     695            err = sys.exc_info() 
     696            sys.stderr.write( "Error serialRx:%s (%s) \n" % (str(err[0]), str(err[1]))) 
    649697 
    650698#================================= GUI ============================== 
  • apps/TSCH/deploy.sh

    r222 r225  
    22make telosb install.1  bsl,20 
    33make telosb install.2  bsl,21 
    4 #make telosb install.3  bsl,22 
     4make telosb install.3  bsl,22 
    55 
    66#make telosb install.4  bsl,23 
  • apps/TSCH/neighbors/NeighborsP.nc

    r224 r225  
    4040      debugNeighborEntry_t temp; 
    4141      debugRow = (debugRow+1)%MAXNUMNEIGHBORS; 
    42       debugRow = 0;//poipoi 
    4342      temp.row = debugRow; 
    4443      temp.neighborEntry  = neighbors[debugRow]; 
     
    6059                  call DeQueue.removeAllPacketsToNeighbor(deadNeighbor); 
    6160                  call ReservationUpdate.removeAllOngoingResToNeighbor(deadNeighbor); 
    62                   //call SerialIO.printError(COMPONENT_NEIGHBORS,ERR_REMOVE_NEIGHBOR,(uint16_t)deadNeighbor,0); 
    63                   call SerialIO.printError(COMPONENT_NEIGHBORS,ERR_REMOVE_NEIGHBOR, 
    64                         (uint16_t)((actualTimeSinceLastHeard & 0xFFFF0000)>>16), 
    65                         (uint16_t)(actualTimeSinceLastHeard & 0x0000FFFF)); 
     61                  call SerialIO.printError(COMPONENT_NEIGHBORS,ERR_REMOVE_NEIGHBOR,(uint16_t)deadNeighbor,0); 
    6662               } 
    6763         } 
     
    7672               neighbors[i].numSent++; 
    7773               if (ack==TRUE) { 
    78                   neighbors[i].lastHeardTimestamp=timestamp;//poipoi: error is here 
     74                  neighbors[i].lastHeardTimestamp=timestamp; 
    7975                  neighbors[i].numSentOK++; 
    8076               } 
  • apps/TSCH/reservation/ReservationP.nc

    r223 r225  
    9090            } else { 
    9191               ongoingRes[i].outcome = FAIL; 
    92                if (ongoingRes[i].localRequester==LOCAL) { 
    93                   if (call CellUsageSet.setUsage(ongoingRes[i].slotOffset,CELLTYPE_OFF,0,0)==FAIL) { 
    94                      call SerialIO.printError(COMPONENT_RESERVATION,ERR_SETUSAGE_OFF_FAILED,(uint16_t)ongoingRes[i].slotOffset,(uint16_t)ongoingRes[i].channelOffset); 
    95                   } 
    96                } 
    9792               ongoingRes[i].todo = INFORM_REQUESTER; 
    9893            }  
  • apps/TSCH/tschqueue/TSCHQueueP.nc

    r224 r225  
    2828 
    2929   task void taskPrintTable(); 
    30    task void sendDoneTaskDATA(); 
    31    task void sendDoneTaskKA(); 
    32    void sendDoneTaskRES(); 
    33    void sendDoneTaskADV(); 
     30   task void taskSendDoneDATA(); 
     31   task void taskSendDoneKA(); 
     32   task void taskSendDoneRES(); 
     33   task void taskSendDoneADV(); 
    3434 
    3535   void informRequester(); 
     
    4646   } 
    4747 
    48    task void sendDoneTaskDATA() { 
     48   task void taskSendDoneDATA() { 
    4949      signal SendDATA.sendDone(current_msg,current_error); 
    5050      busy=FALSE; 
    5151   } 
    5252 
    53    task void sendDoneTaskKA() { 
     53   task void taskSendDoneKA() { 
    5454      signal SendKA.sendDone(current_msg,current_error); 
    5555      busy=FALSE; 
    5656   } 
    5757 
    58    void sendDoneTaskRES() { 
     58   task void taskSendDoneRES() { 
    5959      signal SendRES.sendDone(current_msg, current_error); 
    6060      busy=FALSE; 
    6161   } 
    6262 
    63    void sendDoneTaskADV(){ 
     63   task void taskSendDoneADV(){ 
    6464      signal SendADV.sendDone(current_msg,current_error); 
    6565      busy=FALSE; 
     
    105105            if (((cc2420_header_t*)current_msg->header)->length==sizeof(cc2420_header_t)+1) {//KA 
    106106               busy = TRUE; 
    107                post sendDoneTaskKA(); 
     107               post taskSendDoneKA(); 
    108108            } else {//DATA 
    109109               busy = TRUE; 
    110                post sendDoneTaskDATA(); 
     110               post taskSendDoneDATA(); 
    111111            } 
    112112            break; 
    113113         case AM_TSCH_RES: 
    114114            busy = TRUE; 
    115             sendDoneTaskRES(); 
     115            post taskSendDoneRES(); 
    116116            break; 
    117117         case AM_TSCH_ADV: 
    118118            busy = TRUE; 
    119             sendDoneTaskADV(); 
     119            post taskSendDoneADV(); 
    120120            break; 
    121121         case AM_TSCH_ACK: 
Note: See TracChangeset for help on using the changeset viewer.