Hi,
I'm writing a simple program on a micaz mote, which receive the query from another mote, sense the environment, and transmit the data back to that mote. I used the PhotoTemp module in the tinyos-1.x, and when I wire the ADC interface to Photo, the program works OK. However, when I wire the ADC interface to Temp, it seems that the program receive the query just for the first time. Afterwards, it can not receive any query, and the program is halted.
Could someone help me to solve this problem? Many thanks!

Chao

The core part of my program is as follow:

task void dataTask()
  {
      uint16_t count;
      count = call Random.rand();
      count = (count/65535) * 1000;
      atomic{
          DataPtr->sourceID =  TOS_LOCAL_ADDRESS;
          DataPtr->type = currentDataType;
      }
      call fireTimer.start(TIMER_ONE_SHOT, count);
  }


  event result_t fireTimer.fired()
  {
      if (destID != TOS_LOCAL_ADDRESS)
{ call sendData.send(destID, sizeof(struct DataMsg), &data_packet);
          call Leds.greenToggle();
      }
      return SUCCESS;
  }

  event TOS_MsgPtr recvReq.receive(TOS_MsgPtr m)
  {
      uint16_t temp;
      call Leds.redToggle();
      ReqPtr = (struct ReqMsg*)m->data;
      temp = ReqPtr->seqNo;
      if (temp != lastSeq)
      {
          lastSeq = temp;
          destID = ReqPtr->sourceID;
currentDataType = DT_TEMP; call tempADC.getData(); } return m;
  }

  async event result_t tempADC.dataReady(uint16_t data)
  {
       atomic{
          DataPtr = (struct DataMsg*)data_packet.data;
          DataPtr->data = data;
          post dataTask();
   }
      return SUCCESS;
  }
    event result_t sendData.sendDone(TOS_MsgPtr msg, bool success)
  {
          return SUCCESS;
  }

_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to