ni / niveristand-scan-engine-ethercat-custom-device

Provides NI Scan Engine, EtherCAT and Remote IO support for NI VeriStand
MIT License
16 stars 22 forks source link

Update Get ECAT IOVar Data.vi to address Bug 881503. #199

Closed NPowl closed 2 years ago

NPowl commented 2 years ago

TODO: Check the above box with an 'x' indicating you've read and followed CONTRIBUTING.md.

What does this Pull Request accomplish?

This Pull Request adds in functionality to address BUG 881503, which mutates the I/O variables for on a cRIO Real-Time target after 255 variables. This affects the ECAT driver if you have a lot of slaves connected as they're set in the I/O engine. The mutation turns the I/O variables from the form ni.vari.io//<IP address>/<variable> to the form ni.var.io//localhost/<variable>. This results in being unable to redeploy a sysdef with 255+ variables on third-party EtherCAT slaves as there is a mismatch in expected variable names without rebooting the target.

This PR changes the way that the I/O variables are stored to ensure that any inclusion of "localhost" in the storage of variables is replaced with the IP address.

Why should this Pull Request be merged?

Fixes a bug for users that are using a large number of EtherCAT slaves, such that they would have greater than 255 I/O variables on a CompactRIO target. This bug otherwise requires a full restart of the cRIO to be able to redeploy the sysdef.

What testing has been done?

Tested upon a VeriStand Sysdef that has 500+ I/O variables on third-party EtherCAT slaves. The variables are correctly stored in their ni.vari.io//<IP address>/<variable> form and it is possible to deploy, undeploy and re-deploy the SysDef correctly.

niveristand-diff-bot commented 2 years ago

Bleep bloop!

LabVIEW Diff Robot here with some diffs served up hot for your pull request.

Notice something funny? Help fix me on my GitHub repo.

SEECD Engine.lvlib--Get ECAT IOVar Data.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-scan-engine-ethercat-custom-device/PR-199/2022-02-24/05%3A59%3A18/SEECD%20Engine.lvlib--Get%20ECAT%20IOVar%20Data.vi.png)
niveristand-diff-bot commented 2 years ago

Bleep bloop!

LabVIEW Diff Robot here with some diffs served up hot for your pull request.

Notice something funny? Help fix me on my GitHub repo.

SEECD Engine.lvlib--Get ECAT IOVar Data.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-scan-engine-ethercat-custom-device/PR-199/2022-02-24/09%3A58%3A55/SEECD%20Engine.lvlib--Get%20ECAT%20IOVar%20Data.vi.png)
niveristand-diff-bot commented 2 years ago

Bleep bloop!

LabVIEW Diff Robot here with some diffs served up hot for your pull request.

Notice something funny? Help fix me on my GitHub repo.

SEECD Engine.lvlib--Get ECAT IOVar Data.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-scan-engine-ethercat-custom-device/PR-199/2022-03-17/08%3A44%3A02/SEECD%20Engine.lvlib--Get%20ECAT%20IOVar%20Data.vi.png)