PathPlannerLib
Loading...
Searching...
No Matches
TriggerEvent.h
1#pragma once
2
3#include "pathplanner/lib/events/Event.h"
4#include "pathplanner/lib/events/EventTrigger.h"
5#include <string>
6
7namespace pathplanner {
8class TriggerEvent: public Event {
9public:
17 TriggerEvent(units::second_t timestamp, std::string name, bool active) : Event(
18 timestamp), m_name(name), m_active(active) {
19 }
20
21 inline void handleEvent(EventScheduler *eventScheduler) override {
22 EventTrigger::setCondition(m_name, m_active);
23 }
24
25 inline void cancelEvent(EventScheduler *eventScheduler) override {
26 if (!m_active) {
27 // Ensure this event's condition gets set to false
28 EventTrigger::setCondition(m_name, false);
29 }
30 }
31
32 inline std::shared_ptr<Event> copyWithTimestamp(units::second_t timestamp)
33 override {
34 return std::make_shared < TriggerEvent > (timestamp, m_name, m_active);
35 }
36
37private:
38 std::string m_name;
39 bool m_active;
40};
41}
Definition: EventScheduler.h:15
Definition: Event.h:10
Definition: TriggerEvent.h:8
TriggerEvent(units::second_t timestamp, std::string name, bool active)
Definition: TriggerEvent.h:17
void cancelEvent(EventScheduler *eventScheduler) override
Definition: TriggerEvent.h:25
std::shared_ptr< Event > copyWithTimestamp(units::second_t timestamp) override
Definition: TriggerEvent.h:32
void handleEvent(EventScheduler *eventScheduler) override
Definition: TriggerEvent.h:21