设备网络SDK开发使用手册

NET_DVR_SENSOR_ALARM

模拟量上传数据结构体。

struct{
  DWORD    dwSize;
  DWORD    dwAbsTime;
  BYTE     byName[NAME_LEN];
  BYTE     bySensorChannel;
  BYTE     byType;
  BYTE     byAlarmType;
  BYTE     byAlarmMode;
  float    fValue;
  float    fOriginalValue;
  BYTE     byRes2[28];
}NET_DVR_SENSOR_ALARM, *LPNET_DVR_SENSOR_ALARM;

Members

dwSize
结构体大小
dwAbsTime
绝对时标信息,OSD显示信息
byName
传感器名称
bySensorChannel
模拟量通道
byType
模拟量类型,具体定义如下:
enum _SENSOR_TYPE_{
  SENSOR_TYPE_NONE           = 0,
  SENSOR_TYPE_TEMPERATURE    = 1,
  SENSOR_TYPE_HUMIDITY,
  SENSOR_TYPE_WINDSPEED,
  SENSOR_TYPE_GAS,
  SENSOR_AC_VOLTAGE,
  SENSOR_AC_CURRENT,
  SENSOR_DC_VOLTAGE,
  SENSOR_DC_CURRENT,
  SENSOR_WATER_PRESSURE,
  SENSOR_PRESSURE_TRANSMITTER,
  SENSOR_FLOW_TRANSMITTER,
  SENSOR_WATER_LEAKAGE,
  SENSOR_INTERGRATED_TEMPERATURE_DETECTOR,
  SENSOR_ISOLATION_TEMPERATURE_DETECTOR,
  SENSOR_RESIDUAL_CHLORINE,
  SENSOR_TYPE_UNKNOW         = 255
}SENSOR_TYPE
SENSOR_TYPE_NONE
SENSOR_TYPE_TEMPERATURE
温度
SENSOR_TYPE_HUMIDITY
湿度
SENSOR_TYPE_WINDSPEED
风速
SENSOR_TYPE_GAS
气体
SENSOR_AC_VOLTAGE
交流电压
SENSOR_AC_CURRENT
交流电流
SENSOR_DC_VOLTAGE
直流电压
SENSOR_DC_CURRENT
直流电流
SENSOR_WATER_PRESSURE
水压
SENSOR_PRESSURE_TRANSMITTER
压力变送器
SENSOR_FLOW_TRANSMITTER
流量变送器
SENSOR_WATER_LEAKAGE
漏水传感器
SENSOR_INTERGRATED_TEMPERATURE_DETECTOR
一体化温变
SENSOR_ISOLATION_TEMPERATURE_DETECTOR
隔离式温变
SENSOR_RESIDUAL_CHLORINE
在线余氯仪
SENSOR_TYPE_UNKNOW
未定义
byAlarmType
报警类型:1-上4,2-上3,3-上2,4-上1,5-下1,6-下2,7-下3,8-下4,0xff-故障报警,具体类型和当前报警模式有关。
byAlarmMode
报警模式,作为平台报警程度判断功能,共五种模式: 15-HHHH、14-HHHL、12-HHLL、8HLLL、0-LLLL,即:
1111- 上上上上
1110- 上上上下
1100- 上上下下
1000- 上下下下
0000- 下下下下
fValue
当前模拟量的值,当byAlarmType为0xff时该值无效
fOriginalValue
原始电流电压值,保留小数点后三位,具体值表示电流还是电压根据NET_DVR_SENSOR_INFO的bySensorStandard类型
byRes2
保留

Remarks

从绝对时标dwAbsTime解析得到“年月日时分秒”的算法如下所示:
#define GET_YEAR(_time_)          (((_time_)>>26) + 2000)
#define GET_MONTH(_time_)       (((_time_)>>22) & 15)
#define GET_DAY(_time_)           (((_time_)>>17) & 31)
#define GET_HOUR(_time_)         (((_time_)>>12) & 31)
#define GET_MINUTE(_time_)      (((_time_)>>6) & 63)
#define GET_SECOND(_time_)     (((_time_)>>0) & 63)

See Also

NET_DVR_SetDVRMessageCallBack_V30   NET_DVR_StartListen_V30

NET_DVR_GetDVRConfig