| 设备网络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