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

Update protocol classes after enhancements to encoding and decoding libraries #65

Closed dbendele closed 3 years ago

dbendele commented 3 years ago

What does this Pull Request accomplish?

Adds abstract class for ARINC 429 and concrete class for ARINC 429 32-bit word. This concrete class provides accessors for 32-bit word properties including Label, SDI, Parameters, SSM, and Parity. Additionally. the 32-bit word can be written or read. Supported parameter (en/de)codings are BNR, BCD, and Discrete. The 32-bit class will be used in the implementation of the Ballard ARINC 429 custom device.

Why should this Pull Request be merged?

These classes encode and decode ARINC 429 32-bit words and can be used in Engine, System Explorer, and Scripting.

What testing has been done?

Local hand tests verify encoding and decoding of signed BNR and signed and unsigned BCD parameters. Automated unit tests for concrete 32-bit Word class implemented for positive and negative (signed) BNR parameters and for multiparameter word including BNR and BCD parameters.

dbendele commented 3 years ago

@rtzoeller and @buckd, this is the second installment of that monstrosity of a PR I submitted (temporarily) just before Thanksgiving. This PR focuses on the changes made within the 32-bit class to add functionality and to consume changes made in Encoding and Decoding reuse library.

niveristand-diff-bot commented 3 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.

32-bit Word.lvclass--Decode Parameter from U32.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/32-bit%20Word.lvclass--Decode%20Parameter%20from%20U32.vi.png)
32-bit Word.lvclass--Encode Parameter in U32.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/32-bit%20Word.lvclass--Encode%20Parameter%20in%20U32.vi.png)
32-bit Word.lvclass--Initialize.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/32-bit%20Word.lvclass--Initialize.vi.png)
32-bit Word.lvclass--Read Parameter from Word.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/32-bit%20Word.lvclass--Read%20Parameter%20from%20Word.vi.png)
32-bit Word.lvclass--Read Parameters from Word.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/32-bit%20Word.lvclass--Read%20Parameters%20from%20Word.vi.png)
32-bit Word.lvclass--Update Label.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/32-bit%20Word.lvclass--Update%20Label.vi.png)
32-bit Word.lvclass--Update Parameter.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/32-bit%20Word.lvclass--Update%20Parameter.vi.png)
32-bit Word.lvclass--Update SDI.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/32-bit%20Word.lvclass--Update%20SDI.vi.png)
32-bit Word.lvclass--Update SSM.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/32-bit%20Word.lvclass--Update%20SSM.vi.png)
32-bit Word.lvclass--Write Parameter to Word (U32).vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/32-bit%20Word.lvclass--Write%20Parameter%20to%20Word%20(U32).vi.png)
32-bit Word.lvclass--Write Parameter to Word.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/32-bit%20Word.lvclass--Write%20Parameter%20to%20Word.vi.png)
32-bit Word.lvclass--Write Parameters to Word.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/32-bit%20Word.lvclass--Write%20Parameters%20to%20Word.vi.png)
32-bit Word.lvclass--Write Parity Bit.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/32-bit%20Word.lvclass--Write%20Parity%20Bit.vi.png)
ARINC 429.lvclass--Read Parameter from Word.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/ARINC%20429.lvclass--Read%20Parameter%20from%20Word.vi.png)
ARINC 429.lvclass--Read Parameters from Word.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/ARINC%20429.lvclass--Read%20Parameters%20from%20Word.vi.png)
ARINC 429.lvclass--Update Label.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/ARINC%20429.lvclass--Update%20Label.vi.png)
ARINC 429.lvclass--Write Parameter to Word.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/ARINC%20429.lvclass--Write%20Parameter%20to%20Word.vi.png)
ARINC 429.lvclass--Write Parameters to Word.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/ARINC%20429.lvclass--Write%20Parameters%20to%20Word.vi.png)
ARINC 429.lvclass--Write Parity Index.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/ARINC%20429.lvclass--Write%20Parity%20Index.vi.png)
Tests.lvclass--setUp.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/Tests.lvclass--setUp.vi.png)
Tests.lvclass--tearDown.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/Tests.lvclass--tearDown.vi.png)
Tests.lvclass--test Multiparameter Datetime.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/Tests.lvclass--test%20Multiparameter%20Datetime.vi.png)
Tests.lvclass--test Negative (Signed) BNR Parameter.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/Tests.lvclass--test%20Negative%20(Signed)%20BNR%20Parameter.vi.png)
Tests.lvclass--test Positive (Signed) BNR Parameter.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/17%3A40%3A10/Tests.lvclass--test%20Positive%20(Signed)%20BNR%20Parameter.vi.png)
dbendele commented 3 years ago

