struct State {
};
{{ GENERATED_CODE }}
void evaluate(Context ctx)
{
if (isInputDirty<input_UPD>(ctx))
{
const uint8_t port = getValue<input_PORT>(ctx);
Number lum = getValue<input_LUM>(ctx);
if (isValidDigitalPort(port) || lum>=0 || lum<=1)
{
int val = (int)(lum * lum * lum * 255);
if (!getValue<input_PULL>(ctx)) val = 255 - val;
// if port has not pwm, val >0.5 is High on digitalpin.
::analogWrite(port, val);
emitValue<output_DONE>(ctx, 1);
}
else
emitValue<output_ERR>(ctx, 1);
}
}