Revolve NTNU's .NET Uavcan stack, used in our Telemetry and Analysis software Revolve Analyze. Includes a runtime dsdl interpeter and dynamic uavcan (de)serialization. This library does not configure your .NET project to be a live node on the UAVCAN Network. It only serves as a datalogger with the ability to write messages back. It includes a communication interface that has to be implemented in your communication module code.
The UAVCAN specification can be found here: UAVCAN Spec, this library currently supports version v1.0-beta.
There is a userguide available on the Github wiki, which is found here: Wiki. Here, each component is presented, as well as a quick-start guide to get you started!
Feel free to contribute to this library! Setting up the development environment is very straight forward. Just clone the repository and open the solution in Visual Studio and you should be good to go! More details can be found in the CONTRIBUTING file.
Please open an issue when you start on a new feature or a bugfix, and merge via a Pull Request. The Tribe branch is the main branch.
Tests can be exectured using dotnet test, and are writing using the MSTest v2 framework. More on this in the Wiki.
There are currently some limitations present in this implementation, some by choice, some not. These might get fixed as time passes.
- Does not consider @ commands in the DSDL
- Does not support serialization of Multiframe messages
- Multiframe reading does not work perfectly, suspect some threading issues
- Does not support dynamic array lengths
- All data is parsed as doubles, this is due to a design limitation in our Desktop Application Revolve Analyze.