Notes to reviewers


32-bit Word.lvclass--Initialize.vi

ARINC 429.lvclass

ARINC 429.lvclass--Write Parity Index.vi

niveristand-diff-bot commented 3 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.

32-bit Word.lvclass--Decode Parameter from U32.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/32-bit%20Word.lvclass--Decode%20Parameter%20from%20U32.vi.png)
32-bit Word.lvclass--Encode Parameter in U32.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/32-bit%20Word.lvclass--Encode%20Parameter%20in%20U32.vi.png)
32-bit Word.lvclass--Initialize.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/32-bit%20Word.lvclass--Initialize.vi.png)
32-bit Word.lvclass--Read Parameter from Word.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/32-bit%20Word.lvclass--Read%20Parameter%20from%20Word.vi.png)
32-bit Word.lvclass--Read Parameters from Word.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/32-bit%20Word.lvclass--Read%20Parameters%20from%20Word.vi.png)
32-bit Word.lvclass--Update Label.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/32-bit%20Word.lvclass--Update%20Label.vi.png)
32-bit Word.lvclass--Update Parameter.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/32-bit%20Word.lvclass--Update%20Parameter.vi.png)
32-bit Word.lvclass--Update SDI.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/32-bit%20Word.lvclass--Update%20SDI.vi.png)
32-bit Word.lvclass--Update SSM.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/32-bit%20Word.lvclass--Update%20SSM.vi.png)
32-bit Word.lvclass--Write Parameter to Word (U32).vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/32-bit%20Word.lvclass--Write%20Parameter%20to%20Word%20(U32).vi.png)
32-bit Word.lvclass--Write Parameter to Word.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/32-bit%20Word.lvclass--Write%20Parameter%20to%20Word.vi.png)
32-bit Word.lvclass--Write Parameters to Word.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/32-bit%20Word.lvclass--Write%20Parameters%20to%20Word.vi.png)
32-bit Word.lvclass--Write Parity Bit.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/32-bit%20Word.lvclass--Write%20Parity%20Bit.vi.png)
ARINC 429.lvclass--Read Parameter from Word.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/ARINC%20429.lvclass--Read%20Parameter%20from%20Word.vi.png)
ARINC 429.lvclass--Read Parameters from Word.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/ARINC%20429.lvclass--Read%20Parameters%20from%20Word.vi.png)
ARINC 429.lvclass--Read Parity Index.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/ARINC%20429.lvclass--Read%20Parity%20Index.vi.png)
ARINC 429.lvclass--Update Label.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/ARINC%20429.lvclass--Update%20Label.vi.png)
ARINC 429.lvclass--Write Parameter to Word.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/ARINC%20429.lvclass--Write%20Parameter%20to%20Word.vi.png)
ARINC 429.lvclass--Write Parameters to Word.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/ARINC%20429.lvclass--Write%20Parameters%20to%20Word.vi.png)
ARINC 429.lvclass--Write Parity Index.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/ARINC%20429.lvclass--Write%20Parity%20Index.vi.png)
Tests.lvclass--setUp.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/Tests.lvclass--setUp.vi.png)
Tests.lvclass--tearDown.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/Tests.lvclass--tearDown.vi.png)
Tests.lvclass--test Multiparameter Datetime.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/Tests.lvclass--test%20Multiparameter%20Datetime.vi.png)
Tests.lvclass--test Negative (Signed) BNR Parameter.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/Tests.lvclass--test%20Negative%20(Signed)%20BNR%20Parameter.vi.png)
Tests.lvclass--test Positive (Signed) BNR Parameter.vi.png ![capture](https://raw.githubusercontent.com/niveristand-diff-bot/diff-images/master/NI/niveristand-communications-bus-template/PR-65/2020-11-30/20%3A54%3A06/Tests.lvclass--test%20Positive%20(Signed)%20BNR%20Parameter.vi.png)
rtzoeller commented 3 years ago

@dbendele feel free to merge after addressing the required items, and reviewing the optional feedback.

I love the diagram/Wikipedia example in the Multiparameter Datetime test.

Required Feedback


Optional Feedback

This VI isn't part of this PR, but I needed to look at it to understand the PR changes and therefore am including feedback for them.

dbendele commented 3 years ago

Optional Feedback

This VI isn't part of this PR, but I needed to look at it to understand the PR changes and therefore am including feedback for them.

  • [ ] Encoding and Decoding.lvlib:Update Bit Field.vim can use the Assert Unsigned Integer Type.vim malleable provided by LabVIEW, instead of reimplementing it.

will submit separate PR