如何在mongoose中使用timer.set我想像延迟一样使用它(1000);

时间:2017-07-02 12:55:25

标签: timer delay iot esp8266

我就是这样做的arduino

analogWrite(pin1,1023);
digitalWrite(pin2,HIGH);

delay(1500);

analogWrite(pin1,0);
digitalWrite(pin2,LOW);

如何在js for mongoose os中编写相同的代码?

我希望数字输出的pin1低至1000毫秒,然后高至状态。改变

我尝试在mongoose os中使用timer.set pin2是模拟

function valveOC() {

    if (state.on === false) {

        Timer.set(1000, false, function() {

            GPIO.write(pin1, 0);

            PWM.set(pin2, 50, 100);

            print(value ? 'Tick' : 'Tock');
        }, null);

    }

    if (state.on === false) {
        Timer.set(1000, false, function() {

            GPIO.write(pin1, 1);
            PWM.set(pin2, 50, 100);

        }, null);

    }
}

1 个答案:

答案 0 :(得分:1)

首先,您必须知道Mongoose OS中的计时器功能:

Timer.set(毫秒,重复,处理程序)

设置计时器,以毫秒超时和处理程序作为回调。如果repeat设置为true,则呼叫将无限期重复,否则它将是一次性的。 返回值:数字计时器ID。

Mongoose OS中的延迟等效(1000)是: Sys.usleep(microsecondes)

您的代码将变为:

if (state.on === false) {
        Sys.usleep(1000000);
        GPIO.write(pin1, 0);
        PWM.set(pin2, 50, 100):
}

if (state.on === false) {
        Sys.usleep(1000000);
        GPIO.write(pin1, 1);
        PWM.set(pin2, 50, 100);
}

您可以在JS api documentation

中查看更多详情