yt_unit_shm.h 4.9 KB

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