eis/inc/eqpalg/algs/AlgExpDelay.h

50 lines
1.2 KiB
C++

/******************************************************************************************************************
* Action instruction algorithm
*
* arg[0] action expression
* arg[1] feedback expression
* arg[2] expression of judgment result
*
* 1.0 2020-12-17 zoufuzhou
******************************************************************************************************************/
#ifndef _H_ALGORITHM_EXPRESSION_DELAY_H
#define _H_ALGORITHM_EXPRESSION_DELAY_H
#include <eqpalg/AlgCommonDefine.h>
#include <eqpalg/algs/AlgExp.h>
#include <iomanip>
#include <iostream>
#include <string>
class AlgExpDelay : virtual public AlgExp {
public:
AlgExpDelay(const string &name, const Json::Value &rulejson,
const string &ruleid, IHDBTools *ihdb);
virtual ~AlgExpDelay();
public:
virtual int Reload();
virtual int calculate(string &outjson);
private:
int calculate_once(string &outjson);
private:
MathExpression *exp_act_;
MathExpression *exp_feedback_;
bool result_exp_act_ = false;
bool result_exp_feedback_ = false;
bool prev_calc_result_;
bool keep_act_;
unsigned long act_feedback_time_;
unsigned long long begin_time_;
unsigned long long end_time_;
};
#endif