TSI_Config/data_config.h
2025-04-02 14:28:53 +08:00

245 lines
5.1 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef DATA_CONFIG_H
#define DATA_CONFIG_H
#include <QString>
#include <QPushButton>
#include <QLabel>
#include <QList>
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
extern QString g_strServerIp; // 服务端IP
#define SLOT_NUM 15
#define CHANNEL_COUNT 4
typedef enum {
kCardNone = 0,
kCardCpu = 1,
kCardVibSingle = 10,
kCardVibTMRPrimary = 11,
kCardVibTMRBackup = 12,
kCardSpeedSingle = 20,
kCardSpeedTMRPrimary = 21,
kCardSpeedTMRBackup = 22,
kCardKeyphase = 30,
kCardRelaySingle = 31,
kCardRelayTMRPrimary = 32,
kCardRelayTMRBackup = 33,
} CardType;
// 振动板通道类型
typedef enum {
kVibRadial = 0, // 径向位移
kVibAcc = 1, // 加速度
kVibVelocity = 2 // 速度
} VibChannelType;
typedef struct {
int slot;
QString slot_type;
QString chan_display;
QString rack_type;
QPushButton *slot_btn;
QLabel *slot_label;
} SlotConfig;
enum CMTCommand {
kEigenvalueCmd = 1,
kExceptionInfo = 2,
kUpgradeCard = 3,
kGetVersionInfo = 4,
kRelaySetting = 5,
kRelayStatus = 6,
kUpgradeProgress = 7
};
// 振动板采样率
typedef enum {
kVibSR16K = 0, // 16k
kVibSR32K = 1, // 32k
kVibSR64k = 2, // 64k
kVibSR128K = 3, // 128k
} VibSamplingRate;
// 振动板机架类型
typedef enum {
kVibRackSingle = 0, // 单一
kVibRackTMR = 1 // 三冗余
} VibRackType;
typedef struct {
int id;
// QString channel_name;
bool standby;
bool active;
int rack_type; // VibRackType
// char tmr_group[32];
int channel_type; // VibChannelType
int transducer_id;
float scale_factor;
int sampling_rate; // VibSamplingRate
float normal_voltage_low;
float normal_voltage_high;
} SeismicMonitor;
typedef enum {
kFilterTypeLowPass = 0,
kFilterTypeHighPass = 1,
kFilterTypeBandPass = 2,
} FilterType;
typedef struct {
int low;
int high;
bool checked;
} Filter;
//typedef struct {
// Filter filter[3]; // 0: kFilterTypeLowPass, 1: kFilterTypeHighPass, 2: kFilterTypeBandPass
//} AllFilter;
typedef struct {
QString type;
int full_sacle_range;
int bias_voltage;
float clamp_value;
int phase_lag;
bool checked;
float custom;
} Variables;
typedef struct {
int full_scale_range;
float clamp_value;
float custom;
} DirectImpl;
typedef struct {
bool checked;
int full_scale_range;
float clamp_value;
float custom;
int phase_lag;
} XImpl;
typedef struct {
bool checked;
int full_scale_range;
float clamp_value;
float custom;
} RadialImpl;
typedef struct {
int alert;
float danger;
bool active_100ms;
} Delay;
typedef struct {
bool rms_active;
bool integrate_active;
bool alert_latching;
bool danger_latching;
bool timed_ok;
int recorder_output;
bool two_ma_clamp;
float trip_multiply;
QString comparision;
int comparision_percentage;
} Alert_Variables;
typedef struct {
int recorder_output;
bool two_ma_clamp;
float trip_multiply;
int comparision;
int percentage;
} RecorderOut;
typedef struct {
int id;
bool active;
float normal_voltage_low;
float normal_voltage_high;
int speed_peek;
int default_speed;
bool automatic_threshold;
float threshold;
float hysteresis;
int events_per_revolution;
int record_output;
bool two_ma_clamp;
bool alert_latching;
bool overspeed_latching;
bool normal_latching;
} TachometerVariables;
typedef struct {
bool active;
float normal_voltage_low;
float normal_voltage_high;
bool automatic_threshold;
float threshold;
float hysteresis;
int events_per_revolution;
} KeyphaseVariables;
typedef struct {
QString transducer_name;
double scale_factor;
} Transducer;
#pragma pack(1)
typedef struct {
uint8_t head[3]; // 固定值0xAA55AA
uint8_t cmd; // 命令
int len; // 数据长度
uint8_t crc; // 数据 CRC 校验和
char data[0]; // 文件内容
} PackageHead;
typedef struct {
uint8_t card_id; // 0xff是本机其它子卡是115
char data[0];
} UpgradeCardReq;
typedef struct {
uint8_t code; // 0: 上传成功
} UpgradeRsp;
typedef struct {
uint8_t card_id; // 0xff是本机其它子卡是115
} GetVersionReq;
typedef struct {
uint8_t fpga; // fpga版本号
uint8_t sw; // 软件版本号
char fpga_data[9]; // fpga版本日期
} VersionRsp;
typedef struct {
uint8_t card_id; // 0xff是本机其它子卡是115
uint8_t led_id; // ok 灯 0xff,rx/tx 灯 0xf1,板卡测试模式 0xee,板卡状态 0xe1,其他 1 ~ 16
uint8_t led_operate; // 0 OFF,1 ON,2 红色,3 绿色,4 红色1Hz闪烁,5 红色2Hz闪烁,6 绿色闪烁,7 测试状态,8 手动状态,9 工作状态
} RelaySettingReq;
typedef struct {
uint8_t code;
} RelaySettingRsp;
typedef struct {
uint8_t card_id; // 0xff是本机其它子卡是115
} RelayStatusReq;
typedef struct {
uint8_t status; // 7 测试状态,8 手动状态,9 工作状态
} RelayStatusRsp;
#pragma pack()
#endif // DATA_CONFIG_H