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> /// cameraget /// </summary> /// <param name="m_lUserID"></param> /// <returns></returns> public int[] sptz(int m_lUserID) { int[] xyz = new int[3]; UInt32 dwreturn = 0; CHCNetSDK.NET_DVR_PTZPOS x = new CHCNetSDK.NET_DVR_PTZPOS(); Int32 nSize = Marshal.SizeOf(x); IntPtr ptrPicCfg = Marshal.AllocHGlobal(nSize); Marshal.StructureToPtr(x, ptrPicCfg, false); bool re = CHCNetSDK.NET_DVR_GetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_PTZPOS, 1, ptrPicCfg, (UInt32)nSize, ref dwreturn); uint iLastErr = CHCNetSDK.NET_DVR_GetLastError(); x = (CHCNetSDK.NET_DVR_PTZPOS)Marshal.PtrToStructure(ptrPicCfg, typeof(CHCNetSDK.NET_DVR_PTZPOS)); loginfo.Info("NET_DVR_GetDVRConfig:" + iLastErr); xyz[0] = Convert.ToInt32(x.wPanPos); xyz[1] = Convert.ToInt32(x.wTiltPos); xyz[2] = Convert.ToInt32(x.wZoomPos); loginfo.Info("xyz:" + xyz[0] + xyz[1] + xyz[2]); return(xyz); }
private void PtzGet_Click(object sender, EventArgs e) { UInt32 dwReturn = 0; Int32 nSize = Marshal.SizeOf(m_struPtzCfg); IntPtr ptrPtzCfg = Marshal.AllocHGlobal(nSize); Marshal.StructureToPtr(m_struPtzCfg, ptrPtzCfg, false); //获取参数失败 if (!CHCNetSDK.NET_DVR_GetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_PTZPOS, -1, ptrPtzCfg, (UInt32)nSize, ref dwReturn)) { iLastErr = CHCNetSDK.NET_DVR_GetLastError(); str = "NET_DVR_GetDVRConfig failed, error code= " + iLastErr; MessageBox.Show(str); return; } else { m_struPtzCfg = (CHCNetSDK.NET_DVR_PTZPOS)Marshal.PtrToStructure(ptrPtzCfg, typeof(CHCNetSDK.NET_DVR_PTZPOS)); //成功获取显示ptz参数 ushort wPanPos = Convert.ToUInt16(Convert.ToString(m_struPtzCfg.wPanPos, 16)); float WPanPos = wPanPos * 0.1f; textBoxPanPos.Text = Convert.ToString(WPanPos); ushort wTiltPos = Convert.ToUInt16(Convert.ToString(m_struPtzCfg.wTiltPos, 16)); float WTiltPos = wTiltPos * 0.1f; textBoxTiltPos.Text = Convert.ToString(WTiltPos); ushort wZoomPos = Convert.ToUInt16(Convert.ToString(m_struPtzCfg.wZoomPos, 16)); float WZoomPos = wZoomPos * 0.1f; textBoxZoomPos.Text = Convert.ToString(WZoomPos); /*textBoxPanPos.Text= Convert.ToString(Convert.ToUInt32(Convert.ToString(m_struPtzCfg.wPanPos,16))*0.1f,10); * textBoxTiltPos.Text = Convert.ToString(Convert.ToUInt32(Convert.ToUInt32(Convert.ToString(m_struPtzCfg.wTiltPos, 16)) * 0.1f), 10); * textBoxZoomPos.Text = Convert.ToString(Convert.ToUInt32(Convert.ToString(m_struPtzCfg.wZoomPos, 16)) * 0.1), 10);*/ //textBoxPanPos.Text=Convert.ToString(m_struPtzCfg.wPanPos,16); } return; }
/// <summary> /// ameraset /// </summary> /// <param name="m_lUserID"></param> /// <param name="x1"></param> /// <param name="y"></param> /// <param name="z"></param> public void hqtz(int m_lUserID, int x1, int y, int z) { try { CHCNetSDK.NET_DVR_PTZPOS x = new CHCNetSDK.NET_DVR_PTZPOS(); Int32 nSize = Marshal.SizeOf(x); IntPtr ptrPicCfg = Marshal.AllocHGlobal(nSize); Marshal.StructureToPtr(x, ptrPicCfg, false); x = (CHCNetSDK.NET_DVR_PTZPOS)Marshal.PtrToStructure(ptrPicCfg, typeof(CHCNetSDK.NET_DVR_PTZPOS)); x.wAction = 3; x.wPanPos = Convert.ToUInt16(x1); x.wTiltPos = Convert.ToUInt16(y); x.wZoomPos = Convert.ToUInt16(z); IntPtr ptzPosptr = Marshal.AllocHGlobal((Int32)nSize); Marshal.StructureToPtr(x, ptzPosptr, false); bool re1 = CHCNetSDK.NET_DVR_SetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_SET_PTZPOS, 1, ptzPosptr, (UInt32)nSize); uint iLastErr = CHCNetSDK.NET_DVR_GetLastError(); loginfo.Info("NET_DVR_SetDVRConfig:" + iLastErr); } catch (Exception ex) { loginfo.Error("hqtz" + ex);; } }