You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jan 9, 2023. It is now read-only.
Some UAVCAN implementations are more equal than others. The upcoming rewrite of Pyuavcan will be transport-agnostic, meaning that it is going to be architecturally compatible with UDP, and it will be extensible for other transport definitions that may come up in the future. Libuavcan and libcanard, on the other hand, are made to be CAN-only, non-transport-agnostic, due to historic reasons and also for reasons of resource optimization (it is expected that genericity will cost resources, which are limited on small CAN nodes).
Do we want the Rust implementation to be transport-agnostic or not?
The text was updated successfully, but these errors were encountered:
Having one protocol to rule them all would be cool 👍
Having UAVCAN supporting newer bus types would be very useful for applications with higher data rate requirements.
Also, UDP support would allow bridging UAVCAN between CAN/ethernet.
Therefore, I could have a CAN bus for small sensors and access them via TCP/IP.
Do we want the Rust implementation to be transport-agnostic or not?
I think Rust is a language where this is possible without many problems. The idea was to do this through the TransportInterface trait which can be implemented for different protocols. The idea is to use this to support static dispatch
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
There is a possibility that in the observable future, UAVCAN will support other transports besides CAN. The topic is reviewed in detail in this forum post: https://forum.uavcan.org/t/alternative-transport-protocols/324
Some UAVCAN implementations are more equal than others. The upcoming rewrite of Pyuavcan will be transport-agnostic, meaning that it is going to be architecturally compatible with UDP, and it will be extensible for other transport definitions that may come up in the future. Libuavcan and libcanard, on the other hand, are made to be CAN-only, non-transport-agnostic, due to historic reasons and also for reasons of resource optimization (it is expected that genericity will cost resources, which are limited on small CAN nodes).
Do we want the Rust implementation to be transport-agnostic or not?
The text was updated successfully, but these errors were encountered: