private void MGattCallback_ConnectionStateChange(object sender, ConnectionStateChangeEventArgs e) { if (e.P1 != (int)GattStatus.Success) { //OnStateChanged(new StateChangedEventArgs() { State = DriverState.ReaderDiconnected }); if (e.P2 == BluetoothReader.StateConnected) { LogMessage("Connect Failed"); } else if (e.P2 == BluetoothReader.StateDisconnected) { LogMessage("Disconnect Failed"); } return; } if (e.P2 == (int)ProfileState.Connected) { OnStateChanged(new StateChangedEventArgs() { State = DriverState.ReaderConnected }); /* Detect the connected reader. */ //if (mBluetoothReaderManager != null) //{ // //Detect(); //} } else if (e.P2 == (int)ProfileState.Disconnected) { //Disconnect("ConnectionStateChange"); mBluetoothReader = null; if (mBluetoothGatt != null) { mBluetoothGatt.Close(); mBluetoothGatt = null; } } }
private void MBluetoothReaderManager_ReaderDetection(object sender, BluetoothReaderManager.ReaderDetectionEventArgs e) { if (e.P0 is Acr3901us1Reader) { LogMessage("On Acr3901us1Reader Detected."); } else if (e.P0 is Acr1255uj1Reader) { LogMessage("On Acr1255uj1Reader Detected."); } else { LogMessage("Disconnect reader"); Disconnect("ReaderDetection"); throw new Exception("Unknown BT Reader"); } OnStateChanged(new StateChangedEventArgs() { State = DriverState.ReaderDetected }); mBluetoothReader = e.P0; //connect listeners if (mBluetoothReader is Acr3901us1Reader) { ((Acr3901us1Reader)mBluetoothReader).BatteryStatusChange += ACS1255_BatteryStatusChange; ((Acr3901us1Reader)mBluetoothReader).BatteryStatusAvailable += ACS1255_BatteryStatusAvailable; } else if (mBluetoothReader is Acr1255uj1Reader) { ((Acr1255uj1Reader)mBluetoothReader).BatteryLevelChange += ACS1255_BatteryLevelChange; ((Acr1255uj1Reader)mBluetoothReader).BatteryLevelAvailable += ACS1255_BatteryLevelAvailable; } mBluetoothReader.CardStatusChange += Reader_CardStatusChange; mBluetoothReader.AuthenticationComplete += Reader_AuthenticationComplete; mBluetoothReader.AtrAvailable += Reader_AtrAvailable; mBluetoothReader.CardPowerOffComplete += Reader_CardPowerOffComplete; mBluetoothReader.ResponseApduAvailable += Reader_ResponseApduAvailable; mBluetoothReader.EscapeResponseAvailable += Reader_EscapeResponseAvailable; mBluetoothReader.DeviceInfoAvailable += Reader_DeviceInfoAvailable; mBluetoothReader.EnableNotificationComplete += Reader_EnableNotificationComplete; //activate reader if (mBluetoothReader is Acr3901us1Reader) { /* Start pairing to the reader. */ ((Acr3901us1Reader)mBluetoothReader).StartBonding(); } else if (mBluetoothReader is Acr1255uj1Reader) { /* Enable notification. */ mBluetoothReader.EnableNotification(true); } //Authenticate(); }