decoderDataReceived никогда не вызывается из Captuvo SL22 - PullRequest
0 голосов
/ 21 февраля 2019

Я строю систему кассовых терминалов для iPod в салазках SL22 Captuvo.У меня успешно установлен iOS SDK и работает мост React Native (я могу вызывать методы из моего класса swift из React Native, и swift может отправлять данные в React Native через обратные вызовы и отправители / прослушиватели событий).Однако метод делегата decoderDataReceived (среди прочего) никогда не вызывается.Вызываются другие методы делегата (decoderReady и scanKeyAction).

Физический сканер работает правильно.После загрузки приложения вызывается метод делегата decoderReady.Я могу нажать аппаратные кнопки на боковой панели устройства, чтобы включить лазер, и он издает звуковые сигналы и выключается, когда считывает штрих-код.Однако ни один из методов делегата для полученных данных декодера не вызывается.Ниже приведен соответствующий код.

import Foundation

@objc(CaptuvoBridge)
class CaptuvoBridge: RCTEventEmitter, CaptuvoEventsProtocol {
override func supportedEvents() -> [String]! {
return ["scanDetected","started"]
}

@objc func turnOn() {
print("Scanner is turning ON")
Captuvo.sharedCaptuvoDevice().addDelegate(self)
Captuvo.sharedCaptuvoDevice().startDecoderHardware()
Captuvo.sharedCaptuvoDevice().startPMHardware()
}
@objc func turnOff() {
print("Turning scanner off")
Captuvo.sharedCaptuvoDevice().stopDecoderHardware()
}
@objc func scan() {
print("Scanning...")
Captuvo.sharedCaptuvoDevice().startDecoderScanning()
}
@objc func stopScan() {
Captuvo.sharedCaptuvoDevice().stopDecoderScanning()
}

// DELEGATE METHODS
func decoderDataReceived(_ data: String!) {
// NOT CALLED
self.sendEvent(withName: "scanDetected", body: data)
}
func decoderRawDataReceived(_ data: Data!) {
// NOT CALLED
self.sendEvent(withName: "scanDetected", body: "Raw Data Received")
}
func decoderPassThroughReturn(_ data: Data!) {
// NOT CALLED
self.sendEvent(withName: "scanDetected", body: "decoder Pass Through Return Data")
}
func decoderReady() {
// IS CALLED
self.sendEvent(withName: "started", body: "Decoder ready")
}
func scanKeyAction(_ status: ScanKeyStatus) {
// IS CALLED
self.sendEvent(withName: "started", body: "Hardware scan button pressed")
}
func decoderBeeper(forGoodReadStatus isEnabled: Bool) {
// NOT CALLED
self.sendEvent(withName: "started", body: "Decoder Beeper Called")
}

// TESTING
@objc func getName(_ callback: RCTResponseSenderBlock) {
let name = Captuvo.sharedCaptuvoDevice().getName() ?? "No Name Found"
print("NAME OF CAPTUVO IS: ", name)
callback([name])
}
@objc func fakeScan() {
self.sendEvent(withName: "scanDetected", body: "12345678")
}
}

Спасибо за любую помощь или предложения.

...