A compact implementation of the UAVCAN/CAN protocol in C for high-integrity real-time embedded systems