@posx/capacitor-usb-printer 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -153,6 +153,7 @@ addListener(eventName: 'deviceDetached', listenerFunc: (device: UsbDevice) => vo
153
153
  | **`vendorId`** | <code>number</code> |
154
154
  | **`productId`** | <code>number</code> |
155
155
  | **`deviceName`** | <code>string</code> |
156
+ | **`portPath`** | <code>string</code> |
156
157
  | **`manufacturerName`** | <code>string</code> |
157
158
  | **`productName`** | <code>string</code> |
158
159
  | **`serialNumber`** | <code>string</code> |
@@ -9,10 +9,12 @@ import android.hardware.usb.*;
9
9
  import android.os.Build;
10
10
  import android.util.Log;
11
11
 
12
+ import java.io.File;
12
13
  import java.util.ArrayList;
13
14
  import java.util.Collections;
14
15
  import java.util.List;
15
16
  import java.util.Map;
17
+ import java.util.Scanner;
16
18
  import java.util.concurrent.ConcurrentHashMap;
17
19
 
18
20
  public class UsbPrinter {
@@ -33,6 +35,22 @@ public class UsbPrinter {
33
35
  return new ArrayList<>(usbManager.getDeviceList().values());
34
36
  }
35
37
 
38
+ public String getPortPath(UsbDevice device) {
39
+ String[] parts = device.getDeviceName().split("/");
40
+ try {
41
+ int busNum = Integer.parseInt(parts[parts.length - 2]);
42
+ int devNum = Integer.parseInt(parts[parts.length - 1]);
43
+ for (File f : new File("/sys/bus/usb/devices").listFiles()) {
44
+ File bf = new File(f, "busnum"), df = new File(f, "devnum");
45
+ if (!bf.exists()) continue;
46
+ if (Integer.parseInt(new Scanner(bf).nextLine()) == busNum &&
47
+ Integer.parseInt(new Scanner(df).nextLine()) == devNum)
48
+ return f.getName();
49
+ }
50
+ } catch (Exception ignored) {}
51
+ return "";
52
+ }
53
+
36
54
  public String getSerialNumber(UsbDevice device) {
37
55
  try {
38
56
  return device.getSerialNumber() != null ? device.getSerialNumber() : "";
@@ -85,6 +85,7 @@ public class UsbPrinterPlugin extends Plugin {
85
85
  d.put("vendorId", device.getVendorId());
86
86
  d.put("productId", device.getProductId());
87
87
  d.put("deviceName", device.getDeviceName());
88
+ d.put("portPath", implementation.getPortPath(device));
88
89
  d.put("manufacturerName", device.getManufacturerName() != null ? device.getManufacturerName() : "");
89
90
  d.put("productName", device.getProductName() != null ? device.getProductName() : "");
90
91
  return d;
package/dist/docs.json CHANGED
@@ -184,6 +184,13 @@
184
184
  "complexTypes": [],
185
185
  "type": "string"
186
186
  },
187
+ {
188
+ "name": "portPath",
189
+ "tags": [],
190
+ "docs": "",
191
+ "complexTypes": [],
192
+ "type": "string"
193
+ },
187
194
  {
188
195
  "name": "manufacturerName",
189
196
  "tags": [],
@@ -4,6 +4,7 @@ export interface UsbDevice {
4
4
  vendorId: number;
5
5
  productId: number;
6
6
  deviceName: string;
7
+ portPath: string;
7
8
  manufacturerName: string;
8
9
  productName: string;
9
10
  serialNumber: string;
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["import type { PluginListenerHandle } from '@capacitor/core';\r\n\r\nexport interface UsbDevice {\r\n deviceId: number;\r\n vendorId: number;\r\n productId: number;\r\n deviceName: string;\r\n manufacturerName: string;\r\n productName: string;\r\n serialNumber: string;\r\n}\r\n\r\nexport interface UsbPrinterPlugin {\r\n listDevices(): Promise<{ devices: UsbDevice[] }>;\r\n requestPermission(options: { deviceId: number }): Promise<{ granted: boolean }>;\r\n connect(options: { deviceId: number }): Promise<{ connected: boolean }>;\r\n disconnect(options: { deviceId: number }): Promise<void>;\r\n print(options: { deviceId: number; data: string }): Promise<void>;\r\n getStatus(options: { deviceId: number }): Promise<{ connected: boolean; deviceName: string; serialNumber: string }>;\r\n addListener(eventName: 'deviceAttached', listenerFunc: (device: UsbDevice) => void): Promise<PluginListenerHandle>;\r\n addListener(eventName: 'deviceDetached', listenerFunc: (device: UsbDevice) => void): Promise<PluginListenerHandle>;\r\n}\r\n"]}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["import type { PluginListenerHandle } from '@capacitor/core';\r\n\r\nexport interface UsbDevice {\r\n deviceId: number;\r\n vendorId: number;\r\n productId: number;\r\n deviceName: string;\r\n portPath: string;\r\n manufacturerName: string;\r\n productName: string;\r\n serialNumber: string;\r\n}\r\n\r\nexport interface UsbPrinterPlugin {\r\n listDevices(): Promise<{ devices: UsbDevice[] }>;\r\n requestPermission(options: { deviceId: number }): Promise<{ granted: boolean }>;\r\n connect(options: { deviceId: number }): Promise<{ connected: boolean }>;\r\n disconnect(options: { deviceId: number }): Promise<void>;\r\n print(options: { deviceId: number; data: string }): Promise<void>;\r\n getStatus(options: { deviceId: number }): Promise<{ connected: boolean; deviceName: string; serialNumber: string }>;\r\n addListener(eventName: 'deviceAttached', listenerFunc: (device: UsbDevice) => void): Promise<PluginListenerHandle>;\r\n addListener(eventName: 'deviceDetached', listenerFunc: (device: UsbDevice) => void): Promise<PluginListenerHandle>;\r\n}\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@posx/capacitor-usb-printer",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "description": "Capacitor plugin for USB ESC/POS thermal printer via Android USB Host API",
5
5
  "main": "dist/plugin.cjs.js",
6
6
  "module": "dist/esm/index.js",