Exemplo n.º 1
0
        public bool ConnectRS232(string ComPort, int iBaudRate, int MachineSN)
        {
            if (ComPort.Trim() == "" || iBaudRate <= 0 || MachineSN <= 0)
            {
                throw new ArgumentNullException("Port, BaudRate, and MachineSN cannot be empty");
                //return false;
            }
            //int idwErrorCode = 0;
            //accept serialport number from string like "COMi"
            if (bIsDestroying)
            {
                return(false);
            }

            int    iPort;
            string sPort = ComPort.Trim();

            for (iPort = 1; iPort < 10; iPort++)
            {
                if (sPort.IndexOf(iPort.ToString()) > -1)
                {
                    break;
                }
            }

            lock (_locker)
            {
                //ilock++; //bIsBusy = true;
                iMachineNumber = MachineSN; //when you are using the serial port communication,you can distinguish different devices by their serial port number.
                bIsConnected   = axCZKEM1.Connect_Com(iPort, iMachineNumber, iBaudRate);

                if (bIsConnected == true)
                {
                    if (axCZKEM1.RegEvent(iMachineNumber, 65535)) //Here you can register the realtime events that you want to be triggered(the parameters 65535 means registering all)
                    {
                        RegisterEvents();
                    }
                }
                else
                {
                    axCZKEM1.GetLastError(ref iLastError);
                    //throw new Exception("Unable to connect the device! ErrorCode=" + idwErrorCode.ToString());
                }
                //ilock--; //bIsBusy = false;
            }
            return(bIsConnected);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 连接设备(网络)
        /// </summary>
        public bool Connect_Net()
        {
            if (COM_IsConnected == true)
            {
                return(true);
            }
            switch (COM_ConnectType)
            {
            case 1:
                COM_IsConnected = m_CZKEMClass.Connect_Net(COM_IPAddress, COM_TCP_PORT);
                break;

            case 2:
                COM_IsConnected = m_CZKEMClass.Connect_Com(COM_TCP_PORT, COM_MACHINENUMBER, COM_BAUDRATE);
                break;

            case 3:
                COM_IsConnected = m_CZKEMClass.Connect_USB(COM_MACHINENUMBER);
                break;

            default:
                COM_IsConnected = m_CZKEMClass.Connect_Net(COM_IPAddress, COM_TCP_PORT);
                break;
            }

            if (COM_IsConnected == true)
            {
                if (m_CZKEMClass.RegEvent(COM_MACHINENUMBER, 65535))
                {
                    this.m_CZKEMClass.OnFinger           += new zkemkeeper._IZKEMEvents_OnFingerEventHandler(m_CZKEMClass_OnFinger);
                    this.m_CZKEMClass.OnVerify           += new zkemkeeper._IZKEMEvents_OnVerifyEventHandler(m_CZKEMClass_OnVerify);
                    this.m_CZKEMClass.OnAttTransactionEx += new zkemkeeper._IZKEMEvents_OnAttTransactionExEventHandler(m_CZKEMClass_OnAttTransactionEx);
                    this.m_CZKEMClass.OnFingerFeature    += new zkemkeeper._IZKEMEvents_OnFingerFeatureEventHandler(m_CZKEMClass_OnFingerFeature);
                    this.m_CZKEMClass.OnEnrollFingerEx   += new zkemkeeper._IZKEMEvents_OnEnrollFingerExEventHandler(m_CZKEMClass_OnEnrollFingerEx);
                    this.m_CZKEMClass.OnDeleteTemplate   += new zkemkeeper._IZKEMEvents_OnDeleteTemplateEventHandler(m_CZKEMClass_OnDeleteTemplate);
                    this.m_CZKEMClass.OnNewUser          += new zkemkeeper._IZKEMEvents_OnNewUserEventHandler(m_CZKEMClass_OnNewUser);
                    this.m_CZKEMClass.OnHIDNum           += new zkemkeeper._IZKEMEvents_OnHIDNumEventHandler(m_CZKEMClass_OnHIDNum);
                    this.m_CZKEMClass.OnAlarm            += new zkemkeeper._IZKEMEvents_OnAlarmEventHandler(m_CZKEMClass_OnAlarm);
                    this.m_CZKEMClass.OnDoor             += new zkemkeeper._IZKEMEvents_OnDoorEventHandler(m_CZKEMClass_OnDoor);
                    this.m_CZKEMClass.OnWriteCard        += new zkemkeeper._IZKEMEvents_OnWriteCardEventHandler(m_CZKEMClass_OnWriteCard);
                    this.m_CZKEMClass.OnEmptyCard        += new zkemkeeper._IZKEMEvents_OnEmptyCardEventHandler(m_CZKEMClass_OnEmptyCard);
                }
                lbRTShow.Items.Add("设备连接成功,设备码:" + COM_MACHINENUMBER.ToString());
                return(true);
            }
            else
            {
                int idwErrorCode = 0;
                m_CZKEMClass.GetLastError(ref idwErrorCode);
                //MessageUtil.ShowError("不能连上设备,错误代码=" + idwErrorCode.ToString());
                lbRTShow.Items.Add("不能连上设备,错误代码=" + idwErrorCode.ToString());
                return(false);
            }
        }