Commit 543d49f6 by Administrator

PSAM卡接入

parent eee3e689
...@@ -101,6 +101,7 @@ class Application extends EventEmitter { ...@@ -101,6 +101,7 @@ class Application extends EventEmitter {
})); }));
}; };
/** /**
* 获取母卡导出密钥 * 获取母卡导出密钥
*/ */
......
...@@ -18,6 +18,13 @@ import ResApdu from './ResApdu'; ...@@ -18,6 +18,13 @@ import ResApdu from './ResApdu';
class Card extends EventEmitter { class Card extends EventEmitter {
/**
* PSAM卡构造方法
*
* @param device 读写设备
* @param attr PSAM卡序号
* @param protocol 通讯协议
*/
constructor(device, attr, protocol) { constructor(device, attr, protocol) {
super(); super();
this.device = device; this.device = device;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* <pre> * <pre>
* *
* *
* 描述:设备接入类 * 描述:设备对卡的操作
* 版本:1.0.0 * 版本:1.0.0
* 日期:2019/01/16 * 日期:2019/01/16
* 作者:ningzp@junmp.com.cn * 作者:ningzp@junmp.com.cn
...@@ -26,6 +26,10 @@ class Device extends EventEmitter { ...@@ -26,6 +26,10 @@ class Device extends EventEmitter {
/** /**
* 卡片是否已插入 * 卡片是否已插入
*
* @param changes
* @param reader 读写设备
* @param status 设备状态值
*/ */
const isCardInserted = (changes, reader, status) => { const isCardInserted = (changes, reader, status) => {
return (changes & reader.SCARD_STATE_PRESENT) && (status.state & reader.SCARD_STATE_PRESENT); return (changes & reader.SCARD_STATE_PRESENT) && (status.state & reader.SCARD_STATE_PRESENT);
...@@ -33,6 +37,10 @@ class Device extends EventEmitter { ...@@ -33,6 +37,10 @@ class Device extends EventEmitter {
/** /**
* 卡片是否已拔出 * 卡片是否已拔出
*
* @param changes
* @param reader 读写设备
* @param status 设备状态值
*/ */
const isCardRemoved = (changes, reader, status) => { const isCardRemoved = (changes, reader, status) => {
return (changes & reader.SCARD_STATE_EMPTY) && (status.state & reader.SCARD_STATE_EMPTY); return (changes & reader.SCARD_STATE_EMPTY) && (status.state & reader.SCARD_STATE_EMPTY);
...@@ -87,9 +95,9 @@ class Device extends EventEmitter { ...@@ -87,9 +95,9 @@ class Device extends EventEmitter {
/** /**
* 指令传输 * 指令传输
* *
* @param data 指令 * @param data 传输数据
* @param res_len 预期响应长度 * @param res_len 预期响应长度
* @param protocol 协议 * @param protocol 传输协议
* @param cb 回调 * @param cb 回调
*/ */
transmit(data, res_len, protocol, cb) { transmit(data, res_len, protocol, cb) {
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* <pre> * <pre>
* *
* *
* 描述: * 描述:读写器设备操作
* 版本:1.0.0 * 版本:1.0.0
* 日期:2019/01/16 * 日期:2019/01/16
* 作者:ningzp@junmp.com.cn * 作者:ningzp@junmp.com.cn
...@@ -14,8 +14,6 @@ ...@@ -14,8 +14,6 @@
* </pre> * </pre>
*/ */
const pcsclite = require('@pokusew/pcsclite'); const pcsclite = require('@pokusew/pcsclite');
import {EventEmitter} from 'events'; import {EventEmitter} from 'events';
import Device from './Device'; import Device from './Device';
...@@ -30,12 +28,16 @@ class Devices extends EventEmitter { ...@@ -30,12 +28,16 @@ class Devices extends EventEmitter {
this.pcsc.on('reader', (reader) => { this.pcsc.on('reader', (reader) => {
const device = new Device(reader); const device = new Device(reader);
this.devices[reader.name] = device; this.devices[reader.name] = device;
//设备保活事件 //设备保活事件
this.emit('device-activated', {device, devices: this.listDevices()}); this.emit('device-activated', {device, devices: this.listDevices()});
//设备断开
reader.on('end', () => { reader.on('end', () => {
delete this.devices[reader.name]; delete this.devices[reader.name];
this.emit('device-deactivated', {device, devices: this.listDevices()}); this.emit('device-deactivated', {device, devices: this.listDevices()});
}); });
//设备异常错误
reader.on('error', (error) => { reader.on('error', (error) => {
this.emit('error', {reader, error}); this.emit('error', {reader, error});
}); });
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论