コード例 #1
0
 /// <summary>
 /// 构造 获取卡参数的发送数据
 /// </summary>
 /// <param name="cardNo"></param>
 /// <returns></returns>
 private CHCNetSDK.NET_DVR_CARD_CFG_SEND_DATA BuildCardCfgSendData(string cardNo = "1")
 {
     CHCNetSDK.NET_DVR_CARD_CFG_SEND_DATA struCardCfgSendData = new CHCNetSDK.NET_DVR_CARD_CFG_SEND_DATA();
     struCardCfgSendData.dwSize   = (uint)Marshal.SizeOf(struCardCfgSendData);
     struCardCfgSendData.byCardNo = new byte[CHCNetSDK.ACS_CARD_NO_LEN];
     byte[] bCardNo = System.Text.Encoding.GetEncoding(PreSettings.charset).GetBytes(cardNo);
     bCardNo.CopyTo(struCardCfgSendData.byCardNo, 0);
     return(struCardCfgSendData);
 }
コード例 #2
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);
        }
コード例 #3
0
        /// <summary>
        /// 发送"卡查询"长连接数据
        /// </summary>
        /// <param name="hndStartRemoteConfig"></param>
        /// <param name="cardNo">卡号</param>
        /// <returns>TRUE表示成功,FALSE表示失败</returns>
        public bool SendRemoteConfigForCardQuery(
            int hndStartRemoteConfig,
            string cardNo)
        {
            bool ret      = false;
            uint dataType = (uint)CHCNetSDK.LONG_CFG_SEND_DATA_TYPE_ENUM.ENUM_ACS_SEND_DATA;

            //构建“获取卡参数的发送数据”结构体 并转化为指针
            CHCNetSDK.NET_DVR_CARD_CFG_SEND_DATA struCardCfgSendData = BuildCardCfgSendData(cardNo);
            int    struCardCfgSendDataSize = Marshal.SizeOf(struCardCfgSendData);
            IntPtr ptrCardCfgSendData      = Marshal.AllocHGlobal(struCardCfgSendDataSize);

            Marshal.StructureToPtr(struCardCfgSendData, ptrCardCfgSendData, false);

            ret = CHCNetSDK.NET_DVR_SendRemoteConfig(hndStartRemoteConfig, dataType, ptrCardCfgSendData, (uint)struCardCfgSendDataSize);

            Marshal.FreeHGlobal(ptrCardCfgSendData);
            return(ret);
        }
コード例 #4
0
ファイル: CardManagement.cs プロジェクト: zimnerd/biometric
        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);
        }