123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- #ifndef ICE_BP_SHM_H
- #define ICE_BP_SHM_H
- //#include <QtCore>
- #include <stdbool.h>
- #include <sys/types.h>
- #include <sys/shm.h>
- #include <sys/ipc.h>
- #include <stdlib.h>
- #include <stdio.h>
- #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
|