Example #1
0
        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;
                }
            }
        }
Example #2
0
        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();
        }