Ejemplo n.º 1
0
// This thread function is a friend function of the class
void* threadedToggle(void *value) {
    GPIO *gpio = static_cast<GPIO*>(value);
    bool isHigh = (bool) gpio->getValue(); //find current value
    while(gpio->threadRunning) {
        if (isHigh)	gpio->setValue(GPIO::HIGH);
        else gpio->setValue(GPIO::LOW);
        usleep(gpio->togglePeriod * 500);
        isHigh=!isHigh;
        if(gpio->toggleNumber>0) gpio->toggleNumber--;
        if(gpio->toggleNumber==0) gpio->threadRunning=false;
    }
    return 0;
}