get-ch-clear

wayland/as7343-spectrometer/get-ch-clear

Get the most recent measurement from the "clear" (unfiltered) channel.
get-ch-clear
@/get-ch-clear
Get the most recent measurement from the "clear" (unfiltered) channel.
DEV@/as7343-device
An as7343-device.
UPDpulse
Update.
get-ch-clear
DEV
UPD
VALUE
DONE
DONEpulse
Pulse on read.
VALUEnumber
Raw measurement from the "clear" (unfiltered) channel.
To use the node in your project you should have the wayland/as7343-spectrometer 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);

       uint16_t cl, cl0, cl1, avg;
       cl = sensor->getChannel(AS7343_CHANNEL_CLEAR);
       cl0 = sensor->getChannel(AS7343_CHANNEL_CLEAR_0);
       cl1 = sensor->getChannel(AS7343_CHANNEL_CLEAR_1);

       avg = round((cl+cl0+cl1)/3);

       emitValue<output_VALUE>(ctx, avg);

       emitValue<output_DONE>(ctx, 1);

    }
}