74 void getStatus(
char* buffer,
size_t bufferSize)
const;
84 std::unique_ptr<FreeRtosEventBus> m_eventBus;
87 std::unique_ptr<TicketService> m_ticketService;
90 std::unique_ptr<Gate> m_entryGateHw;
91 std::unique_ptr<Gate> m_exitGateHw;
94 std::unique_ptr<EntryGateController> m_entryGate;
95 std::unique_ptr<ExitGateController> m_exitGate;
Entry gate controller with state machine.
Definition EntryGateController.h:37
Exit gate controller with state machine.
Definition ExitGateController.h:35
Concrete gate implementation using GPIO.
Definition Gate.h:15
Interface for event bus.
Definition IEventBus.h:12
Interface for ticket service.
Definition ITicketService.h:13
Configuration for the parking garage system.
Definition ParkingGarageConfig.h:12
Main parking garage system orchestrator.
Definition ParkingGarageSystem.h:23
Gate & getExitGateHardware()
Get exit gate hardware reference (for console commands)
Definition ParkingGarageSystem.h:69
EntryGateController & getEntryGate()
Get entry gate controller reference.
Definition ParkingGarageSystem.h:54
void reset()
Reset system to initial state Resets all controllers and ticket service to clean state.
Definition ParkingGarageSystem.cpp:100
void getStatus(char *buffer, size_t bufferSize) const
Get system status string.
Definition ParkingGarageSystem.cpp:82
ExitGateController & getExitGate()
Get exit gate controller reference.
Definition ParkingGarageSystem.h:59
~ParkingGarageSystem()=default
ParkingGarageSystem & operator=(const ParkingGarageSystem &)=delete
ITicketService & getTicketService()
Get ticket service reference.
Definition ParkingGarageSystem.h:49
void initialize()
Initialize system and start event processing.
Definition ParkingGarageSystem.cpp:55
Gate & getEntryGateHardware()
Get entry gate hardware reference (for console commands)
Definition ParkingGarageSystem.h:64
IEventBus & getEventBus()
Get event bus reference.
Definition ParkingGarageSystem.h:44
ParkingGarageSystem(const ParkingGarageSystem &)=delete