Linea-Pro DTDevices SDK. Не вызывается метод делегата magnetCardEncryptedData - PullRequest
0 голосов
/ 19 ноября 2018

Здесь я пытаюсь реализовать устройство считывания магнитных карт Linea-Pro с делегатами шифрования. Метод делегата был предоставлен самим SDK, и я подтверждаю его в своем классе, но он не вызывается. тогда как делегат func magneticCardData(_ track1: String!, track2: String!, track3: String!) может быть вызван. Может кто-нибудь сказать мне, что я скучаю.

class ViewController: UIViewController {    
    private let cardReader = DTDevices.sharedDevice() as! DTDevices
    var params : [AnyHashable: Any] = [:]
    //var keyID: Int32 = -1

    override func viewDidLoad() {
        super.viewDidLoad()
        cardReader.addDelegate(self)
        cardReader.connect()
     }  
}

extension ViewController:DTDeviceDelegate {
    func connectionState(_ state: Int32) {
        if state == CONN_STATES.CONNECTED.rawValue {
            DispatchQueue.main.async {
                do {
                    try self.cardReader.emsrSetEncryption(ALG_EH_ECC,params: self.params)
                }catch let error {
                    print(error.localizedDescription)
                }
            }
        }
    }

    func magneticCardEncryptedData(_ encryption: Int32, tracks: Int32, data: Data!) {
        print(data)
    }

    func magneticCardEncryptedData(_ encryption: Int32, tracks: Int32, data: Data!, track1masked: String!, track2masked: String!, track3: String!) {
        print(data)
    }  
}
...