Exemple #1
0
UniverseClient* setupIO(Brain* brain)
{
    UniverseClient* universeClient = new UniverseClient();

    QObject::connect(universeClient, SIGNAL(sensorUpdated(QString,QList<qreal>)), brain, SLOT(sensorUpdate(QString,QList<qreal>)));
    QObject::connect(brain, SIGNAL(actuatorUpdated(QString,QList<qreal>)), universeClient, SLOT(actuatorUpdate(QString,QList<qreal>)));

    return universeClient;
}
Exemple #2
0
// store a new data sample for all sensors to the pending archive interval
int computedDataStoreSample (WVIEWD_WORK *work)
{
    WV_SENSOR       sample[SENSOR_MAX];
    int             tempInt;
    float           tempfloat;

    sensorClearSet (sample);

    // convert from LOOP_PKT to a sensor sample
    sensorUpdate (&sample[SENSOR_INTEMP], work->loopPkt.inTemp);
    sensorUpdate (&sample[SENSOR_OUTTEMP], work->loopPkt.outTemp);
    sensorUpdate (&sample[SENSOR_INHUMID], (float)work->loopPkt.inHumidity);
    sensorUpdate (&sample[SENSOR_OUTHUMID], (float)work->loopPkt.outHumidity);
    sensorUpdate (&sample[SENSOR_BP], work->loopPkt.barometer);
    sensorUpdate (&sample[SENSOR_WSPEED], (float)work->loopPkt.windSpeed);
    sensorUpdateWhen (&sample[SENSOR_WGUST],
                      (float)work->loopPkt.windGust,
                      (float)work->loopPkt.windGustDir);
    sensorUpdate (&sample[SENSOR_DEWPOINT], work->loopPkt.dewpoint);
    sensorUpdate (&sample[SENSOR_RAIN], work->loopPkt.sampleRain);
    sensorUpdate (&sample[SENSOR_RAINRATE], work->loopPkt.rainRate);
    sensorUpdate (&sample[SENSOR_WCHILL], work->loopPkt.windchill);
    sensorUpdate (&sample[SENSOR_HINDEX], work->loopPkt.heatindex);

    if (work->loopPkt.sampleET > ARCHIVE_VALUE_NULL)
        sensorUpdate (&sample[SENSOR_ET], work->loopPkt.sampleET);
    if (work->loopPkt.UV != 0xFFFF)
        sensorUpdate (&sample[SENSOR_UV], (float)work->loopPkt.UV);
    if (work->loopPkt.radiation != 0xFFFF)
        sensorUpdate (&sample[SENSOR_SOLRAD], (float)work->loopPkt.radiation);
    if (work->loopPkt.wxt510Hail > ARCHIVE_VALUE_NULL)
        sensorUpdate (&sample[SENSOR_HAIL], work->loopPkt.wxt510Hail);
    if (work->loopPkt.wxt510Hailrate > ARCHIVE_VALUE_NULL)
        sensorUpdate (&sample[SENSOR_HAILRATE], work->loopPkt.wxt510Hailrate);

    // store it
    sensorPropogateSample (work->sensors.sensor[STF_INTERVAL], sample);

    // store the wind direction
    windAverageAddValue (&work->sensors.wind[STF_INTERVAL], work->loopPkt.windDir);

    // Store to the HILOW database:
    dbsqliteHiLowStoreSample(time(NULL), &work->loopPkt);

    return OK;
}