init

wayland/vl6180x-time-of-flight/init

Initialize VL6180X device.
init
@/init
Initialize VL6180X device.
DEV@/vl6180x-device
A VL61080X device.
I2Cxod/i2c/i2c
I²C bus
INITpulse
Trigger for initialization. Default is to initialize on boot.
init
OK
DEV
I2C
INIT
OKpulse
Pulse if initialization successful.
To use the node in your project you should have the wayland/vl6180x-time-of-flight 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_INIT

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

        // Get a pointer to the `Adafruit_VL6180X` class instance
        auto sensor = getValue<input_DEV>(ctx);

        auto wire = getValue<input_I2C>(ctx);

        // Attempt to initialize VL6180X module; if attempt fails emit error
        if (!sensor->begin(wire)) {
            raiseError(ctx);
            return;
        }

        // Pulse that module initialized successfully
        emitValue<output_OK>(ctx, 1);
    }
}