Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ViewController: UIViewController, FmSessionManagerDelegate {
- var readerManager : FmSessionManager!
- var device : FmDevice?
- override func viewDidLoad() {
- super.viewDidLoad()
- readerManager = FmSessionManager()
- readerManager.selectedDeviceType = DeviceType.floBlePlus
- readerManager.delegate = self
- let configurationDictionary : [String : Any] =
- [
- "Scan Sound" : 1,
- "Scan Period" : 1000,
- "Reader State" : ReaderStateType.readUuid.rawValue, //readData for NDEF
- "Power Operation" : PowerOperation.autoPollingControl.rawValue, //bluetoothConnectionControl low power usage
- "Allow Multiconnect" : false]
- readerManager.setConfiguration(configurationDictionary)
- readerManager.createReaders()
- readerManager.startReader(deviceSerialNumber)
- NotificationCenter.default.addObserver(
- self,
- selector: #selector(inactive),
- name: NSNotification.Name.UIApplicationDidEnterBackground,
- object: nil)
- NotificationCenter.default.addObserver(
- self,
- selector: #selector(active),
- name: NSNotification.Name.UIApplicationDidBecomeActive,
- object: nil)
- }
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- // Dispose of any resources that can be recreated.
- }
- func inactive() {
- print("App Inactive")
- readerManager.stopReader(deviceSerialNumber)
- }
- func active() {
- print("App Activated")
- readerManager.startReader(deviceSerialNumber)
- }
- func didFindATagUuid(_ UUID: String!, fromDevice serialNumber: String!, withATR detectedATR: String!, withError error: Error!) {
- DispatchQueue.main.async {
- if let thisUUID = UUID, let thisSerialNumber = serialNumber {
- print("Did find UUID: \(thisUUID) from Device: \(thisSerialNumber)")
- }
- }
- }
- func didFindADataBlock(withNdef ndef: NdefMessage!, fromDevice serialNumber: String!, withError error: Error!) {
- DispatchQueue.main.async {
- if let thisNdef = ndef, let thisSerialNumber = serialNumber {
- print("Did find NDEF: \(thisNdef) from Device: \(thisSerialNumber)")
- }
- }
- }
- func didRespond(toApduCommand response: String!, fromDevice serialNumber: String!, withError error: Error!) {
- DispatchQueue.main.async {
- if let thisResponse = response, let thisSerialNumber = serialNumber {
- print("Did respond with UPDU: \(thisResponse) from Device: \(thisSerialNumber)")
- }
- }
- }
- func didUpdateConnectedDevices(_ devices: [Any]!) {
- //The list of connected devices was updated
- if devices[0] is FmDevice {
- self.device = devices[0] as? FmDevice
- }
- }
- func didChange(_ status: CardStatus, fromDevice device: String!) {
- //The card status has entered or left the scan range of the reader
- // Cardstatus:
- // 0:kNotPresent
- // 1:kPresent
- // 2:kReadingData
- let command = "00 A4 04 00 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 00"
- self.device?.sendApduCommand(command)
- }
- func didReceiveReaderError(_ error: Error!) {
- DispatchQueue.main.async {
- print("Error: \(error)")
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement