示例#1
0
        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);
        }
示例#2
0
        /// <summary>
        /// Updates context information.
        /// </summary>
        public override void UpdateContext()
        {
            PTZInfo info = new PTZInfo();

            info.ServiceAddress = View.PTZAddress;
            info.MediaAddress   = View.MediaAddress;
            ContextController.UpdatePTZInfo(info);
        }
示例#3
0
 /// <summary>
 /// Updates ptz information.
 /// </summary>
 /// <param name="info"></param>
 public static void UpdatePTZInfo(PTZInfo info)
 {
     _context.PTZInfo = info;
 }