struct State
{
Number lastUpdateTime;
};
{{ GENERATED_CODE }}
void evaluate(Context ctx)
{
State* state = getState(ctx);
Number tsec = transactionTime() / 1000.0;
if (isInputDirty<input_RST>(ctx))
emitValue<output_OUT>(ctx, 0);
else if (getValue<input_EN>(ctx) && isInputDirty<input_UPD>(ctx))
emitValue<output_Tsec>(ctx, getValue<output_Tsec>(ctx) + (tsec - state->lastUpdateTime)) ;
state->lastUpdateTime = tsec;
}