Exemplo n.º 1
0
        /// <summary>
        /// 启动长连接配置,设置卡参数
        /// </summary>
        /// <param name="m_lUserID">NET_DVR_Login_V40等登录接口的返回值 </param>
        /// <returns>NET_DVR_StartRemoteConfig的返回值</returns>
        public static int StartRemoteConfig(int m_lUserID)
        {
            //准备参数:(int lUserID, uint dwCommand, IntPtr lpInBuffer, uint dwInBufferLen,  RemoteConfigStateCALLBACK cbStateCallback, IntPtr pUserData);
            CHCNetSDK.NET_DVR_CARD_CFG_COND cardCfg = new CHCNetSDK.NET_DVR_CARD_CFG_COND();
            cardCfg.dwSize             = (uint)Marshal.SizeOf(cardCfg);
            cardCfg.dwCardNum          = 1;
            cardCfg.byCheckCardNo      = 1;
            cardCfg.wLocalControllerID = 0;
            CHCNetSDK.fRemoteConfigCallback setGatewayCardCallback = new CHCNetSDK.fRemoteConfigCallback(SetGatewayCardCallback);//回调函数

            IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(cardCfg));
            int    m_lSetCardCfgHandle = 0;

            try
            {
                Marshal.StructureToPtr(cardCfg, ptr, false);
                //IntPtr pUserData = Marshal.AllocHGlobal(Marshal.SizeOf(cardCfg));
                m_lSetCardCfgHandle = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_SET_CARD_CFG_V50, ptr, (uint)Marshal.SizeOf(cardCfg), setGatewayCardCallback, IntPtr.Zero);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                //Marshal.FreeHGlobal(ptr);
            }
            return(m_lSetCardCfgHandle);
        }
Exemplo n.º 2
0
        private bool SendCardInfoToDevice()
        {
            if (-1 != m_lSetCardCfgHandle)
            {
                if (CHCNetSDK.NET_DVR_StopRemoteConfig(m_lSetCardCfgHandle))
                {
                    m_lSetCardCfgHandle = -1;
                }
            }
            CHCNetSDK.NET_DVR_CARD_CFG_COND struCond = new CHCNetSDK.NET_DVR_CARD_CFG_COND();
            struCond.dwSize    = (uint)Marshal.SizeOf(struCond);
            struCond.dwCardNum = 1;

            int    dwSize      = Marshal.SizeOf(struCond);
            IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(struCond, ptrStruCond, false);
            g_fSetGatewayCardCallback = new CHCNetSDK.RemoteConfigCallback(ProcessSetGatewayCardCallback);
            m_lSetCardCfgHandle       = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_SET_CARD_CFG_V50, ptrStruCond, dwSize, g_fSetGatewayCardCallback, this.Handle);
            if (-1 == m_lSetCardCfgHandle)
            {
                g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_SET_CARD_CFG_V50");
                Marshal.FreeHGlobal(ptrStruCond);
                return(false);
            }
            else
            {
                g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_SET_CARD_CFG_V50");
            }

            Marshal.FreeHGlobal(ptrStruCond);

            return(SendCardData(m_struCardInfo));
        }
