'u kullanarak bir kez yazdırıyor Epson TM-T20
üzerinde Epson ePOS SDK for iOS
SDK kullanarak bir şey yazdırmak için aşağıdaki kodu kullanıyorum. Sorun, uygulamanın sadece bir kez basmasıdır. Yeniden basabilmek için uygulamanın yeniden başlatılması gerekiyor. Kodun nesi var? printer?.disconnect()
kullanarak belgelerinde kullanılan rağmeniOS yalnızca bir kez Epos2Printer
printer = Epos2Printer(printerSeries: 2, lang: 1)
printer?.setReceiveEventDelegate(self)
printer?.addText("text")
printer!.connect("TCP:192.168.1.185", timeout:Int(EPOS2_PARAM_DEFAULT))
printer!.beginTransaction()
printer?.sendData(Int(EPOS2_PARAM_DEFAULT))
printer?.endTransaction()
// printer?.disconnect()
printer?.clearCommandBuffer()
printer?.setReceiveEventDelegate(nil)
, uygulama donma yapar, bu yüzden dışarı yorum gerekiyordu.
API belgelerine göz atmak isterseniz, the SDK's download'un içinde bir PDF bulunmaktadır.
Güncelleme: Yanıta göre güncellenmiş kodu (app hala donar): SDK iOS demo göre
func printReceipt() {
var printer: Epos2Printer?
printer = Epos2Printer(printerSeries: 2, lang: 1)
if printer == nil {
print(“Printer not found!! 11")
}
printer?.setReceiveEventDelegate(self)
printer?.addTextFont(2)
printer?.addTextSize(1, height: 1)
printer?.addText(“My Text")
printer?.addFeedUnit(10)
printer?.addCut(0)
var result: Int = Int(EPOS2_SUCCESS.rawValue)
result = Int(printer!.connect("TCP:192.168.1.185", timeout:Int(EPOS2_PARAM_DEFAULT)));
result = Int(printer!.beginTransaction())
printer?.sendData(Int(EPOS2_PARAM_DEFAULT))
DispatchQueue.global(qos: DispatchQoS.QoSClass.default).async {
printer?.clearCommandBuffer()
printer?.setReceiveEventDelegate(nil)
printer?.endTransaction()
printer?.disconnect()
printer = nil;
}
}
olursa olsun), her zaman uygulamayı donar. Kullanmazsam, yazıcı uygulama tarafından işgal edilmiş gibi görünüyor, böylece kimse benden sonra birkaç dakika basamaz. – Linus