From a68dd85c6e51bc662ff96f250d790eea8b6ef606 Mon Sep 17 00:00:00 2001
From: MultiMote <contact@mmote.ru>
Date: Wed, 9 Oct 2024 14:44:34 +0300
Subject: [PATCH] Fix printer serial number conversion for old devices

---
 src/packets/abstraction.ts | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/packets/abstraction.ts b/src/packets/abstraction.ts
index 5b9c43e..bea5925 100644
--- a/src/packets/abstraction.ts
+++ b/src/packets/abstraction.ts
@@ -306,7 +306,16 @@ export class Abstraction {
   public async getPrinterSerialNumber(): Promise<string> {
     const packet = await this.send(PacketGenerator.getPrinterInfo(PrinterInfoType.SerialNumber));
     Validators.u8ArrayLengthAtLeast(packet.data, 1);
-    return Utils.u8ArrayToString(packet.data);
+
+    if (packet.data.length < 4) {
+      return "-1";
+    }
+
+    if (packet.data.length >= 8) {
+      return Utils.u8ArrayToString(packet.data);
+    }
+
+    return Utils.bufToHex(packet.data.slice(0, 4), "").toUpperCase();
   }
 
   public async getPrinterBluetoothMacAddress(): Promise<string> {