Impulse Nodes hängen nach Restart


#1

Hallo zusammen,

zwei Sachen zu den Impulse Nodes:

Bugreport:
Bei mir kommt es von Zeit zu Zeit vor, dass Impulse Nodes in Node-BLUE nach dem Neustart “hängen bleiben”. Da ich diese z.B. mit Tastern triggere, bekommen die nur ein “true” Signal. Schickt man den hängenden Nodes einmal ein “false”, geht alles wieder wie gehabt.
Ich vermute, es liegt daran, dass bei einem Stop, wenn der Impulse noch aktiv ist, “delayTo” auf “0” gesetzt wird, “lastInputState” aber “true” bleibt. Ich finde, wenn der Node beim Start nicht aktiv ist, sollte er bei einem “true” Input auch auslösen. Ich würde also in der “start()” Methode das “_lastInputState = getNodeData(“lastInputState”)->booleanValue;” nur machen, wenn “delayTo > 0” ist und es sonst auf “false” setzen/lassen.

Feature Request:
Da ich, wie gesagt, oft mit Tastern triggere, wäre es auch cool, wenn man per Option anschalten könnte, dass ein erneutes “true” den Impuls restartet. Dann muss man nicht immer eine “false”-“true” Serie simmulieren. Ich mache das momentan mit einem vorgeschalteten Impulse Node mit sehr kurzer Impuls-Dauer. Das könnte ich mir sparen, wenn es eine entsprechende Option geben würde.

Viele Grüße
Leif


#2

Hallo @l3home,

ist gefixt und ich habe dir die Option eingebaut. Gute Analyse ;-).

Viele Grüße

Sathya


#3

Hi @sathya,

klasse, der Fix hilft schon mal weiter. VIelen Dank!

Die Option hilft leider noch nicht so viel. Nach Ablauf des Timers reicht eh ein “true”, weil da “_lastInputState” sowieso zurück auf “false” gesetzt wird. Ich wollte eigentlich, dass ein “true” auch während der Timer läuft die Zeit resetet. Spricht was dagegen das “BaseLib::HelperFunctions::getTime() > _delayTo.load(std::memory_order_acquire)” in der Bedingung einfach wegzulassen?

Viele Grüße
Leif


#4

Hab ich rausgenommen ;-).