private void btnAddDev_Click(object sender, EventArgs e) { frm_AddDevice fAddDev = new frm_AddDevice(); fAddDev.ShowDialog(); //DHClient.DHSetShowException(true); try { if (fAddDev.blnOKEnter == true) { //设备用户信息获得 deviceInfo = new NET_DEVICEINFO(); int error = 0; //设备用户登录 pLoginID = DHClient.DHLogin(fAddDev.cmbDevIP.Text.ToString(), ushort.Parse(fAddDev.txtDevProt.Text.ToString()), fAddDev.txtName.Text.ToString(), fAddDev.txtPassword.Text.ToString(), out deviceInfo, out error); if (pLoginID != 0) { //btnStartRealPlay.Enabled = true; btnStartPlay.Enabled = true; } else { //btnStartRealPlay.Enabled = false; btnStartPlay.Enabled = false; MessageBox.Show(DHClient.LastOperationInfo.ToString(pErrInfoFormatStyle), pMsgTitle); } } } catch { //报最后一次操作的错误信息 MessageBox.Show(DHClient.LastOperationInfo.ToString(pErrInfoFormatStyle), pMsgTitle); } }
/// <summary> /// 添加设备1处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnAddDevice1_Click(object sender, EventArgs e) { frm_AddDevice fAddDev = new frm_AddDevice(); fAddDev.ShowDialog(); try { if (fAddDev.blnOKEnter == true) { //设备用户信息获得 deviceInfo = new NET_DEVICEINFO(); int error = 0; //设备1登录:注意登录ID pLoginID1 = DHClient.DHLogin(fAddDev.cmbDevIP.Text.ToString(), ushort.Parse(fAddDev.txtDevProt.Text.ToString()), fAddDev.txtName.Text.ToString(), fAddDev.txtPassword.Text.ToString(), out deviceInfo, out error); //是否登录成功判断 if (pLoginID1 != 0) { MessageBox.Show("设备1登录成功!", "提示"); } else { MessageBox.Show("设备1登录失败!", "提示"); } } } catch { } }
/// <summary> /// 用户登录按钮按下处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnUserLogin_Click(object sender, EventArgs e) { string strBtn = btnUserLogin.Text; if (strBtn == Utility.StringUtil.ConvertString("设备用户登录")) { frm_AddDevice fLogin = new frm_AddDevice(); fLogin.ShowDialog(); if (fLogin.blnOKEnter == true) { //设备用户信息获得 deviceInfo = new NET_DEVICEINFO(); int error = 0; //设备用户登录 pLoginID = DHClient.DHLogin(fLogin.cmbDevIP.Text.ToString(), ushort.Parse(fLogin.txtDevProt.Text.ToString()), fLogin.txtName.Text.ToString(), fLogin.txtPassword.Text.ToString(), out deviceInfo, out error); if (pLoginID != 0) { strUserName = fLogin.txtDevName.Text; btnUserLogin.BackColor = Color.Yellow; btnUserLogin.Text = StringUtil.ConvertString("设备用户注销"); grbMain.Enabled = true; } else { //报最后一次操作的错误信息 MessageUtil.ShowMsgBox(StringUtil.ConvertString(DHClient.LastOperationInfo.errMessage, "ErrorMessage"), StringUtil.ConvertString(pMsgTitle)); } } } else if (strBtn == Utility.StringUtil.ConvertString("设备用户注销")) { bool result = DHClient.DHLogout(pLoginID); if (result == false) { //报最后一次操作的错误信息 MessageUtil.ShowMsgBox(StringUtil.ConvertString(DHClient.LastOperationInfo.errMessage, "ErrorMessage"), StringUtil.ConvertString(pMsgTitle)); } btnUserLogin.BackColor = Color.Transparent; btnUserLogin.Text = StringUtil.ConvertString("设备用户登录"); grbMain.Enabled = false; Utility.StringUtil.InitControlText(this); } }
private void login(int cantidadVentanas) { //this.initPantallas(cantidadVentanas); //this.inicializarVentanas(cantidadVentanas); int error = 0; if (pLoginID == 0) { deviceInfo = new NET_DEVICEINFO(); pLoginID = DHClient.DHLogin(this.ip, this.port, this.user, this.pass, out deviceInfo, out error); } if (pLoginID != 0) { this.startButtons(false); pRealPlayHandle = new int[deviceInfo.byChanNum]; cantidadCamaras = deviceInfo.byChanNum; comboBoxCamaras.Items.Clear(); for (int i = 0; i < cantidadCamaras; i++) { comboBoxCamaras.Items.Add((i + 1).ToString()); } //this.play(this.channel); comboBoxCamaras.SelectedIndex = this.channel; comboBoxVentanas.SelectedIndex = this.getIndexCantidadVentanas(cantidadVentanas); realPlay(); } else { /*btnStartRealPlay.Enabled = false; btnLogin.Enabled = true; btnLogout.Enabled = false;*/ this.startButtons(true); if (DHClient.LastOperationInfo.errCode == "-2147483548") { MessageBox.Show("Error de conexion a la camara: Password incorrecto!", pMsgTitle); } else if (DHClient.LastOperationInfo.errCode == "-2147483547") { MessageBox.Show("Error de conexion a la camara: Usuario incorrecto!", pMsgTitle); } else if (DHClient.LastOperationInfo.errCode == "-2147483541") { MessageBox.Show("Error de conexion a la camara! No fue posible conectar a la IP o puerto especificado", pMsgTitle); } else { MessageBox.Show("Error de conexion a la camara:" + DHClient.LastOperationInfo.errCode, pMsgTitle); } Application.Exit(); } }
private void Login_Click(object sender, EventArgs e) { if (!m_bInit) { MessageBox.Show("库初始化失败"); return; } //设备用户信息获得 NET_DEVICEINFO deviceInfo = new NET_DEVICEINFO(); int error = 0; m_nLoginID = DHClient.DHLogin(this.textBoxIP.Text.ToString(), ushort.Parse(this.textBoxPort.Text.ToString()), this.textBoxUser.Text.ToString(), this.textBoxPsw.Text.ToString(), out deviceInfo, out error); if (m_nLoginID > 0) { this.Login.Enabled = false; this.Logout.Enabled = true; m_nChannelNum = deviceInfo.byChanNum; for (int i = 0; i < m_nChannelNum; ++i ) { this.comboBoxChannel.Items.Add(i.ToString()); } //query json ability. Int32 dwRetLen = 0; IntPtr pDevEnable = new IntPtr(); pDevEnable = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(DH_DEV_ENABLE_INFO))); bool bRet = DHClient.DHQuerySystemInfo(m_nLoginID, DH_SYS_ABILITY.ABILITY_DEVALL_INFO, pDevEnable, Marshal.SizeOf(typeof(DH_DEV_ENABLE_INFO)), ref dwRetLen, 1000); if (bRet == false) { //MessageBox.Show(ConvertString("Query device ability failed.")); MessageBox.Show("查询设备能力失败"); return; } DH_DEV_ENABLE_INFO devEnable = new DH_DEV_ENABLE_INFO(); devEnable = (DH_DEV_ENABLE_INFO)Marshal.PtrToStructure(pDevEnable, typeof(DH_DEV_ENABLE_INFO)); m_bJSON = devEnable.IsFucEnable[(Int32)DH_FUN_SUPPORT.EN_JSON_CONFIG] > 0 ? true : false; if (m_bJSON == false) { int nRetLen = 0; IntPtr pStuSnapAttr = new IntPtr(); pStuSnapAttr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(DH_SNAP_ATTR_EN))); bool nRet = DHClient.DHQueryDevState(m_nLoginID, (int)DHClient.DH_DEVSTATE_SNAP , pStuSnapAttr, Marshal.SizeOf(typeof(DH_SNAP_ATTR_EN)) , ref nRetLen, 1000); if (nRet == false || nRetLen != Marshal.SizeOf(typeof(DH_SNAP_ATTR_EN))) { MessageBox.Show("获取抓图能力集失败!"); return; } else { m_stuSnapAttr = (DH_SNAP_ATTR_EN)Marshal.PtrToStructure(pStuSnapAttr, typeof(DH_SNAP_ATTR_EN)); } } else//json { InitSnapConfigExUI(0); } IntPtr pSnapCfg = new IntPtr(); pSnapCfg = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(DHDEV_SNAP_CFG)) * 32); UInt32 dwRetConfig = 0; bRet = DHClient.DHGetDevConfig(m_nLoginID, CONFIG_COMMAND.DH_DEV_SNAP_CFG, -1, pSnapCfg, (UInt32)Marshal.SizeOf(typeof(DHDEV_SNAP_CFG)) * 32, ref dwRetConfig, 1000); if (!bRet) { MessageBox.Show("获取抓图配置失败!"); return; } else { for (int i = 0; i < 32; ++i ) { m_stuSnapCfg[i] = (DHDEV_SNAP_CFG)Marshal.PtrToStructure((IntPtr)((UInt32)pSnapCfg+i*Marshal.SizeOf(typeof(DHDEV_SNAP_CFG))) , typeof(DHDEV_SNAP_CFG)); } } if (this.comboBoxChannel.Items.Count > 0) { this.comboBoxChannel.SelectedIndex = 0; } this.buttonGet.Enabled = true; this.buttonSet.Enabled = true; this.buttonStart.Enabled = true; this.buttonStop.Enabled = true; } }
/// <summary> /// 用户登录按钮按下处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnUserLogin_Click(object sender, EventArgs e) { switch (btnUserLogin.Text) { case "设备用户登录": frm_AddDevice fLogin = new frm_AddDevice(); fLogin.ShowDialog(); if (fLogin.blnOKEnter == true) { //设备用户信息获得 NET_DEVICEINFO deviceInfo = new NET_DEVICEINFO(); int error = 0; //设备用户登录 pLoginID = DHClient.DHLogin(fLogin.cmbDevIP.Text.ToString(), ushort.Parse(fLogin.txtDevProt.Text.ToString()), fLogin.txtName.Text.ToString(), fLogin.txtPassword.Text.ToString(), out deviceInfo, out error); if (pLoginID != 0) { btnUserLogin.BackColor = Color.Yellow; btnUserLogin.Text = "设备用户注销"; grbMain.Enabled = true; } else { //报最后一次操作的错误信息 MessageBox.Show(DHClient.LastOperationInfo.ToString(pErrInfoFormatStyle), pMsgTitle); grbMain.Enabled = false; } } break; case "设备用户注销": bool result = DHClient.DHLogout(pLoginID); if (result == false) { //报最后一次操作的错误信息 MessageBox.Show(DHClient.LastOperationInfo.ToString(pErrInfoFormatStyle), pMsgTitle); } btnUserLogin.BackColor = Color.Transparent; btnUserLogin.Text = "设备用户登录"; grbMain.Enabled = false; break; } }
/// <summary> /// 设备用户登录/注销处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnUserLogin_Click(object sender, EventArgs e) { string strLogin = StringUtil.ConvertString("设备用户登录"); string strLogout = StringUtil.ConvertString("设备用户注销"); if (btnUserLogin.Text.Equals(strLogin)) { frm_AddDevice fLogin = new frm_AddDevice(); fLogin.ShowDialog(); if (fLogin.blnOKEnter == true) { //设备用户信息获得 NET_DEVICEINFO deviceInfo = new NET_DEVICEINFO(); int error = 0; //设备用户登录 pLoginID = DHClient.DHLogin(fLogin.cmbDevIP.Text.ToString(), ushort.Parse(fLogin.txtDevProt.Text.ToString()), fLogin.txtName.Text.ToString(), fLogin.txtPassword.Text.ToString(), out deviceInfo, out error); if (pLoginID != 0) { btnUserLogin.BackColor = Color.Yellow; btnUserLogin.Text = strLogout; grpMain.Enabled = true; //读取用户信息 GetUserInfo(pLoginID, ref userManageInfo, 3000); //设置消息回调函数 DHClient.DHSetDVRMessCallBack(msgCallBack, IntPtr.Zero); IntPtr pVer = new IntPtr(); pVer = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(int))); int nRet = 0; int nVer = 0; bool bRet = DHClient.DHQueryDevState((int)pLoginID, (int)DHClient.DH_DEVSTATE_PROTOCAL_VER, pVer, 4, ref nRet, 2000); if (bRet) { nVer = (int)Marshal.PtrToStructure((IntPtr)((UInt32)pVer), typeof(int)); //开始侦听 if (nVer >= 5) { if (DHClient.DHStartListenEx(pLoginID) == true) { timeDisplayAlarmInfo.Enabled = true; } else { timeDisplayAlarmInfo.Enabled = false; } } else { if (DHClient.DHStartListen(pLoginID) == true) { timeDisplayAlarmInfo.Enabled = true; } else { timeDisplayAlarmInfo.Enabled = false; } } } } } } else { bool result = DHClient.DHLogout(pLoginID); if (result == false) { //报最后一次操作的错误信息 MessageBox.Show(DHClient.LastOperationInfo.ToString(pErrInfoFormatStyle), pMsgTitle); } //画面初期化 timeDisplayAlarmInfo.Enabled = false; this.Controls.Clear(); InitializeComponent(); StringUtil.InitControlText(this); pLoginID = 0; userManageInfo = new USER_MANAGE_INFO(); clientState = new NET_CLIENT_STATE(); AlarmAudio = new byte[16]; AlarmDiskErr = new byte[32];//DVR最大可挂32块硬盘,每一位表示一个硬盘的状态,0:硬盘状态正常;1:硬盘出错 AlarmDiskFull = false; AlarmShelter = new byte[16]; AlarmExternal = new byte[16]; ActiveUserID = 0; ActiveGroupID = 0; ActiveGroupIndex = 0; ActiveUserIndex = 0; btnUserLogin.BackColor = Color.Transparent; btnUserLogin.Text = strLogin; grpMain.Enabled = false; this.WindowState = FormWindowState.Normal; } }
/// <summary> /// 初始化函数 /// </summary> /// <param name="strServerIP">视频IP</param> /// <param name="iChannel">通道号</param> /// <param name="strUserName">用户名</param> /// <param name="strPsw">密码</param> /// <param name="strPath">抓图存储路径 如:\\LoadWeightPic\\FrontImage.jpg</param> public void Initialize(string strServerIP, int iChannel, string strUserName, string strPsw, string strPath) { try { if (IsLogin) { disConnect = new fDisConnect(DisConnectEvent); DHClient.DHInit(disConnect, IntPtr.Zero); DHClient.DHSetEncoding(LANGUAGE_ENCODING.gb2312); deviceInfo = new NET_DEVICEINFO(); int iLoginError = 0; iLogin = DHClient.DHLogin(strServerIP, ushort.Parse("37777"), strUserName, strPsw, out deviceInfo, out iLoginError); IsLogin = false; } _strPath = strPath; _strServerIP = strServerIP; _iChannel = iChannel; iRealPlay = DHClient.DHRealPlay(iLogin, _iChannel, this.Pic.Handle); } catch(Exception ex) { Log.WriteLog("大华视频显示控件-初始化:", ex); } }
/// <summary> /// [设备用户注销]按钮按下 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnUserLogout_Click(object sender, EventArgs e) { try { bool result = DHClient.DHLogout(pLoginID); if (result == false) { //报最后一次操作的错误信息 MessageBox.Show(DHClient.LastOperationInfo.ToString(pErrInfoFormatStyle), pMsgTitle); } picRealPlay0.Refresh(); picRealPlay1.Refresh(); picRealPlay2.Refresh(); picRealPlay3.Refresh(); picRealPlay4.Refresh(); picRealPlay5.Refresh(); picRealPlay6.Refresh(); picRealPlay7.Refresh(); if (picRealPlay != null) { picRealPlay.Refresh(); } //画面初期化 this.Controls.Clear(); InitializeComponent(); Utility.StringUtil.InitControlText(this); pLoginID = 0; fileInfo = new NET_RECORDFILE_INFO(); playBy = 0; pRealPlayHandle = new int[16]; pPlayBackHandle = new int[16]; pPlayBackChannelID = 0; deviceInfo = new NET_DEVICEINFO(); this.WindowState = FormWindowState.Normal; btnRealPlay.Enabled = false; btnPlayBackByTime.Enabled = false; gpbPlayBackControl.Enabled = false; btnUserLogout.Enabled = false; btnRealPlay.Text = StringUtil.ConvertString("RealPlay"); btnPlayByRecordFile.Enabled = false; gpbPlayBackControl.Enabled = false; gpbPTZControl.Enabled = false; } catch { MessageBox.Show("设备用户注销失败!", pMsgTitle); } }
/// <summary> /// [设备用户登录]按钮按下 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnUserLogin_Click(object sender, EventArgs e) { frm_AddDevice fAddDev = new frm_AddDevice(); fAddDev.ShowDialog(); //DHClient.DHSetShowException(true); try { if (fAddDev.blnOKEnter == true) { //设备用户信息获得 deviceInfo = new NET_DEVICEINFO(); int error = 0; pLoginID = DHClient.DHLogin(fAddDev.cmbDevIP.Text.ToString(), ushort.Parse(fAddDev.txtDevProt.Text.ToString()),fAddDev.txtName.Text.ToString(), fAddDev.txtPassword.Text.ToString(), out deviceInfo, out error); if (pLoginID != 0) { pPlayBackHandle = new int[deviceInfo.byChanNum]; //画面按钮有效性控制 pRealPlayHandle = null; btnRealPlay.Text = StringUtil.ConvertString("RealPlay"); btnUserLogin.Enabled = false; btnRealPlay.Enabled = true; btnPlayBackByTime.Enabled = true; gpbPlayBackControl.Enabled = false; btnUserLogout.Enabled = true; gpbPTZControl.Enabled = false; btnPlayByRecordFile.Enabled = true; cmbChannelSelect.Items.Clear(); for (int i = 0; i < deviceInfo.byChanNum; i++) { cmbChannelSelect.Items.Add(i.ToString()); } } else { MessageBox.Show(DHClient.LastOperationInfo.ToString(pErrInfoFormatStyle),pMsgTitle); btnUserLogin_Click(null, null); } } } catch { //报最后一次操作的错误信息 MessageBox.Show(DHClient.LastOperationInfo.ToString(pErrInfoFormatStyle), pMsgTitle); btnUserLogin_Click(null, null); } }
/// <summary> /// 用户登录按钮按下 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnUserLogin_Click(object sender, EventArgs e) { string strLogin = StringUtil.ConvertString("设备用户登录"); string strLogout = StringUtil.ConvertString("设备用户注销"); if (btnUserLogin.Text.Equals(strLogin)) { frm_AddDevice fadFrom = new frm_AddDevice(); fadFrom.ShowDialog(); if (fadFrom.blnOKEnter == true) { //设备用户信息获得 NET_DEVICEINFO deviceInfo = new NET_DEVICEINFO(); int error = 0; pLoginID = DHClient.DHLogin(fadFrom.cmbDevIP.Text.ToString(), ushort.Parse(fadFrom.txtDevProt.Text.ToString()), fadFrom.txtName.Text.ToString(), fadFrom.txtPassword.Text.ToString(), out deviceInfo, out error); if (pLoginID != 0) { btnUserLogin.BackColor = Color.Yellow; btnUserLogin.Text = strLogout; grbMain.Enabled = true; tbcMain.SelectedIndex = 0; } else { //报最后一次操作的错误信息 MessageBox.Show(DHClient.LastOperationInfo.ToString(pErrInfoFormatStyle), pMsgTitle); btnUserLogin_Click(null, null); } } } else { bool result = DHClient.DHLogout(pLoginID); if (result == false) { //报最后一次操作的错误信息 MessageBox.Show(DHClient.LastOperationInfo.ToString(pErrInfoFormatStyle), pMsgTitle); } //画面初始化 this.Controls.Clear(); InitializeComponent(); pLoginID = 0; sysAttrConfig = new DHDEV_SYSTEM_ATTR_CFG(); channelConfig = new DHDEV_CHANNEL_CFG[16]; netConfig = new DHDEV_NET_CFG(); recConfig = new DHDEV_RECORD_CFG[16]; commConfig = new DHDEV_COMM_CFG(); alarmAllConfig = new DHDEV_ALARM_SCHEDULE(); btnUserLogin.BackColor = Color.Transparent; btnUserLogin.Text = strLogin; grbMain.Enabled = false; tbcMain.SelectedIndex = 0; } }
/// <summary> /// 设备用户登录/注销处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnUserLogin_Click(object sender, EventArgs e) { switch (btnUserLogin.Text) { case "设备用户登录": frm_AddDevice fLogin = new frm_AddDevice(); fLogin.ShowDialog(); if (fLogin.blnOKEnter == true) { //设备用户信息获得 NET_DEVICEINFO deviceInfo = new NET_DEVICEINFO(); int error = 0; //设备用户登录 pLoginID = DHClient.DHLogin(fLogin.cmbDevIP.Text.ToString(), ushort.Parse(fLogin.txtDevProt.Text.ToString()), fLogin.txtName.Text.ToString(), fLogin.txtPassword.Text.ToString(), out deviceInfo, out error); if (pLoginID != 0) { btnUserLogin.BackColor = Color.Yellow; btnUserLogin.Text = "设备用户注销"; grpMain.Enabled = true; //读取用户信息 GetUserInfo(pLoginID, ref userManageInfo, 3000); //设置消息回调函数 DHClient.DHSetDVRMessCallBack(msgCallBack, IntPtr.Zero); //开始侦听 if (DHClient.DHStartListen(pLoginID) == true) { timeDisplayAlarmInfo.Enabled = true; } else { timeDisplayAlarmInfo.Enabled = false; } } } break; case "设备用户注销": bool result = DHClient.DHLogout(pLoginID); if (result == false) { //报最后一次操作的错误信息 MessageBox.Show(DHClient.LastOperationInfo.ToString(pErrInfoFormatStyle), pMsgTitle); } //画面初期化 timeDisplayAlarmInfo.Enabled = false; this.Controls.Clear(); InitializeComponent(); pLoginID = 0; userManageInfo = new USER_MANAGE_INFO(); clientState = new NET_CLIENT_STATE(); AlarmAudio = new byte[16]; AlarmDiskErr = new byte[32];//DVR最大可挂32块硬盘,每一位表示一个硬盘的状态,0:硬盘状态正常;1:硬盘出错 AlarmDiskFull = false; AlarmShelter = new byte[16]; ActiveUserID = 0; ActiveGroupID = 0; ActiveGroupIndex = 0; ActiveUserIndex = 0; btnUserLogin.BackColor = Color.Transparent; btnUserLogin.Text = "设备用户登录"; grpMain.Enabled = false; this.WindowState = FormWindowState.Normal; break; } }
private static extern int CLIENT_LoginEx(string pchDVRIP, ushort wDVRPort, string pchUserName, string pchPassword, int nSpecCap, string pCapParam, out NET_DEVICEINFO lpDeviceInfo, out int error);
/// <summary> /// 注册用户到设备的扩展接口,支持一个用户指定设备支持的能力 /// </summary> /// <param name="pchDVRIP">设备IP</param> /// <param name="wDVRPort">设备端口</param> /// <param name="pchUserName">用户名</param> /// <param name="pchPassword">用户密码</param> /// <param name="nSpecCap">设备支持的能力,值为2表示主动侦听模式下的用户登录。[车载dvr登录]</param> /// <param name="pCapParam">对nSpecCap 的补充参数, nSpecCap = 2时,pCapParam填充设备序列号字串。[车载dvr登录]</param> /// <param name="lpDeviceInfo">设备信息,属于输出参数</param> /// <param name="error">返回登录错误码</param> /// <returns>失败返回0,成功返回设备ID</returns> public static int DHLogin(string pchDVRIP, ushort wDVRPort, string pchUserName, string pchPassword, int nSpecCap, string pCapParam, out NET_DEVICEINFO lpDeviceInfo, out int error) { int result = CLIENT_LoginEx(pchDVRIP, wDVRPort, pchUserName, pchPassword, nSpecCap, pCapParam, out lpDeviceInfo, out error); DHThrowLastError(result); return result; }