#ifndef ICE_BP_SHM_H #define ICE_BP_SHM_H //#include #include #include #include #include #include #include #define SHM_PATH "/" #define SHM_PORT 8801 #define APP_NAME "ytCore" #define DB_PATH "/opt/db" #define CONF_DB "/opt/db/yt_conf.db" #define STA_DB "/opt/db/yt_sta.db" #define REC_DB "/opt/db/yt_rec.db" #define CORE_MAIN 1 #define DB_THREAD 2 #define LOG_THREAD 3 #define UPCOMM_THREAD 4 #define DNCOMM_THREAD_0 5 typedef struct { unsigned short YEAR; unsigned char MONTH; unsigned char DAY; unsigned char HOUR; unsigned char MINUTE; unsigned char SECOND; unsigned int TIMESTAMP; }CurrentTime,FullTime; typedef struct { unsigned char IDX; //线程编号(1~63) unsigned char ENABLED; //使能标识(0:不使能;1:使能) unsigned short WAITSEC; //缓冲时长(1~65535,秒) unsigned int LASTFEED; //末次喂狗时间(时间戳,单位秒) }DogTime; typedef struct { DogTime dogTime[64]; }DogTimeList; //看门狗列表 typedef struct { unsigned char IDX; //通信端口编号(0~3) unsigned char ENABLED; //使能标识(0:不使能;1:使能) unsigned short CommType; //通信类型(可作为多协议扩展使用) char PATH[255]; //端口路径(地址) unsigned char UNSAVED; }Comm; typedef struct { unsigned char STATUS; //当前状态 unsigned int TIMESTAMP; //状态改变时间 bool SENT; //告警发送标识 unsigned char UNSAVED; }CommStatus; typedef struct { Comm comm[4]; }CommList; //通信端口列表(嵌入式线程数量宜小于16) typedef struct { CommStatus commStatus[4]; }CommStatusList; typedef struct { unsigned char COMM_IDX; //通信端口编号(0~3) unsigned char BUS_ADD; //总线内监控点(1~254,0、255保留) unsigned char ENABLED; //使能标识(0:不使能;1:使能) unsigned long SUB_TYPE; //子系统类别,0x00000001为火灾监控子系统,0x00000002为电气火灾监控子系统,0x00000004为消防水监控子系统,0x00000008为通道监控子系统,0x00000010为消防电源监控子系统 char NAME[220]; //监控点名词 unsigned char PNO_TYPE; //监控点物理类型, 0为不监控,1为开关量输入,2为模拟量输入,3为开关量输出,4为模拟量输出 unsigned char PNO_ALARM; //监控点告警级别,0为不告警,1为次要告警,2为重要告警 unsigned char PNO_VALUE; //监控点数据类别,开关量输入时,0表示数值0为开或告警,1为关或正常;1表示数值1为开或告警,0为关或者正常。模拟量输入时,0表示无告警上下限,1表示只有告警上限,2表示只有告警下限,3表示有告警上下限。开关量输出时,0表示电平型,1表示脉冲型 unsigned short PNO_DLY; //当监控点具有告警属性时,为告警延时0~65535秒,当监控点为脉冲型开关量输出时,为保持时间1~65535秒 unsigned char PNO_AD; //监控点为模拟量输入、输出时,表示AD转换精度 unsigned char OFFSET; //偏移量,对AD值进行修正,以减少误差 unsigned char OFFSET_FLAG; //偏移方向,1为负,0为正 float PNO_MAX; //当监控点为模拟量时,表示满量程AD值代表的实际最大值 float PNO_MIN; //当监控点为模拟量时,表示AD值为最小时的实际最小值 float ALARM_H; //模拟量监控点告警上限 float ALARM_L; //模拟量监控点告警下限 unsigned char UNSAVED; }SPoint; typedef struct { SPoint sPoint[4][256]; }SPointList; typedef struct { float REALTIME_VALUE; unsigned int REALTIME_TIMESTAMP; unsigned char ALARM_STATUS; unsigned int ALARM_TIMESTAMP; //状态改变时间 unsigned char ALARM_SENT; //告警发送标识 float MAX_VALUE; unsigned int MAX_TIMESTAMP; float MIN_VALUE; unsigned int MIN_TIMESTAMP; float TOTAL_VALUE; unsigned int COUNT; float AVE_VALUE; unsigned char UNSAVED; }SpStatus; typedef struct { SpStatus spStatus[4][256]; }SpStatusList; typedef struct { CurrentTime currentTime; DogTimeList dogTimeList; CommList commList; SPointList sPointList; CommStatusList commStatusList; SpStatusList spStatusList; }YT_UNIT_SHM; #endif // ICE_BP_SHM_H