put-number

wayland/esp32-preferences/put-number

Store a number identifiable by Key in currently open namespace.
put-number
@/put-number
Store a number identifiable by Key in currently open namespace.
Prefs@/preferences
A preferences object.
Keystring
Key name. Limited to 15 chars.
Numnumber
Number to be stored.
UPDpulse
Update.
put-number
Prefs
Key
Num
UPD
Done
Donepulse
Pulse on write.
To use the node in your project you should have the wayland/esp32-preferences 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 prefs = getValue<input_Prefs>(ctx);
        auto xStringKey = getValue<input_Key>(ctx);
        float number = getValue<input_Num>(ctx);

        int N=length(xStringKey);
        if (N>15 || N<1) {
            raiseError(ctx);
            return;
        }
        N +=1;
        char cStringKey[N];
        for(int i=0;i<N;i++)
            cStringKey[i]=0;
        dump(xStringKey, cStringKey);

        prefs -> putFloat(cStringKey, number);

        emitValue<output_Done>(ctx, 1);
    }
}