public PTZInfo GetPTZInfo(string devIp, int devPort, string userName, string password) { PTZInfo ptzInfo = new PTZInfo(); int userId = -1; DevLoginModel devLoginModel = DeviceLogin(devIp, devPort, userName, password); if (devLoginModel != null) { userId = devLoginModel.LoginId; } CHCNetSDK.NET_DVR_PTZPOS ptzPos = new CHCNetSDK.NET_DVR_PTZPOS(); uint dwReturn = 0; int nSize = Marshal.SizeOf(ptzPos); IntPtr ptrPtzCfg = Marshal.AllocHGlobal(nSize); Marshal.StructureToPtr(ptzPos, ptrPtzCfg, false); if (CHCNetSDK.NET_DVR_GetDVRConfig(userId, CHCNetSDK.NET_DVR_GET_PTZPOS, -1, ptrPtzCfg, (UInt32)nSize, ref dwReturn)) { ptzPos = (CHCNetSDK.NET_DVR_PTZPOS)Marshal.PtrToStructure(ptrPtzCfg, typeof(CHCNetSDK.NET_DVR_PTZPOS)); //成功获取显示ptz参数 ushort wPanPos = Convert.ToUInt16(Convert.ToString(ptzPos.wPanPos, 16)); ptzInfo.Pan = wPanPos * 0.1f; ushort wTiltPos = Convert.ToUInt16(Convert.ToString(ptzPos.wTiltPos, 16)); ptzInfo.Tilt = wTiltPos * 0.1f; ushort wZoomPos = Convert.ToUInt16(Convert.ToString(ptzPos.wZoomPos, 16)); ptzInfo.Zoom = wZoomPos * 0.1f; } Marshal.FreeHGlobal(ptrPtzCfg); return(ptzInfo); }
/// <summary> /// Updates context information. /// </summary> public override void UpdateContext() { PTZInfo info = new PTZInfo(); info.ServiceAddress = View.PTZAddress; info.MediaAddress = View.MediaAddress; ContextController.UpdatePTZInfo(info); }
/// <summary> /// Updates ptz information. /// </summary> /// <param name="info"></param> public static void UpdatePTZInfo(PTZInfo info) { _context.PTZInfo = info; }