281 lines
4.5 KiB
C
281 lines
4.5 KiB
C
#ifndef _DATA_H
|
|
#define _DATA_H
|
|
#include <stdint.h>
|
|
#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
|
|
|