UNPKG

@luoxiao123/bankcard-reader-start

Version:
49 lines (45 loc) 1.24 kB
import { parseDeviceOpts, } from '@waiting/bankcard-reader-base' import { info } from '@waiting/log' import { setPathDirectory, validateDllFile, } from '@waiting/shared-core' import * as ffi from 'ffi' import { dllFuncs, } from './config' import { disconnectDevice, findDeviceList, readIC, readMC } from './device' export async function init(options) { const deviceOpts = parseDeviceOpts(options) const { debug } = deviceOpts info('开始实达设备') if (debug) { info(deviceOpts) } await validateDllFile(deviceOpts.dllTxt) if (deviceOpts.dllSearchPath) { setPathDirectory(deviceOpts.dllSearchPath) } const apib = ffi.Library(deviceOpts.dllTxt, dllFuncs) const devices = findDeviceList(deviceOpts, apib) if (devices && devices.length) { return devices } else { throw new Error('未找到读卡设备') } } /** Read card data */ export function read(device) { const ret = { cardno: '', } try { ret.cardno = readIC(device) || readMC(device) || '' } catch (err) { ret.cardno = '' } try { disconnectDevice(device) } catch (ex) { throw ex } return Promise.resolve(ret) }