Exemplo n.º 3
0
        private void buttonSendAll_Click(object sender, EventArgs e)
        {
            if (-1 != m_lSetCardCfgHandle)
            {
                if (CHCNetSDK.NET_DVR_StopRemoteConfig(m_lSetCardCfgHandle))
                {
                    m_lSetCardCfgHandle = -1;
                }
            }
            m_dwCardNum = (uint)listViewGataManage.Items.Count;
            if (listViewGataManage.Items.Count < 1)
            {
                MessageBox.Show("Please add some cards!");
                return;
            }
            CHCNetSDK.NET_DVR_CARD_CFG_COND struCond = new CHCNetSDK.NET_DVR_CARD_CFG_COND();
            struCond.dwSize    = (uint)Marshal.SizeOf(struCond);
            struCond.dwCardNum = m_dwCardNum;
            ushort.TryParse(textBoxControllerNo.Text, out struCond.wLocalControllerID);
            if (checkBoxCheckNumber.Checked)
            {
                struCond.byCheckCardNo = 1;
            }
            else
            {
                struCond.byCheckCardNo = 0;
            }

            int    dwSize      = Marshal.SizeOf(struCond);
            IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(struCond, ptrStruCond, false);
            g_fSetGatewayCardCallback = new CHCNetSDK.RemoteConfigCallback(ProcessSetGatewayCardCallback);
            m_lSetCardCfgHandle       = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_SET_CARD_CFG_V50, ptrStruCond, dwSize, g_fSetGatewayCardCallback, this.Handle);
            if (-1 == m_lSetCardCfgHandle)
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "FAIL";
                string strTemp = string.Format("NET_DVR_SET_CARD_CFG_V50 FAIL, ERROR CODE {0}", CHCNetSDK.NET_DVR_GetLastError());
                listItem.SubItems.Add(strTemp);
                this.AddList(listViewMessage, listItem);
                Marshal.FreeHGlobal(ptrStruCond);
                return;
            }
            else
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "SUCC";
                listItem.SubItems.Add("NET_DVR_SET_CARD_CFG_V50");
                this.AddList(listViewMessage, listItem);
            }
            Marshal.FreeHGlobal(ptrStruCond);
            if (!SendFirstCard())
            {
                CHCNetSDK.NET_DVR_StopRemoteConfig(m_lSetCardCfgHandle);
                m_lSetCardCfgHandle = -1;
            }
        }
Exemplo n.º 4
0
 /// <summary>
 /// 构造 卡参数配置条件结构体
 /// </summary>
 /// <param name="cardNum"></param>
 /// <param name="byCheckCardNo">校验卡号</param>
 /// <returns></returns>
 private CHCNetSDK.NET_DVR_CARD_CFG_COND BuildCardCfgCondStruct(uint cardNum = 1, byte byCheckCardNo = 1)
 {
     CHCNetSDK.NET_DVR_CARD_CFG_COND struCardCfgCond = new CHCNetSDK.NET_DVR_CARD_CFG_COND();
     struCardCfgCond.dwSize             = (uint)Marshal.SizeOf(struCardCfgCond);
     struCardCfgCond.dwCardNum          = cardNum;
     struCardCfgCond.byCheckCardNo      = byCheckCardNo;
     struCardCfgCond.wLocalControllerID = 0;
     return(struCardCfgCond);
 }
Exemplo n.º 5
0
        private bool GetCardInfoFromDevice()
        {
            if (-1 != m_lGetCardCfgHandle)
            {
                if (CHCNetSDK.NET_DVR_StopRemoteConfig(m_lGetCardCfgHandle))
                {
                    m_lGetCardCfgHandle = -1;
                }
            }

            CHCNetSDK.NET_DVR_CARD_CFG_SEND_DATA struSendData = new CHCNetSDK.NET_DVR_CARD_CFG_SEND_DATA();
            struSendData.dwSize = (uint)Marshal.SizeOf(struSendData);
            string strTemp = System.Text.Encoding.UTF8.GetString(m_struCardInfo.byCardNo);

            struSendData.byCardNo = System.Text.Encoding.UTF8.GetBytes(strTemp);

            CHCNetSDK.NET_DVR_CARD_CFG_COND struCond = new CHCNetSDK.NET_DVR_CARD_CFG_COND();
            struCond.dwSize        = (uint)Marshal.SizeOf(struCond);
            struCond.dwCardNum     = 1;
            struCond.byCheckCardNo = 1;

            int    dwSize      = Marshal.SizeOf(struCond);
            IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(struCond, ptrStruCond, false);
            g_fGetGatewayCardCallback = new CHCNetSDK.RemoteConfigCallback(ProcessGetGatewayCardCallback);
            m_lGetCardCfgHandle       = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_CARD_CFG_V50, ptrStruCond, dwSize, g_fGetGatewayCardCallback, this.Handle);
            if (-1 == m_lGetCardCfgHandle)
            {
                g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_GET_CARD_CFG_V50");
                Marshal.FreeHGlobal(ptrStruCond);
                return(false);
            }
            else
            {
                g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_GET_CARD_CFG_V50");
                uint   dwSizeData      = (uint)Marshal.SizeOf(struSendData);
                IntPtr ptrStruSendData = Marshal.AllocHGlobal((int)dwSizeData);
                Marshal.StructureToPtr(struSendData, ptrStruSendData, false);
                if (!CHCNetSDK.NET_DVR_SendRemoteConfig(m_lGetCardCfgHandle, 3, ptrStruSendData, dwSizeData))
                {
                    g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_SendRemoteConfig ENUM_ACS_SEND_DATA FAIL");
                    return(false);
                }
                else
                {
                    g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_SendRemoteConfig ENUM_ACS_SEND_DATA SUCC");
                }
                Marshal.FreeHGlobal(ptrStruSendData);
            }
            Marshal.FreeHGlobal(ptrStruCond);

            return(true);
        }
