measure-raw

wayland/sgp40-air-quality-sensor/measure-raw

Make a raw gas measurement.
measure-raw
@/measure-raw
Make a raw gas measurement.
DEV@/sgp40-device
An SGP40 device.
TempCnumber
Temperature (Celsius). Used in temperature compensation. Connect to a temperature sensor or specify a value a temperature sensor is not available.
RHnumber
Relative humidity (%). Used in humidity compensation. Connect to a relative humidity sensor or specify a value if a sensor is not available.
UPDpulse
Update.
measure-raw
DEV
TempC
RH
UPD
Raw
Done
Donepulse
Pulse on measurement.
Rawnumber
The current raw gas measurement
To use the node in your project you should have the wayland/sgp40-air-quality-sensor library installed. Use the “File → Add Library” menu item in XOD IDE if you don’t have it yet. See Using libraries for more info.

C++ implementation

#pragma XOD evaluate_on_pin disable
#pragma XOD evaluate_on_pin enable input_UPD

node {

    void evaluate(Context ctx) {
        // The node responds only if there is an input pulse
        if (!isInputDirty<input_UPD>(ctx))
            return;

        auto sensor = getValue<input_DEV>(ctx);

        float tempC = getValue<input_TempC>(ctx);
        float rh = getValue<input_RH>(ctx);
        auto raw = sensor->measureRaw(tempC, rh);

        emitValue<output_Raw>(ctx, raw);
        emitValue<output_Done>(ctx, 1);

    }
}