⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 photoandtempm.nc

📁 多跳路由的温度采集程序
💻 NC
字号:
includes userdata;module PhotoandtempM{  provides interface StdControl;  uses {    interface Timer;    interface Leds;        interface SplitControl as TemperatureControl;       interface ADC as Temperature;    interface ADC as TSR;             interface Oscope as OTemperature;    interface Oscope as OTSR;           interface ADCError as TemperatureError;          }}implementation{  enum {    OSCOPE_DELAY =600       };  enum {    TEMPERATURE,    TSRSENSOR     };  norace uint16_t  temperature, tsr;  norace int state;     command result_t StdControl.init() {        call Leds.init();    call Leds.set(0);    state = TEMPERATURE;    call TemperatureControl.init();        return SUCCESS;  }  event result_t TemperatureControl.initDone() {    return SUCCESS;  }    command result_t StdControl.start() {    call TemperatureControl.start();        call Leds.redToggle();    return SUCCESS;  }  event result_t TemperatureControl.startDone() {        call TemperatureError.enable();    call Timer.start( TIMER_ONE_SHOT, 3000 );    return SUCCESS;  }    command result_t StdControl.stop() {    call TemperatureControl.stop();       call Timer.stop();    return SUCCESS;  }  event result_t TemperatureControl.stopDone() {       call TemperatureError.disable();    return SUCCESS;  }  event result_t Timer.fired() {   call Leds.yellowOff();      //  photo   call Leds.greenOff();       //  temp       call Timer.start(TIMER_ONE_SHOT, 100);    switch(state) {       case TEMPERATURE:      call Temperature.getData();      break;    case TSRSENSOR:      call TSR.getData();      break;       default:      call Timer.start(TIMER_ONE_SHOT, 10);    }          return SUCCESS;  }   task void putTemperature() {    call OTemperature.put(temperature);    call Leds.greenOn();    call Timer.start(TIMER_ONE_SHOT, OSCOPE_DELAY);  }  task void putTSR() {    call OTSR.put(tsr);    call Leds.yellowOn();    call Timer.start(TIMER_ONE_SHOT, OSCOPE_DELAY);  }    async event result_t Temperature.dataReady(uint16_t data) {    temperature = data;    post putTemperature();    state = TSRSENSOR;    return SUCCESS;  }  event result_t TemperatureError.error(uint8_t token) {    temperature = 0;    post putTemperature();    state = TSRSENSOR;    return SUCCESS;  }  async event result_t TSR.dataReady(uint16_t data) {    tsr = data;    post putTSR();    state = TEMPERATURE;    return SUCCESS;  }    } 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -