/// <summary> /// 获取设备时间 /// </summary> /// <param name="userId">用户ID</param> /// <returns>返回设备时间字符串</returns> /// <remarks>获取失败返回空</remarks> public static string GetDeviceTime(int userId) { NET_DVR_TIME deviceTime = new NET_DVR_TIME(); uint dwSize = (uint)Marshal.SizeOf(deviceTime); IntPtr ptrIpParaCfgV40 = Marshal.AllocHGlobal((Int32)dwSize); Marshal.StructureToPtr(deviceTime, ptrIpParaCfgV40, false); uint dwReturn = 0; bool b = HikApi.NET_DVR_GetDVRConfig(userId, (uint)DwCommand.NET_DVR_GET_TIMECFG, 0, ptrIpParaCfgV40, dwSize, ref dwReturn); if (b) { deviceTime = (NET_DVR_TIME)Marshal.PtrToStructure(ptrIpParaCfgV40, typeof(NET_DVR_TIME)); return(string.Format("{0}-{1}-{2} {3}:{4}:{5}", deviceTime.dwYear, deviceTime.dwMonth, deviceTime.dwDay, deviceTime.dwHour, deviceTime.dwMinute, deviceTime.dwSecond)); } else { return(""); } }
/// <summary> /// 获取设备的配置信息 /// </summary> /// <param name="userId">登录设备的ID</param> /// <param name="dwCommand">设备配置命令 获取设备参数(扩展)-1100,获取时间参数-118</param> /// <param name="lChannel">通道号,不同的命令对应不同的取值,如果该参数无效则置为0xFFFFFFFF即可</param> /// <param name="lpOutBuffer">接收数据的缓冲指针 </param> /// <param name="dwOutBufferSize">接收数据的缓冲长度(以字节为单位),不能为0</param> /// <param name="lpBytesReturned">实际收到的数据长度指针,不能为NULL </param> /// <returns>TRUE表示成功,FALSE表示失败</returns> public static bool GetDVRConfig(int userId, uint dwCommand, int lChannel, IntPtr lpOutBuffer, uint dwOutBufferSize, ref uint lpBytesReturned) { return(HikApi.NET_DVR_GetDVRConfig(userId, dwCommand, lChannel, lpOutBuffer, dwOutBufferSize, ref lpBytesReturned)); }