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); }
/// <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); } }