Reliable, secure and time-synchronised data exchange for autonomous vehicles—both inside a vehicle (threads in one process) and between vehicles (raw-Ethernet broadcast).
Stage | Core Feature |
---|---|
P1 | Raw-socket Ethernet stack (SocketEngine , NIC , Protocol , Communicator ) |
P2 | Shared-memory / in-process routing |
P3 | Time-triggered publish–subscribe (Interest/Response) |
P4 | PTP-based clock sync + message MAC authentication |
P5 | Virtual collision domains & RSU key exchange |
P6 | Performance optimisations |
P7 | Integration with real world data |
- Intra-vehicle messages are sent by the
Agent
to theCAN BUS
and routed to the otherAgents
. - Inter-vehicle messages are sent by the
Agent
to theCAN BUS
, routed to theGateway
where they go down the stack and are broadcasted. - Dual Observer patterns decouple layers and provide thread-safe delivery.
Path | Contents |
---|---|
include/ |
Public headers (framework, network, utilities, components) |
doc/ |
Design docs, UML, sequence diagrams, implementation plans |
tests/ |
Unit, integration and system tests (dummy interface test-dummy0 ) |
tools/ |
Analysis & helper scripts (latency, threads, trajectories) |
config/ |
Dockerfile, Doxygen config, map configs |
# Build library and run ALL tests (unit → integration → system)
make
The build creates a dummy network interface; real interfaces remain untouched.
- 🌐 Online API docs (GitHub Pages) — auto-generated Doxygen:
https://jcconnects.github.io/UFSC-INE5424/ - 📚 System architecture & implementation details:
doc/README.md
- 📚 Test environment:
tests/README.md
- 🎞️ Stage slides:
doc/slides.md
- 🏠 Project root overview: this file.
Created for the Operating Systems II course (INE5424) at UFSC.
MIT © 2025 César Augusto Pereira de souza, Enzo Nicolás Spotorno Bieger, João Pedro Perez Resmer & João Pedro Schmidt Cordeiro