Parking Garage Control System
ESP32 Parking Garage – ESP-IDF/FreeRTOS
Loading...
Searching...
No Matches
Event.h
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4#include <variant>
5
9enum class EventType {
10 // Hardware Events (from GPIO interrupts)
17
18 // System Events
24
25 // State Events (for logging/monitoring)
32
33 // Timer Events
35};
36
40using EventPayload = std::variant<std::monostate, uint32_t, bool>;
41
45struct Event {
47 uint64_t timestamp;
49
52 , timestamp(0)
53 , payload(std::monostate{}) {}
54
55 Event(EventType t, uint64_t ts = 0, EventPayload p = std::monostate{})
56 : type(t)
57 , timestamp(ts)
58 , payload(p) {}
59};
60
64inline const char* eventTypeToString(EventType type) {
65 switch (type) {
67 return "EntryButtonPressed";
69 return "EntryButtonReleased";
71 return "EntryLightBarrierBlocked";
73 return "EntryLightBarrierCleared";
75 return "ExitLightBarrierBlocked";
77 return "ExitLightBarrierCleared";
79 return "CapacityAvailable";
81 return "CapacityFull";
83 return "TicketIssued";
85 return "TicketValidated";
87 return "TicketRejected";
89 return "EntryBarrierOpened";
91 return "EntryBarrierClosed";
93 return "ExitBarrierOpened";
95 return "ExitBarrierClosed";
97 return "CarEnteredParking";
99 return "CarExitedParking";
101 return "BarrierTimeout";
102 default:
103 return "Unknown";
104 }
105}
EventType
Event types in the parking system.
Definition Event.h:9
@ EntryButtonPressed
@ CarEnteredParking
@ EntryButtonReleased
@ EntryLightBarrierCleared
@ CapacityAvailable
@ EntryBarrierOpened
@ EntryLightBarrierBlocked
@ ExitLightBarrierCleared
@ ExitLightBarrierBlocked
@ EntryBarrierClosed
@ ExitBarrierClosed
@ ExitBarrierOpened
@ CarExitedParking
const char * eventTypeToString(EventType type)
Get string representation of EventType.
Definition Event.h:64
std::variant< std::monostate, uint32_t, bool > EventPayload
Event payload types.
Definition Event.h:40
EventType
Definition hal_state_machine.h:16
@ EntryButtonPressed
Event structure.
Definition Event.h:45
Event()
Definition Event.h:50
uint64_t timestamp
Definition Event.h:47
Event(EventType t, uint64_t ts=0, EventPayload p=std::monostate{})
Definition Event.h:55
EventType type
Definition Event.h:46
EventPayload payload
Definition Event.h:48
Coverage