How ngxx-fus/zonalarchecu_w_someip works
This is the Front-ZECU firmware for a scale-model zonal vehicle: it starts concurrent runtime services, communicates over Ethernet using SOME/IP-oriented components, and provides local motor and sensor interfaces. Its domain workflow spans receiving/producing zonal messages, routing control and status by ECU role, sensing distance/location, and driving motors; heartbeat and test services are also configured. A separate Python monitor listens for UDP state packets, decodes sensor/motor data, tracks timing and sequence errors, and plots results. The sampled source confirms service dispatch, routing-table contents, authentication behavior, and monitor parsing; lower-level module wiring is not fully evidenced.
Main entry points: Service.c Service startup · EthernetW5500/Module.c Ethernet runtime · CCU_ListenFromZECU.py UDP state monitor · HBridge/Module.c Motor runtime
Components 22
Runtime startup
- ZECU application
main/MainApp.c - Service startup
components/AppRT/StartUp/Service.c - Heartbeat service
components/AppRT/HeartBeat/Module.c - Test service
components/AppRT/TestModule/TestModule.c
Communication
- SOME/IP module
components/AppRT/SOMEIP/Module.c - SOME/IP packets
components/AppRT/SOMEIP/SOMEIP.c - Ethernet runtime
components/AppComm/EthernetW5500/Module.c - W5500 driver
components/AppComm/EthernetW5500/EthernetW5500.c - Packet queue
components/AppComm/EthernetW5500/PacketQueue.c - Routing policy
components/AppRT/Routing/RoutingMatrix.c - Sync frames
components/AppRT/Routing/SyncFrame.c
Vehicle I/O
- Motor runtime
components/AppComm/HBridge/Module.c - H-bridge control
components/AppComm/HBridge/HBridge.c - Distance sensing
components/AppComm/UltraSonic/Module.c - Location service
components/AppComm/LocationATGM336H/Module.c
Base and config
- Node authentication
components/AppBase/NodeAuth.c - Communication config
components/AppConfig/Comm/Comm.c
Monitoring
- UDP state monitor
python_test/CCU_ListenFromZECU.py - Telemetry plots
python_test/CCU_ListenFromZECU.py
Other components
- Vehicle sensors and motors
- Vehicle network
- Monitor operator
Connections 22
- ZECU application → Service startup: initializes
- Service startup → Ethernet runtime: starts task
- Service startup → Motor runtime: starts task
- Service startup → Distance sensing: starts task
- Service startup → Heartbeat service: starts task
- Service startup → Location service: starts task
- Service startup → Test service: starts task
- Ethernet runtime → Vehicle network: communicates
- W5500 driver → Vehicle network: Ethernet I/O
- Packet queue → Ethernet runtime: queues packets
- SOME/IP module → SOME/IP packets: uses packet logic
- Routing policy → Vehicle network: defines ECU directions
- Sync frames → Vehicle network: frames synchronization data
- Motor runtime → H-bridge control: controls
- H-bridge control → Vehicle sensors and motors: drives motors
- Distance sensing → Vehicle sensors and motors: reads distance
- Location service → Vehicle sensors and motors: reads location
- Node authentication → Vehicle network: authenticates nodes
- Communication config → Ethernet runtime: configures communication
- Vehicle network → UDP state monitor: sends UDP state
- Monitor operator → UDP state monitor: starts listener
- UDP state monitor → Telemetry plots: renders telemetry