In this PR we sort out power control and fully implement BMD remote protocol v0. This sees all the major components for remote protocol support fleshed out better - including the protocol traits so they return more suitable types, better handling of responses via a Response type that wraps a load of the decode and dispatch up neatly, and a bunch of other helper types such as one for handling u32's that also need to maintain their parity information, and another for properly handling ADI register encoding.
This also provides a test suite for part of the new remote protocol code to try and ensure that at least parts of this are known functional.
The branch this is on will be used for additional remote protocol development as this is the first of a series of 4 or 5 PRs implementing full remote protocol support into bmputil, so should be left after merge.
In this PR we sort out power control and fully implement BMD remote protocol v0. This sees all the major components for remote protocol support fleshed out better - including the protocol traits so they return more suitable types, better handling of responses via a Response type that wraps a load of the decode and dispatch up neatly, and a bunch of other helper types such as one for handling u32's that also need to maintain their parity information, and another for properly handling ADI register encoding.
This also provides a test suite for part of the new remote protocol code to try and ensure that at least parts of this are known functional.
The branch this is on will be used for additional remote protocol development as this is the first of a series of 4 or 5 PRs implementing full remote protocol support into bmputil, so should be left after merge.