public void GetNetCfg(int m_lUserID) { UInt32 dwReturn = 0; Int32 nSize = Marshal.SizeOf(m_struNetCfg); IntPtr ptrNetCfg = Marshal.AllocHGlobal(nSize); Marshal.StructureToPtr(m_struNetCfg, ptrNetCfg, false); if (!CHCNetSDK.NET_DVR_GetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_NETCFG_V30, -1, ptrNetCfg, (UInt32)nSize, ref dwReturn)) { uint iLastErr = CHCNetSDK.NET_DVR_GetLastError(); string strErr = "NET_DVR_GET_NETCFG_V30 failed, error code= " + iLastErr; //获取网络参数失败,输出错误号 Failed to get the network parameters and output the error code MsgBox.ShowWarn(strErr); } else { m_struNetCfg = (CHCNetSDK.NET_DVR_NETCFG_V30)Marshal.PtrToStructure(ptrNetCfg, typeof(CHCNetSDK.NET_DVR_NETCFG_V30)); //textBoxIPAddr.Text = m_struNetCfg.struEtherNet[0].struDVRIP.sIpV4; //textBoxGateWay.Text = m_struNetCfg.struGatewayIpAddr.sIpV4; //textBoxSubMask.Text = m_struNetCfg.struEtherNet[0].struDVRIPMask.sIpV4; //textBoxDns.Text = m_struNetCfg.struDnsServer1IpAddr.sIpV4; //textBoxHostIP.Text = m_struNetCfg.struAlarmHostIpAddr.sIpV4; //textBoxHostPort.Text = Convert.ToString(m_struNetCfg.wAlarmHostIpPort); //textBoxHttpCfg.Text = Convert.ToString(m_struNetCfg.wHttpPortNo); //textBoxSdkCfg.Text = Convert.ToString(m_struNetCfg.struEtherNet[0].wDVRPort); if (m_struNetCfg.byUseDhcp == 0 && m_struNetCfg.struPPPoE.dwPPPOE == 0) { //TextEnable(true); } } Marshal.FreeHGlobal(ptrNetCfg); }
private void btnNetCfgGet_Click(object sender, EventArgs e) { UInt32 dwReturn = 0; Int32 nSize = Marshal.SizeOf(m_struNetCfg); IntPtr ptrNetCfg = Marshal.AllocHGlobal(nSize); Marshal.StructureToPtr(m_struNetCfg, ptrNetCfg, false); if (!CHCNetSDK.NET_DVR_GetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_NETCFG_V30, -1, ptrNetCfg, (UInt32)nSize, ref dwReturn)) { iLastErr = CHCNetSDK.NET_DVR_GetLastError(); strErr = "NET_DVR_GET_NETCFG_V30 failed, error code= " + iLastErr; //获取网络参数失败,输出错误号 Failed to get the network parameters and output the error code MessageBox.Show(strErr); } else { m_struNetCfg = (CHCNetSDK.NET_DVR_NETCFG_V30)Marshal.PtrToStructure(ptrNetCfg, typeof(CHCNetSDK.NET_DVR_NETCFG_V30)); textBoxIPAddr.Text = m_struNetCfg.struEtherNet[0].struDVRIP.sIpV4; textBoxGateWay.Text = m_struNetCfg.struGatewayIpAddr.sIpV4; textBoxSubMask.Text = m_struNetCfg.struEtherNet[0].struDVRIPMask.sIpV4; textBoxDns.Text = m_struNetCfg.struDnsServer1IpAddr.sIpV4; textBoxHostIP.Text = m_struNetCfg.struAlarmHostIpAddr.sIpV4; textBoxHostPort.Text = Convert.ToString(m_struNetCfg.wAlarmHostIpPort); textBoxHttpCfg.Text = Convert.ToString(m_struNetCfg.wHttpPortNo); textBoxSdkCfg.Text = Convert.ToString(m_struNetCfg.struEtherNet[0].wDVRPort); if (m_struNetCfg.byUseDhcp == 1) { checkBoxDhcp.Checked = true; TextEnable(false); } else { checkBoxDhcp.Checked = false; } if (m_struNetCfg.struPPPoE.dwPPPOE == 1) { checkBoxPPPoe.Checked = true; textBoxPPPoeName.Text = System.Text.Encoding.UTF8.GetString(m_struNetCfg.struPPPoE.sPPPoEUser); textBoxPPPoEPsw.Text = m_struNetCfg.struPPPoE.sPPPoEPassword; TextEnable(false); } else { textBoxPPPoeName.Text = ""; textBoxPPPoEPsw.Text = ""; checkBoxPPPoe.Checked = false; } if (m_struNetCfg.byUseDhcp == 0 && m_struNetCfg.struPPPoE.dwPPPOE == 0) { TextEnable(true); } } Marshal.FreeHGlobal(ptrNetCfg); }
/// <summary> /// 登录NVR /// </summary> private void LoginNVR() { try { uint dwReturned = 0; InitDeviceInfo(); CHCNetSDK.NET_DVR_USER_LOGIN_INFO struLoginInfo = new CHCNetSDK.NET_DVR_USER_LOGIN_INFO(); CHCNetSDK.NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = new CHCNetSDK.NET_DVR_DEVICEINFO_V40(); //string DVRIPAddress = cameraParm.DEVICEIP; //Int16 DVRPortNumber = (short)cameraParm.PORT; //string DVRUserName = cameraParm.VIDEOUSERNAME; //string DVRPassword = cameraParm.PASSWORD; struLoginInfo.sDeviceAddress = Configurations.VideoIP; struLoginInfo.sUserName = Configurations.VideoUserName; struLoginInfo.sPassword = Configurations.VideoPSW; struLoginInfo.wPort = (ushort)Configurations.VideoPort; CHCNetSDK.NET_DVR_SetConnectTime(5000, 1);//设置超时时间 CHCNetSDK.NET_DVR_NETCFG_V30 struNetCfg = new CHCNetSDK.NET_DVR_NETCFG_V30(); struNetCfg.init(); CHCNetSDK.NET_DVR_DEVICECFG_V40 struDevCfg = new CHCNetSDK.NET_DVR_DEVICECFG_V40(); struDevCfg.sDVRName = new byte[CHCNetSDK.NAME_LEN]; struDevCfg.sSerialNumber = new byte[CHCNetSDK.SERIALNO_LEN]; struDevCfg.byDevTypeName = new byte[CHCNetSDK.DEV_TYPE_NAME_LEN]; m_lUserID = CHCNetSDK.NET_DVR_Login_V40(ref struLoginInfo, ref struDeviceInfoV40); //m_lUserID = CHCNetSDK.NET_DVR_Login_V30(DVRIPAddress, DVRPortNumber, DVRUserName, DVRPassword, ref dev); //dicChanInfo = nvrConfig.GetChanParm(m_lUserID, dev); //获取视频通道参数 if (m_lUserID == -1) { MessageBox.Show("视频登录失败!"); } else {//登录成功 IsLoginOk = true; struDeviceInfo = struDeviceInfoV40.struDeviceV30; } g_struDeviceInfo[m_iDeviceIndex].byCharaterEncodeType = struDeviceInfoV40.byCharEncodeType; g_struDeviceInfo[m_iDeviceIndex].lLoginID = m_lUserID; g_struDeviceInfo[m_iDeviceIndex].chSerialNumber = System.Text.Encoding.UTF8.GetString(struDeviceInfo.sSerialNumber).TrimEnd('\0'); g_struDeviceInfo[m_iDeviceIndex].iDeviceIndex = m_iDeviceIndex; g_struDeviceInfo[m_iDeviceIndex].iDeviceType = (int)struDeviceInfo.wDevType; g_struDeviceInfo[m_iDeviceIndex].iDeviceChanNum = (int)(struDeviceInfo.byChanNum + struDeviceInfo.byIPChanNum + struDeviceInfo.byHighDChanNum * 256); g_struDeviceInfo[m_iDeviceIndex].iStartChan = (int)struDeviceInfo.byStartChan; g_struDeviceInfo[m_iDeviceIndex].iDiskNum = (int)struDeviceInfo.byDiskNum; g_struDeviceInfo[m_iDeviceIndex].iAlarmInNum = (int)struDeviceInfo.byAlarmInPortNum; g_struDeviceInfo[m_iDeviceIndex].iAlarmOutNum = (int)struDeviceInfo.byAlarmOutPortNum; g_struDeviceInfo[m_iDeviceIndex].iAudioNum = (int)struDeviceInfo.byAlarmOutPortNum; g_struDeviceInfo[m_iDeviceIndex].iAnalogChanNum = (int)struDeviceInfo.byChanNum; g_struDeviceInfo[m_iDeviceIndex].iIPChanNum = (int)(struDeviceInfo.byIPChanNum + struDeviceInfo.byHighDChanNum * 256); g_struDeviceInfo[m_iDeviceIndex].byZeroChanNum = struDeviceInfo.byZeroChanNum; g_struDeviceInfo[m_iDeviceIndex].byStartDTalkChan = struDeviceInfo.byStartDTalkChan; g_struDeviceInfo[m_iDeviceIndex].byLanguageType = struDeviceInfo.byLanguageType; g_struDeviceInfo[m_iDeviceIndex].byMirrorChanNum = struDeviceInfo.byMirrorChanNum; g_struDeviceInfo[m_iDeviceIndex].wStartMirrorChanNo = struDeviceInfo.wStartMirrorChanNo; g_struDeviceInfo[m_iDeviceIndex].byAudioInputChanNum = struDeviceInfo.byVoiceInChanNum; g_struDeviceInfo[m_iDeviceIndex].byStartAudioInputChanNo = struDeviceInfo.byStartVoiceInChanNo; if (1 == (struDeviceInfo.bySupport & 0x80)) { g_struDeviceInfo[m_iDeviceIndex].byMainProto = (byte)(struDeviceInfo.byMainProto + 2); g_struDeviceInfo[m_iDeviceIndex].bySubProto = (byte)(struDeviceInfo.bySubProto + 2); } else { g_struDeviceInfo[m_iDeviceIndex].byMainProto = struDeviceInfo.byMainProto; g_struDeviceInfo[m_iDeviceIndex].bySubProto = struDeviceInfo.bySubProto; } g_struDeviceInfo[m_iDeviceIndex].bySupport1 = struDeviceInfo.bySupport1; g_struDeviceInfo[m_iDeviceIndex].bySupport2 = struDeviceInfo.bySupport2; g_struDeviceInfo[m_iDeviceIndex].bySupport7 = struDeviceInfo.bySupport7; g_struDeviceInfo[m_iDeviceIndex].byLanguageType = struDeviceInfo.byLanguageType; uint dwSize = (uint)Marshal.SizeOf(struNetCfg); IntPtr ptrNetCfg = Marshal.AllocHGlobal((int)dwSize); Marshal.StructureToPtr(struNetCfg, ptrNetCfg, false); if (!CHCNetSDK.NET_DVR_GetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_NETCFG_V30, 0, ptrNetCfg, dwSize, ref dwReturned)) { } else { //IPv6 temporary unrealized struNetCfg = (CHCNetSDK.NET_DVR_NETCFG_V30)Marshal.PtrToStructure(ptrNetCfg, typeof(CHCNetSDK.NET_DVR_NETCFG_V30)); g_struDeviceInfo[m_iDeviceIndex].chDeviceMultiIP = struNetCfg.struMulticastIpAddr.sIpV4; string strTemp = string.Format("multi-cast ipv4{0}", struNetCfg.struMulticastIpAddr.sIpV4); } Marshal.FreeHGlobal(ptrNetCfg); dwReturned = 0; uint dwSize2 = (uint)Marshal.SizeOf(struDevCfg); IntPtr ptrDevCfg = Marshal.AllocHGlobal((int)dwSize2); Marshal.StructureToPtr(struDevCfg, ptrDevCfg, false); if (!CHCNetSDK.NET_DVR_GetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_DEVICECFG_V40, 0, ptrDevCfg, dwSize2, ref dwReturned)) { } else { struDevCfg = (CHCNetSDK.NET_DVR_DEVICECFG_V40)Marshal.PtrToStructure(ptrDevCfg, typeof(CHCNetSDK.NET_DVR_DEVICECFG_V40)); if (g_struDeviceInfo[m_iDeviceIndex].iDeviceType != (int)struDevCfg.wDevType) { string strTemp = null; string strShow = null; strShow = strTemp + g_struDeviceInfo[m_iDeviceIndex].iDeviceType.ToString() + struDevCfg.wDevType.ToString(); MessageBox.Show(strShow); } g_struDeviceInfo[m_iDeviceIndex].chDeviceName = System.Text.Encoding.UTF8.GetString(struDevCfg.byDevTypeName).Trim('\0'); g_struDeviceInfo[m_iDeviceIndex].dwDevSoftVer = struDevCfg.dwSoftwareVersion; } Marshal.FreeHGlobal(ptrDevCfg); if (g_struDeviceInfo[m_iDeviceIndex].iIPChanNum >= 0) { if (g_struDeviceInfo[m_iDeviceIndex].iIPChanNum == 0) { g_struDeviceInfo[m_iDeviceIndex].pStruIPParaCfgV40 = new CHCNetSDK.NET_DVR_IPPARACFG_V40[1]; } else { if (g_struDeviceInfo[m_iDeviceIndex].iIPChanNum % CHCNetSDK.MAX_CHANNUM_V30 == 0) { g_struDeviceInfo[m_iDeviceIndex].pStruIPParaCfgV40 = new CHCNetSDK.NET_DVR_IPPARACFG_V40[g_struDeviceInfo[m_iDeviceIndex].iIPChanNum / CHCNetSDK.MAX_CHANNUM_V30]; } else { g_struDeviceInfo[m_iDeviceIndex].pStruIPParaCfgV40 = new CHCNetSDK.NET_DVR_IPPARACFG_V40[g_struDeviceInfo[m_iDeviceIndex].iIPChanNum / CHCNetSDK.MAX_CHANNUM_V30 + 1]; } } } if (DoGetDeviceResoureCfg(m_iDeviceIndex)) { } } catch (Exception ex) { } }