Architecture
Understanding the service-oriented design of Nova Automation.
System Architecture
Nova Automation moves away from monolithic legacy designs, adopting a modern Micro-Modular Architecture. usage of distinct Windows Services ensures high availability and easier troubleshooting.
The Core
At the center is the Nova Core, a WPF-based application running on .NET 9.0. It handles:
- User Interface (Touch-optimized)
- Shift & User Management
- Reporting & Visuals
- Order Processing
Communication Layer (Windows Services)
Hardware interaction is offloaded to dedicated background services. If the UI restarts, pumps keep pumping.
⛽ Pump Communication Service
- Role: Manages real-time protocols (Gilbarco, S4 Dart).
- Function: Polls pumps for state (Idle, Call, Busy), sends authorization commands, and captures transaction data.
- Resilience: Automatically attempts reconnection if serial cables are unplugged.
🛢️ Tank Management Service
- Role: Talks to Probes (e.g., Start Italiana).
- Function: Monitors fuel levels, temperature, and water presence. Handles volume calculation algorithms using tank calibration tables.
💳 Authorization Services
- RFID Service: Handles customer tags and pre-checks credit limits.
- Card Reader Service: Manages pump-integrated card readers (e.g., Stellar Gen2).
Data Flow
- Hardware sends data to Communication Service.
- Service writes "Hot Data" to the Local SQL Database.
- Nova Core reads the database to update the UI (via SignalR or Polling).
- Sync Service pushes visualized data to the Nexus Cloud.