#ifndef _DATA_H #define _DATA_H #include #include "user_config.h" #ifdef USER_MINLE_CHAN2 #define SLUICE_COUTN 1// 当前处理几口闸 #define SUBTOPIC_COUNT 2 // 订阅topic 数量 #else #define SLUICE_COUTN 1// 当前处理几口闸 #define SUBTOPIC_COUNT 1 // 订阅topic 数量 #endif #define WATER_COUTN 6// 当前接入n个流量计 #define SLUCIE_EXEC_COUNT 20// 闸门异常时间 #define VERSION "KRH-1.0.16" // #define AI_AOVERSION "KRH-1.0.16" //AIAO extern uint32_t g_ifconfig; extern uint32_t g_ifupdate; extern int g_cat1_log_enable ; typedef struct StrIndex_t { char str[10]; int index; } StrIndex_t; // 巴歇尔槽流量计 typedef struct ParShallInfo_t { double w; // 喉道宽 double c; double m; double minLeve; double maxLeve; double minFlow; double maxFlow; } ParShallInfo_t; typedef struct LeveInfo_t { uint16_t Y[100]; // 水位 uint16_t Key[100]; // 流量 } LeveInfo_t; // 水位流量关系表数据 typedef struct WaterLeveInfo_t { uint16_t X[100]; // 单位 mm LeveInfo_t Key[100]; } WaterLeveInfo_t; // 闸门信息 typedef struct SluiceData_t { int32_t gopen; // 读取到的开度 单位 mm / %0.1 int32_t sopen; // 设定开度 单位 mm / %0.1 int32_t lload; // 左荷重 单位 kg int32_t rload; // 右荷重 单位 kg int32_t ecode; // 编码器原始数据 int32_t currt; // 设备电流 int32_t error; // 错误编码 int32_t state; // 状态 } SluiceData_t; // 系统信息 typedef struct SysData_t { uint32_t Vbat;// 电池电压 char iccid[32] ; int16_t Csq;// 信号强度 int netState; // 网络状态 int ecdState; // 编码器状态 int flowState;// 流量计状态 int ldState; // 荷重状态 int scram; // 急停被按下 char fileName[64]; // 文件名 int fileSize; // 文件大小 } SysData_t; typedef struct SOFTRTC_t { uint8_t year; uint8_t month; uint8_t day; uint8_t hour; uint8_t minutes; uint8_t second; }SOFTRTC_t; // 水量参数 typedef struct InclinometerData_t { uint8_t dir; // 方向 uint32_t data;// 数据 } InclinometerData_t; // 测斜数据 typedef struct WaterData_t { int64_t ttWater; // 累计流量 单位 m3 int32_t thisFlow; // 瞬时流量 单位 m3 int32_t thisLevel; // 水位 int32_t thisSpeed; // 流速 int32_t thisPress; // 压力 int32_t thisTemp; // 温度 int retry ; // 重试次数 } WaterData_t; typedef enum Ctrl_Mode_t { CTRL_FOPEN = 0, CTRL_ZOPEN = 1 } Ctrl_Mode_t; typedef enum MotorType_t { MT_MG_1000, // 米格1000 MT_QH_V100, // 强华 1.0 版本 MT_QH_V200, // 强华 2.0 版本 MT_ZS_V100, // 中盛 4-20 ma MT_JZ_V200, // 金志 4-20 ma MT_DY_V100, // 大禹锥型阀 MT_KG_V100, // 开关量模块 MT_KR_V100, // 徐州正天闸位计 MT_ASC_A3, // A3驱动器 MT_ASC_WS, // 金昌无刷电机 } MotorType_t; typedef enum S4851Type_t { ST_MG_1000, // 米格1000 ST_QH_V100, // 强华 1.0 版本 ST_QH_V200, // 强华 2.0 版本 ST_ZS_V100, // 中盛4-20ma ST_AT_V100, // 奥图编码器 ST_DY_V100, // 大禹锥形阀 ST_KG_V100, // 开关量模块 ST_KR_V100, // 徐州正天闸位计 } S4851Type_t; typedef enum S4852Type_t { ST_RDS_600, // rds600 雷达流速一体机 ST_TDS_300, // tds300 超声波流量计 ST_HT_V100, // 华天液位计 ST_ZK_JSZK, // 精水中科多普勒 ST_DJX_100, // 丁家峡闸门 读取开度 ST_RDS_300, // 雷达流量计 ST_MI_600, // 鹦鸽嘴测斜仪 ST_HT_V200, // 华天压力计 } S4852Type_t; typedef enum SOFTFLOWType_t { NONE, WATER, PARSHALL// } SOFTFLOWType_t; typedef enum SiteType_t { SiteSluice, // 闸门站 SiteFlow, // 流量站 SiteSee, // 渗流渗压站 SiteColl, // 采集站 SiteServer, // 串口服务器 SiteLevel, // 水位站 SiteSkew // 测斜仪 } SiteType_t; typedef enum DownDataType_t { DownRun = 0, DownStop = 1, DownOpen = 2, DownClose = 3, DownRegistAns = 4, DownHeartAns = 5, // 心跳 DownUpdate = 6, // 升级 DownReboot = 7, // 重启 DownConfig = 8, // 修改参数 DownRead = 9, // 读取参数 DownFact = 10, // 读取参数 } DownDataType_t; extern const StrIndex_t cSiteType[]; // 通过邮箱传输给驱动层 typedef struct TypeIndexMail_t { uint16_t Type; uint16_t index; } TypeIndexMail_t; extern SluiceData_t SluiceData[SLUICE_COUTN]; extern WaterData_t WaterData[WATER_COUTN]; extern InclinometerData_t IncData[6]; extern SysData_t SysData; extern const WaterLeveInfo_t LeveInfo; extern const ParShallInfo_t ParShallTale[]; extern SOFTRTC_t g_SoftRtc; int cMotorGetType (char * str); int c4851GetType (char * str); int c4852GetType (char * str); int cU485GetType (char *str); // 读取控制模式 int cCtrlGetType (char * str); int cDownType2Index (char * str); int cSiteType2Index (char * str); void *GetVersion (void); #endif