设备网络SDK开发使用手册 |
模拟量上传数据结构体。
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;
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
从绝对时标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)
NET_DVR_SetDVRMessageCallBack_V30 NET_DVR_StartListen_V30