ni / niveristand-communications-bus-template

Template custom device for using communications buses in VeriStand
http://www.ni.com
MIT License
0 stars 3 forks source link

Execution Unit.Async.vi could receive duplicate triggers if Inline EU in the PCL is too slow #129

Closed papowerNI closed 2 years ago

papowerNI commented 2 years ago

Describe the bug In Execution Unit.Async.vi, the triggers are received from the FromVS.FIFO, which is processed in the inline Execution unit, but currently the trigger FIFO Read has no timeout specified. FIFO Reads in LabVIEW return previous values if they timeout, so this could lead to the Async Execution unit repeating a trigger value if the Inline Execution unit is running too slow and not filling up the FIFO.

To Reproduce Steps to reproduce the behavior: This behavior was found in a custom device built with the Comm Bus Template, see https://github.com/ni/niveristand-ballard-arinc429-custom-device/issues/195 a fix has been put in to fix the issue in the NI Ballard ARINC 429 Custom Device, see https://github.com/ni/niveristand-ballard-arinc429-custom-device/pull/200

Expected behavior When a timeout on the Data Access Engine vis occurs, triggers should not be returned as valid triggers. Recommendation is to add a "valid triggers" input to the Execution Unit::Write to Hardware interface

Screenshots image

Desktop (please complete the following information):

Additional context None