From c1ef9e46be5c0870caaa5e8c5a5d2fe59a681ac4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Cola=C3=A7o?= <4465592+joaocolaco@users.noreply.github.com> Date: Sat, 28 Sep 2024 17:02:44 +0100 Subject: [PATCH 01/11] QRCode bug fix --- Sources/Printer/Receipt/QRCode.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sources/Printer/Receipt/QRCode.swift b/Sources/Printer/Receipt/QRCode.swift index 6ed7aec..a1499fb 100644 --- a/Sources/Printer/Receipt/QRCode.swift +++ b/Sources/Printer/Receipt/QRCode.swift @@ -42,11 +42,11 @@ public struct QRCode: ReceiptItem { } // Code type for QR code - // Set dot size + // Select the model var data = [29, 40, 107, 4, 0, 49, 65, m.rawValue, width] - // Select the model - data += [29, 40, 107, 3, 0, 49, 65, m.rawValue] + // Set module size + data += [29, 40, 107, 3, 0, 49, 67, 3] // Select the error correction level data += [29, 40, 107, 3, 0, 49, 69, level.rawValue] From 80012afd4e1a5c164eeb6f1ddfe3e527a149561d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Cola=C3=A7o?= <4465592+joaocolaco@users.noreply.github.com> Date: Sat, 28 Sep 2024 17:08:33 +0100 Subject: [PATCH 02/11] New changes --- Sources/Printer/Receipt/QRCode.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Printer/Receipt/QRCode.swift b/Sources/Printer/Receipt/QRCode.swift index a1499fb..98db106 100644 --- a/Sources/Printer/Receipt/QRCode.swift +++ b/Sources/Printer/Receipt/QRCode.swift @@ -59,7 +59,7 @@ public struct QRCode: ReceiptItem { data += ([29, 40, 107, pl, ph, 49, 80, 48] + contentData) // Print the symbol data in the symbol storage area - data += [29, 40, 107, 3, 0, 49, 81, 0] + data += [29, 40, 107, 3, 0, 49, 81, 48] return data } From 006a6899ecaa15b2cd77688b59e67f2dbd89636c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Cola=C3=A7o?= <4465592+joaocolaco@users.noreply.github.com> Date: Sat, 28 Sep 2024 17:25:53 +0100 Subject: [PATCH 03/11] Allow choosing a module size --- Sources/Printer/Receipt/QRCode.swift | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/Sources/Printer/Receipt/QRCode.swift b/Sources/Printer/Receipt/QRCode.swift index 98db106..1e74c40 100644 --- a/Sources/Printer/Receipt/QRCode.swift +++ b/Sources/Printer/Receipt/QRCode.swift @@ -20,19 +20,31 @@ public struct QRCode: ReceiptItem { case q = 50 // 25% case h = 51 // 30% } + public enum ModuleSize: UInt8 { + case s1D = 0x1D + case s28 = 0xs28 + case s6B = 0x6B + case s03 = 0x03 + case s00 = 0x00 + case s31 = 0x31 + case s43 = 0x43 + } public let m: Model + public let moduleSize: ModuleSize + public let content: String public let level: RecoveryLevel // Sets the size of the module for QR Code to n dots. width == height public let width: UInt8 - public init(content: String, width: UInt8 = 200, recovery level: RecoveryLevel = .m, m: Model = .m_2) { + public init(content: String, width: UInt8 = 200, recovery level: RecoveryLevel = .m, m: Model = .m_2, moduleSize: ModuleSize = .s03) { self.content = content self.m = m self.width = width self.level = level + self.moduleSize = moduleSize } // https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=145 @@ -43,10 +55,10 @@ public struct QRCode: ReceiptItem { // Code type for QR code // Select the model - var data = [29, 40, 107, 4, 0, 49, 65, m.rawValue, width] + var data = [29, 40, 107, 4, 0, 49, 65, m.rawValue, 0] // Set module size - data += [29, 40, 107, 3, 0, 49, 67, 3] + data += [29, 40, 107, 3, 0, 49, 67, moduleSize.rawValue] // Select the error correction level data += [29, 40, 107, 3, 0, 49, 69, level.rawValue] From 1dfb03cfe1840fa9d8760c4e7a6ee125d8d08b60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Cola=C3=A7o?= <4465592+joaocolaco@users.noreply.github.com> Date: Sat, 28 Sep 2024 17:27:10 +0100 Subject: [PATCH 04/11] Minor bug --- Sources/Printer/Receipt/QRCode.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Printer/Receipt/QRCode.swift b/Sources/Printer/Receipt/QRCode.swift index 1e74c40..a0aff9e 100644 --- a/Sources/Printer/Receipt/QRCode.swift +++ b/Sources/Printer/Receipt/QRCode.swift @@ -22,7 +22,7 @@ public struct QRCode: ReceiptItem { } public enum ModuleSize: UInt8 { case s1D = 0x1D - case s28 = 0xs28 + case s28 = 0x28 case s6B = 0x6B case s03 = 0x03 case s00 = 0x00 From 5cc14cebb03d3943a864505d3750d82ed3a1d5e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Cola=C3=A7o?= <4465592+joaocolaco@users.noreply.github.com> Date: Mon, 14 Oct 2024 22:42:17 +0100 Subject: [PATCH 05/11] Add @Observable conformance to BluetoothPrinterManager --- Sources/Printer/Hardware/Bluetooth/BluetoothPrinterManager.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Sources/Printer/Hardware/Bluetooth/BluetoothPrinterManager.swift b/Sources/Printer/Hardware/Bluetooth/BluetoothPrinterManager.swift index 7121dd0..0fec0c7 100644 --- a/Sources/Printer/Hardware/Bluetooth/BluetoothPrinterManager.swift +++ b/Sources/Printer/Hardware/Bluetooth/BluetoothPrinterManager.swift @@ -65,6 +65,7 @@ public extension BluetoothPrinterManager { static var specifiedCharacteristics: Set? } +@Observable public class BluetoothPrinterManager { public var updateHandler: (() -> Void)? From bee98e487ec851b8ac7a539c11983bb6a4cc1711 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Cola=C3=A7o?= <4465592+joaocolaco@users.noreply.github.com> Date: Mon, 14 Oct 2024 22:43:29 +0100 Subject: [PATCH 06/11] Update Package for iOS17 conformance --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index c01d3fe..fe3f2be 100644 --- a/Package.swift +++ b/Package.swift @@ -10,7 +10,7 @@ import PackageDescription let package = Package( name: "Printer", - platforms: [.iOS(.v9)], + platforms: [.iOS(.v17)], products: [ .library( name: "Printer", From a609e71b7948405b421abd8fc3f7e7d2c2cc0a19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Cola=C3=A7o?= <4465592+joaocolaco@users.noreply.github.com> Date: Mon, 14 Oct 2024 22:54:09 +0100 Subject: [PATCH 07/11] Update package --- Package.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/Package.swift b/Package.swift index fe3f2be..c41d5d6 100644 --- a/Package.swift +++ b/Package.swift @@ -17,7 +17,6 @@ let package = Package( targets: ["Printer"] ) ], - dependencies: [], targets: [ .target( name: "Printer", From a9c87f5ae9aaa761f334ee3a294ce99597de31c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Cola=C3=A7o?= <4465592+joaocolaco@users.noreply.github.com> Date: Mon, 14 Oct 2024 22:57:59 +0100 Subject: [PATCH 08/11] Update Package swift tools for compatibility --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index c41d5d6..ff66843 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:5.3 +// swift-tools-version:5.9 // Package.swift // Printer // From 7b16a658388485e0bb00f1e12d6babd4d0b16af9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Cola=C3=A7o?= <4465592+joaocolaco@users.noreply.github.com> Date: Sat, 19 Oct 2024 18:10:21 +0100 Subject: [PATCH 09/11] Update BluetoothPeripheralDelegate for @Observable --- .../Printer/Hardware/Bluetooth/BluetoothPeripheralDelegate.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Sources/Printer/Hardware/Bluetooth/BluetoothPeripheralDelegate.swift b/Sources/Printer/Hardware/Bluetooth/BluetoothPeripheralDelegate.swift index 94cf955..b1ff9f4 100644 --- a/Sources/Printer/Hardware/Bluetooth/BluetoothPeripheralDelegate.swift +++ b/Sources/Printer/Hardware/Bluetooth/BluetoothPeripheralDelegate.swift @@ -9,6 +9,7 @@ import CoreBluetooth import Foundation +@Observable class BluetoothPeripheralDelegate: NSObject, CBPeripheralDelegate { private var services: Set! private var characteristics: Set? From 29abbd32bdca43ecf50965aa45288f3285c547db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Cola=C3=A7o?= <4465592+joaocolaco@users.noreply.github.com> Date: Sat, 19 Oct 2024 18:18:35 +0100 Subject: [PATCH 10/11] Update BluetoothCentralManagerDelegate for @Observable --- .../Hardware/Bluetooth/BluetoothCentralManagerDelegate.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Sources/Printer/Hardware/Bluetooth/BluetoothCentralManagerDelegate.swift b/Sources/Printer/Hardware/Bluetooth/BluetoothCentralManagerDelegate.swift index 3b8def9..c9a90b9 100644 --- a/Sources/Printer/Hardware/Bluetooth/BluetoothCentralManagerDelegate.swift +++ b/Sources/Printer/Hardware/Bluetooth/BluetoothCentralManagerDelegate.swift @@ -9,6 +9,7 @@ import CoreBluetooth import Foundation +@Observable class BluetoothCentralManagerDelegate: NSObject, CBCentralManagerDelegate { enum UserDefaultKey { static let autoConnectUUID = "auto.connect.uuid" From 370b5f2b4706e2132b0e08d1341dee2412e23bbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Cola=C3=A7o?= <4465592+joaocolaco@users.noreply.github.com> Date: Sat, 19 Oct 2024 18:23:10 +0100 Subject: [PATCH 11/11] Compatibility for BluetoothCentralManagerDelegate @Observable --- .../Bluetooth/BluetoothCentralManagerDelegate.swift | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Sources/Printer/Hardware/Bluetooth/BluetoothCentralManagerDelegate.swift b/Sources/Printer/Hardware/Bluetooth/BluetoothCentralManagerDelegate.swift index c9a90b9..5b4a486 100644 --- a/Sources/Printer/Hardware/Bluetooth/BluetoothCentralManagerDelegate.swift +++ b/Sources/Printer/Hardware/Bluetooth/BluetoothCentralManagerDelegate.swift @@ -19,12 +19,12 @@ class BluetoothCentralManagerDelegate: NSObject, CBCentralManagerDelegate { var peripheralDelegate: BluetoothPeripheralDelegate? - open var centralManagerDidUpdateState: ((CBCentralManager) -> Void)? - open var centralManagerDidDiscoverPeripheralWithAdvertisementDataAndRSSI: + var centralManagerDidUpdateState: ((CBCentralManager) -> Void)? + var centralManagerDidDiscoverPeripheralWithAdvertisementDataAndRSSI: ((CBCentralManager, CBPeripheral, [String: Any], NSNumber) -> Void)? - open var centralManagerDidConnectPeripheral: ((CBCentralManager, CBPeripheral) -> Void)? - open var centralManagerDidFailToConnectPeripheralWithError: ((CBCentralManager, CBPeripheral, Error?) -> Void)? - open var centralManagerDidDisConnectPeripheralWithError: ((CBCentralManager, CBPeripheral, Error?) -> Void)? + var centralManagerDidConnectPeripheral: ((CBCentralManager, CBPeripheral) -> Void)? + var centralManagerDidFailToConnectPeripheralWithError: ((CBCentralManager, CBPeripheral, Error?) -> Void)? + var centralManagerDidDisConnectPeripheralWithError: ((CBCentralManager, CBPeripheral, Error?) -> Void)? typealias PeripheralChangeBlock = (UUID) -> Void