#ifndef TRIGGERELEMENT_H
|
#define TRIGGERELEMENT_H
|
|
#include <mutex>
|
#include <opencv2/opencv.hpp>
|
#include <basic/pipe/TimerElement.h>
|
#include <atomic>
|
|
enum TriggerType {
|
UP = 0, DOWN
|
};
|
|
class TriggerElement : public basic::PipeElement {
|
|
public:
|
TriggerElement(long tolerance = 0, long delay = 0);
|
|
virtual ~TriggerElement();
|
|
bool getState() const;
|
|
void setState(bool value);
|
|
TriggerType getTriggerType() const;
|
|
void triggerOnce();
|
|
void triggerOnce(bool);
|
|
bool getTriggerState() const;
|
|
void resetTriggerState();
|
|
private:
|
bool state;
|
bool triggerState;
|
long tolerance;
|
long delay;
|
long lastDown;
|
long lastUp;
|
long triggerTimes;
|
TriggerType triggerType;
|
|
private:
|
|
virtual void threadInitial() override;
|
|
virtual void timerFunc();
|
|
virtual void threadClosing() override;
|
};
|
|
#endif // TRIGGERELEMENT_H
|