Exemplo n.º 6
0
        /// <summary>
        /// 下发卡号数据
        /// </summary>
        /// <param name="deviceUserId">NET_DVR_Login_V40等登录接口的返回值</param>
        /// <param name="cbStateCallback"></param>
        /// <param name="pUserData"></param>
        /// <param name="cardNo"></param>
        /// <returns></returns>
        public int StartRemoteConfigForCardInsert(
            int deviceUserId,
            CHCNetSDK.RemoteConfigCallback cbStateCallback,
            IntPtr pUserData,
            Core.Domain.EntranceControl.UserInfo userInfo
            )
        {
            int  handle  = -1;
            uint command = CHCNetSDK.NET_DVR_SET_CARD_CFG_V50;

            CHCNetSDK.NET_DVR_CARD_CFG_COND struCardCfgCond = BuildCardCfgCondStruct();

            int    struCardCfgCondSize = Marshal.SizeOf(struCardCfgCond);
            IntPtr ptrCardCfgCond      = Marshal.AllocHGlobal(struCardCfgCondSize);

            Marshal.StructureToPtr(struCardCfgCond, ptrCardCfgCond, false);

            handle = CHCNetSDK.NET_DVR_StartRemoteConfig(deviceUserId, command, ptrCardCfgCond, (uint)struCardCfgCondSize, cbStateCallback, pUserData);

            Marshal.FreeHGlobal(ptrCardCfgCond);

            return(handle);
        }
Exemplo n.º 7
0
        private void buttonDeleteCard_Click(object sender, EventArgs e)
        {
            if (-1 != m_lSetCardCfgHandle)
            {
                if (CHCNetSDK.NET_DVR_StopRemoteConfig(m_lSetCardCfgHandle))
                {
                    m_lSetCardCfgHandle = -1;
                }
            }
            m_bSendOne           = true;
            m_struSelSendCardCfg = GetSelItem();
            if (0 == listViewGataManage.SelectedItems.Count)
            {
                MessageBox.Show("Select list item first");
                return;
            }
            CHCNetSDK.NET_DVR_CARD_CFG_COND struCond = new CHCNetSDK.NET_DVR_CARD_CFG_COND();
            struCond.dwSize    = (uint)Marshal.SizeOf(struCond);
            struCond.dwCardNum = 1;
            if (checkBoxCheckNumber.Checked)
            {
                struCond.byCheckCardNo = 1;
            }
            else
            {
                struCond.byCheckCardNo = 0;
            }
            m_BSendSel = true;
            int    dwSize      = Marshal.SizeOf(struCond);
            IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(struCond, ptrStruCond, false);
            g_fSetGatewayCardCallback = new CHCNetSDK.RemoteConfigCallback(ProcessSetGatewayCardCallback);
            m_lSetCardCfgHandle       = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_SET_CARD_CFG_V50, ptrStruCond, dwSize, g_fSetGatewayCardCallback, this.Handle);
            if (-1 == m_lSetCardCfgHandle)
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "FAIL";
                string strTemp = string.Format("NET_DVR_SET_CARD_CFG_V50 FAIL, ERROR CODE {0}", CHCNetSDK.NET_DVR_GetLastError());
                listItem.SubItems.Add(strTemp);
                this.AddList(listViewMessage, listItem);
                Marshal.FreeHGlobal(ptrStruCond);
                return;
            }
            else
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "SUCC";
                listItem.SubItems.Add("NET_DVR_SET_CARD_CFG_V50");
                this.AddList(listViewMessage, listItem);
            }
            Marshal.FreeHGlobal(ptrStruCond);
            if (m_BSendSel)
            {
                m_dwCardNum   = 1;
                m_dwSendIndex = 0;
                m_struSelSendCardCfg.byCardValid = 0;
                SendCardData(m_struSelSendCardCfg);
                m_BSendSel           = false;
                m_struSelSendCardCfg = new CHCNetSDK.NET_DVR_CARD_CFG_V50();
                return;
            }
        }
