read

wayland/rtc-zero/read

Read the real time clock.
read
@/read
Read the real time clock.
DEV@/rtc-zero-device
An rtc-zero device.
UPDpulse
Update
read
DEV
UPD
Year
Month
Day
Hour
Minute
Sec
Done
Donepulse
Pulse on read.
Secnumber
Seconds value in range [0, 59]
Minutenumber
Minutes value in range [0, 59]
Hournumber
Hours value in range [0, 23]
Daynumber
Days value in range [1, 28-31]
Monthnumber
Month value in range [1, 12]
Yearnumber
Year (YYYY).
To use the node in your project you should have the wayland/rtc-zero 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 rtc = getValue<input_DEV>(ctx);

        emitValue<output_Year>(ctx, rtc->getYear()+2000);
        emitValue<output_Month>(ctx, rtc->getMonth());
        emitValue<output_Day>(ctx, rtc->getDay());
        emitValue<output_Hour>(ctx, rtc->getHours());
        emitValue<output_Minute>(ctx, rtc->getMinutes());
        emitValue<output_Sec>(ctx, rtc->getSeconds());
        emitValue<output_Done>(ctx, 1);
    }
}