0

我正在使用Particle.io固件版本 2.1.0,并且我正在尝试将一个函数作为一个类的成员,该类将采用一个参数,int waitForDuration并将循环直到类的公共成员更改为 valuetrue或持续时间已过期剩余的价值false。我试图编写一个这样的函数,我将在下面提供,这个函数在几次调用中按预期工作,最终它将不再等待布尔值,而是立即返回 false。如果有人可以就正在发生的事情/为什么提供任何见解,将不胜感激。谢谢!

文件

我的类.h

#ifndef MyClass_h
#define MyClass_h

namespace MyClass
{
    class MyClass
    {
        public:
            bool publicFlagMember;
            bool waitForFlag();
    }
}

我的类.cpp

我之前尝试过的功能

bool waitForFlag(uint16_t timeout)
{
    uint16_t timer = millis();
    while (millis() - timer <= timeout)
    {
        // call Particle.process() to ensure that when the variable changes we catch it
        delay(200);
        Particle.process();
        if (publicFlagMember)
        {
            return true;
        }
    }

    return false;
}
4

0 回答 0