Функция потока EASession не запускается - PullRequest
0 голосов
/ 11 июля 2019

У меня есть устройство MFi (считыватель RFID), и я пытаюсь отсканировать отсканированные теги в своем приложении.Поэтому я использую EAAccessorymanager, чтобы получить общий аксессуар и прочитать с него данные.Когда я открываю сеанс и проверяю теги, функция stream не срабатывает, и я не могу понять, что я делаю неправильно.

import Foundation
import ExternalAccessory


class RFID: NSObject, EAAccessoryDelegate, StreamDelegate {

        var _accessory: EAAccessory!
        var _session: EASession!
        var _protocolString: String?


    func turnOn() {
        let manager = EAAccessoryManager.shared()
        let accessories = manager.connectedAccessories
        if (accessories.count > 0) {
            _accessory = accessories[0];

            _session = EASession(accessory: _accessory, forProtocol: _accessory.protocolStrings[0]);

            _accessory.delegate = self;
            _session?.inputStream?.delegate = self;
            _session?.inputStream?.schedule(in: .current, forMode: .default);
            _session?.inputStream?.open();

            print(_accessory);
            print(_session);
        }
    }

    func stream(_ aStream: Stream, handle eventCode: Stream.Event) {
        switch eventCode {
        case Stream.Event.openCompleted:
            break
        case Stream.Event.hasBytesAvailable:
            // Read Data
            print("Data Available");
            break
        case Stream.Event.hasSpaceAvailable:
            // Write Data
            break
        case Stream.Event.errorOccurred:
            break
        case Stream.Event.endEncountered:
            break

        default:
            break
        }
    }
}

ПРИМЕЧАНИЕ: печатный аксессуар всегда один!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...