Blame view

美国版/Food Labeling Management App UniApp/src/utils/print/manager/driverRegistry.ts 1.37 KB
961eecae   “wangming”   对打印机进行开发
1
  import { d320faxDriver } from '../drivers/d320fax'
699ea6e8   杨鑫   完善打印逻辑
2
  import { genericEscDriver } from '../drivers/genericEsc'
961eecae   “wangming”   对打印机进行开发
3
  import { genericTscDriver } from '../drivers/genericTsc'
4ad9ae43   “wangming”   1111
4
  import { gpD320fxDriver } from '../drivers/gpD320fx'
961eecae   “wangming”   对打印机进行开发
5
6
7
8
9
  import { gpR3Driver } from '../drivers/gpR3'
  import type { PrinterCandidate, PrinterDriver, ResolvedPrinterCandidate } from '../types/printer'
  
  const printerDrivers: PrinterDriver[] = [
    gpR3Driver,
4ad9ae43   “wangming”   1111
10
    gpD320fxDriver,
961eecae   “wangming”   对打印机进行开发
11
    d320faxDriver,
699ea6e8   杨鑫   完善打印逻辑
12
    genericEscDriver,
961eecae   “wangming”   对打印机进行开发
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
    genericTscDriver,
  ]
  
  export function getPrinterDrivers (): PrinterDriver[] {
    return printerDrivers
  }
  
  export function getPrinterDriverByKey (key?: string): PrinterDriver {
    return printerDrivers.find(driver => driver.key === key) || genericTscDriver
  }
  
  export function resolvePrinterDriver (device: PrinterCandidate): PrinterDriver {
    let bestDriver: PrinterDriver = genericTscDriver
    let bestScore = -1
    printerDrivers.forEach((driver) => {
      const score = driver.matches(device)
      if (score > bestScore) {
        bestScore = score
        bestDriver = driver
      }
    })
    return bestDriver
  }
  
  export function describePrinterCandidate (device: PrinterCandidate): ResolvedPrinterCandidate {
    const driver = resolvePrinterDriver(device)
    return {
      ...device,
      driverKey: driver.key,
      driverName: driver.displayName,
      protocol: driver.protocol,
      resolvedType: driver.resolveConnectionType(device),
    }
  }