85a628c79dd27c9a68448888e810399143386d94.svn-base 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. #ifndef ICE_BP_SHM_H
  2. #define ICE_BP_SHM_H
  3. //#include <QtCore>
  4. #include <stdbool.h>
  5. #include <sys/types.h>
  6. #include <sys/shm.h>
  7. #include <sys/ipc.h>
  8. #include <stdlib.h>
  9. #include <stdio.h>
  10. #define SHM_PATH "/"
  11. #define SHM_PORT 8801
  12. #define APP_NAME "ytCore"
  13. #define DB_PATH "/opt/db"
  14. #define CONF_DB "/opt/db/yt_conf.db"
  15. #define STA_DB "/opt/db/yt_sta.db"
  16. #define REC_DB "/opt/db/yt_rec.db"
  17. #define CORE_MAIN 1
  18. #define DB_THREAD 2
  19. #define LOG_THREAD 3
  20. #define UPCOMM_THREAD 4
  21. #define DNCOMM_THREAD_0 5
  22. typedef struct {
  23. unsigned short YEAR;
  24. unsigned char MONTH;
  25. unsigned char DAY;
  26. unsigned char HOUR;
  27. unsigned char MINUTE;
  28. unsigned char SECOND;
  29. unsigned int TIMESTAMP;
  30. }CurrentTime,FullTime;
  31. typedef struct {
  32. unsigned char IDX; //线程编号(1~63)
  33. unsigned char ENABLED; //使能标识(0:不使能;1:使能)
  34. unsigned short WAITSEC; //缓冲时长(1~65535,秒)
  35. unsigned int LASTFEED; //末次喂狗时间(时间戳,单位秒)
  36. }DogTime;
  37. typedef struct {
  38. DogTime dogTime[64];
  39. }DogTimeList; //看门狗列表
  40. typedef struct {
  41. unsigned char IDX; //通信端口编号(0~3)
  42. unsigned char ENABLED; //使能标识(0:不使能;1:使能)
  43. unsigned short CommType; //通信类型(可作为多协议扩展使用)
  44. char PATH[255]; //端口路径(地址)
  45. unsigned char UNSAVED;
  46. }Comm;
  47. typedef struct {
  48. unsigned char STATUS; //当前状态
  49. unsigned int TIMESTAMP; //状态改变时间
  50. bool SENT; //告警发送标识
  51. unsigned char UNSAVED;
  52. }CommStatus;
  53. typedef struct {
  54. Comm comm[4];
  55. }CommList; //通信端口列表(嵌入式线程数量宜小于16)
  56. typedef struct {
  57. CommStatus commStatus[4];
  58. }CommStatusList;
  59. typedef struct {
  60. unsigned char COMM_IDX; //通信端口编号(0~3)
  61. unsigned char BUS_ADD; //总线内监控点(1~254,0、255保留)
  62. unsigned char ENABLED; //使能标识(0:不使能;1:使能)
  63. unsigned long SUB_TYPE; //子系统类别,0x00000001为火灾监控子系统,0x00000002为电气火灾监控子系统,0x00000004为消防水监控子系统,0x00000008为通道监控子系统,0x00000010为消防电源监控子系统
  64. char NAME[220]; //监控点名词
  65. unsigned char PNO_TYPE; //监控点物理类型, 0为不监控,1为开关量输入,2为模拟量输入,3为开关量输出,4为模拟量输出
  66. unsigned char PNO_ALARM; //监控点告警级别,0为不告警,1为次要告警,2为重要告警
  67. unsigned char PNO_VALUE; //监控点数据类别,开关量输入时,0表示数值0为开或告警,1为关或正常;1表示数值1为开或告警,0为关或者正常。模拟量输入时,0表示无告警上下限,1表示只有告警上限,2表示只有告警下限,3表示有告警上下限。开关量输出时,0表示电平型,1表示脉冲型
  68. unsigned short PNO_DLY; //当监控点具有告警属性时,为告警延时0~65535秒,当监控点为脉冲型开关量输出时,为保持时间1~65535秒
  69. unsigned char PNO_AD; //监控点为模拟量输入、输出时,表示AD转换精度
  70. unsigned char OFFSET; //偏移量,对AD值进行修正,以减少误差
  71. unsigned char OFFSET_FLAG; //偏移方向,1为负,0为正
  72. float PNO_MAX; //当监控点为模拟量时,表示满量程AD值代表的实际最大值
  73. float PNO_MIN; //当监控点为模拟量时,表示AD值为最小时的实际最小值
  74. float ALARM_H; //模拟量监控点告警上限
  75. float ALARM_L; //模拟量监控点告警下限
  76. unsigned char UNSAVED;
  77. }SPoint;
  78. typedef struct {
  79. SPoint sPoint[4][256];
  80. }SPointList;
  81. typedef struct {
  82. float REALTIME_VALUE;
  83. unsigned int REALTIME_TIMESTAMP;
  84. unsigned char ALARM_STATUS;
  85. unsigned int ALARM_TIMESTAMP; //状态改变时间
  86. unsigned char ALARM_SENT; //告警发送标识
  87. float MAX_VALUE;
  88. unsigned int MAX_TIMESTAMP;
  89. float MIN_VALUE;
  90. unsigned int MIN_TIMESTAMP;
  91. float TOTAL_VALUE;
  92. unsigned int COUNT;
  93. float AVE_VALUE;
  94. unsigned char UNSAVED;
  95. }SpStatus;
  96. typedef struct {
  97. SpStatus spStatus[4][256];
  98. }SpStatusList;
  99. typedef struct {
  100. CurrentTime currentTime;
  101. DogTimeList dogTimeList;
  102. CommList commList;
  103. SPointList sPointList;
  104. CommStatusList commStatusList;
  105. SpStatusList spStatusList;
  106. }YT_UNIT_SHM;
  107. #endif // ICE_BP_SHM_H