Ejemplo n.º 1
0
// ============================================================================================
void _getReading(void)

{
    uint32_t temperature, output;

    // See if we have got a valid temperature
    temperature = sensorReturnReading();

    // Only turn the LED off if we've got legal data, otherwise flash it
    if (temperature == TEMP_INVALID)
        {
            ledSetState(LEDFLASH_ERROR);
            heaterSetLevel(0, CYCLE_LEN);
            isErrored=TRUE;
            sensorRequestCallback();    // Get another reading as soon as we can
            return;
        }

    ledSetState(LEDFLASH_NORMAL);
    // ...otherwise we've got a valid temp, so do the business with it
    if (pidGetSetpoint(&pidInstance) == SETPOINT_IDLE)
        output = 0;
    else
        output=pidCalc(&pidInstance,temperature);

    heaterSetLevel(output, CYCLE_LEN);
    contribute_log_entry(temperature, heaterGetPercentage(), pidGetSetpoint(&pidInstance), CYCLE_LEN);

    // Now wait for a while before doing it all again
    timerAdd(&tstate, TIMER_ORIGIN_STATEMACHINE, 0, CYCLE_LEN);
}
Ejemplo n.º 2
0
ZEND_METHOD( appnetServer , timerAdd )
{
    long ms;
    size_t len = 0;
    char* args;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l|s", &ms, &args , &len ) == FAILURE)
    {
        RETURN_FALSE;
    }

    timerArgs* timerArg = malloc( sizeof( timerArgs ));
    timerArg->ts = ms;
    timerArg->params = args;

    timerAdd(  ms , onTimer , timerArg  );
    RETURN_TRUE;
}
Ejemplo n.º 3
0
ZEND_METHOD( appnetServer , timerAdd )
{
    long ms;
    zval* callback;
    zval* args;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lz|z", &ms, &callback, &args ) == FAILURE)
    {
        RETURN_FALSE;
    }

    timerArgs* timerArg = malloc( sizeof( timerArgs ));    
    timerArg->func = callback;
    timerArg->ts = ms;
    timerArg->params = args; 

    timerAdd(  ms , onTimer , timerArg  );   
    RETURN_TRUE;
}