struct State {
};
{{ GENERATED_CODE }}
void evaluate(Context ctx) {
if (!isInputDirty<input_UPD>(ctx))
return;
const uint8_t port = getValue<input_PORT>(ctx);
if (!isValidDigitalPort(port)) {
emitValue<output_ERR>(ctx, 1);
return;
}
::pinMode(port, INPUT);
::digitalWrite(port, getValue<input_PULLUP>(ctx));
emitValue<output_SIG>(ctx, ::digitalRead(port));
emitValue<output_DONE>(ctx, 1);
}