Exemplo n.º 8
0
        private void buttonObtainIndividual_Click(object sender, EventArgs e)
        {
            //just get only one,not one by one, so close link first
            if (-1 != m_lGetCardCfgHandle)
            {
                if (CHCNetSDK.NET_DVR_StopRemoteConfig(m_lGetCardCfgHandle))
                {
                    m_lGetCardCfgHandle = -1;
                }
            }

            CHCNetSDK.NET_DVR_CARD_CFG_SEND_DATA struSendData = new CHCNetSDK.NET_DVR_CARD_CFG_SEND_DATA();
            struSendData.dwSize = (uint)Marshal.SizeOf(struSendData);
            if (m_iSelectIndex < 0)
            {
                MessageBox.Show("Select list item first");
                return;
            }

            if (null == struSendData.byCardNo)
            {
                struSendData.byCardNo = GetSelItem().byCardNo;
            }
            else
            {
                string strTemp = System.Text.Encoding.UTF8.GetString(struSendData.byCardNo);
                GetSelItem(ref strTemp);
                struSendData.byCardNo = System.Text.Encoding.UTF8.GetBytes(strTemp);
            }
            CHCNetSDK.NET_DVR_CARD_CFG_COND struCond = new CHCNetSDK.NET_DVR_CARD_CFG_COND();
            struCond.dwSize    = (uint)Marshal.SizeOf(struCond);
            struCond.dwCardNum = 1;
            ushort.TryParse(textBoxControllerNo.Text, out struCond.wLocalControllerID);

            if (checkBoxCheckNumber.Checked)
            {
                struCond.byCheckCardNo = 1;
            }
            else
            {
                struCond.byCheckCardNo = 0;
            }

            int    dwSize      = Marshal.SizeOf(struCond);
            IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize);

            Marshal.StructureToPtr(struCond, ptrStruCond, false);
            g_fGetGatewayCardCallback = new CHCNetSDK.RemoteConfigCallback(ProcessGetGatewayCardCallback);
            m_lGetCardCfgHandle       = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_CARD_CFG_V50, ptrStruCond, dwSize, g_fGetGatewayCardCallback, this.Handle);
            if (-1 == m_lGetCardCfgHandle)
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "FAIL";
                string strTemp = string.Format("NET_DVR_GET_CARD_CFG_V50 FAIL, ERROR CODE {0}", CHCNetSDK.NET_DVR_GetLastError());
                listItem.SubItems.Add(strTemp);
                this.AddList(listViewMessage, listItem);
                Marshal.FreeHGlobal(ptrStruCond);
                return;
            }
            else
            {
                ListViewItem listItem = new ListViewItem();
                listItem.Text = "SUCC";
                listItem.SubItems.Add("NET_DVR_GET_CARD_CFG_V50");
                this.AddList(listViewMessage, listItem);
                uint   dwSizeData      = (uint)Marshal.SizeOf(struSendData);
                IntPtr ptrStruSendData = Marshal.AllocHGlobal((int)dwSizeData);
                Marshal.StructureToPtr(struSendData, ptrStruSendData, false);
                if (!CHCNetSDK.NET_DVR_SendRemoteConfig(m_lGetCardCfgHandle, 3, ptrStruSendData, dwSizeData))
                {
                    ListViewItem listItem2 = new ListViewItem();
                    listItem2.Text = "FAIL";
                    string strTemp = string.Format("NET_DVR_SendRemoteConfig ENUM_ACS_SEND_DATA FAIL, ERROR CODE {0}", CHCNetSDK.NET_DVR_GetLastError());
                    listItem2.SubItems.Add(strTemp);
                    this.AddList(listViewMessage, listItem2);
                }
                else
                {
                    ListViewItem listItem2 = new ListViewItem();
                    listItem2.Text = "SUCC";
                    listItem2.SubItems.Add("NET_DVR_SendRemoteConfig ENUM_ACS_SEND_DATA");
                    this.AddList(listViewMessage, listItem2);
                }
                Marshal.FreeHGlobal(ptrStruSendData);
            }
            Marshal.FreeHGlobal(ptrStruCond);
        }