68 lines
1.3 KiB
C
68 lines
1.3 KiB
C
|
#ifndef CARDBASE_H
|
||
|
#define CARDBASE_H
|
||
|
|
||
|
#include "data_config.h"
|
||
|
#ifdef NAME
|
||
|
#undef NAME
|
||
|
#endif
|
||
|
#define NAME(x) (x, #x)
|
||
|
|
||
|
class CardBase {
|
||
|
public:
|
||
|
CardBase() {}
|
||
|
~CardBase() {}
|
||
|
void FromJson(const Json::Value &cfg) {
|
||
|
version_ = cfg["version"].asInt();
|
||
|
slot_ = cfg["slot"].asInt();
|
||
|
card_type_ = static_cast<CardType>(cfg["type"].asInt());
|
||
|
}
|
||
|
|
||
|
Json::Value ToJson() {
|
||
|
Json::Value ch;
|
||
|
ch[NAME(version)] = version_;
|
||
|
ch[NAME(slot)] = slot_;
|
||
|
ch[NAME(type)] = card_type_;
|
||
|
return ch;
|
||
|
}
|
||
|
|
||
|
protected:
|
||
|
int version_;
|
||
|
int slot_; // 从1~15
|
||
|
CardType card_type_;
|
||
|
};
|
||
|
|
||
|
class VariableBase {
|
||
|
public:
|
||
|
VariableBase() {}
|
||
|
~VariableBase() {}
|
||
|
// TODO: fromjson, tojson
|
||
|
int id_;
|
||
|
VibChannelType type_;
|
||
|
Delay delay_;
|
||
|
DirectImpl direct_;
|
||
|
XImpl x1_;
|
||
|
XImpl x2_;
|
||
|
RecorderOut recorder_out_;
|
||
|
};
|
||
|
|
||
|
// 位移
|
||
|
class RadialVariable : public VariableBase {
|
||
|
public:
|
||
|
bool alert_latching_;
|
||
|
bool danger_latching_;
|
||
|
RadialImpl not1x_;
|
||
|
RadialImpl smax_;
|
||
|
};
|
||
|
|
||
|
// 加速度与速度
|
||
|
class AccVelVariable : public VariableBase {
|
||
|
public:
|
||
|
bool alert_latching_;
|
||
|
bool danger_latching_;
|
||
|
bool timed_ok_;
|
||
|
bool rms_active_;
|
||
|
bool integrate_active_;
|
||
|
};
|
||
|
|
||
|
#endif // CARDBASE_H
|