【发布时间】:2019-01-25 05:46:50
【问题描述】:
我一直在尝试从 Desko Keyboard 获取信用卡数据,但我最终成功了,但问题是我每次刷卡时都会以不同的模式获取信用卡数据
下面是我的JS代码
var fs = require('Serialport');
function listenDevice() {
this.port = fs('COM8');
let dataComplete = '';
let count = 0;
this.port.on('open', () => {
console.log('sp: ' + this.port.path + ' port open event');
this.port.set({ dtr: true, rts: true }, function (err) {
if (err) {
console.log('Set Error: ', err.message);
this.isServiceError = true;
this.serviceErrorText = err;
}
});
});
this.port.on('data', (data) => {
console.log('sp: Data: ', data.toString('utf-8'));
});
}
这是我得到的卡片数据的模式:
sp:数据:CBZZZZZZZZZZZZZZZZ^XXXXXXXX sp:数据:XXXX X ^18082261485500005000000 !ZZZZZZZZZZZZZZZZ sp:数据:=1808226000005
sp:数据:CBZZZZZZZZZZZZZZZZ^XXXXXXXX sp:数据:XXXX X ^18082261485 sp:数据:500005000000 !ZZZZZZZZZZZZZZZZ=1808226000005
sp:数据:CBZZZZZZZZZZZZZZZZ^XXXXXXXX sp:数据:XXXX X ^18082261485500005000000 !ZZZZZZZZZZZZZZZZ=1808226000005
这里 X 表示持卡人姓名 Z表示卡号
sp: Data:log 已被调用两次或三次,但卡片数据相似。无论数据如何来,我都想连接这张卡数据。任何想法。
我正在使用串口读取数据
【问题讨论】:
-
喜欢这个?
dataComplete += data.toString('utf-8') -
我可以做到,但是当我真正能得到这个时,on data 函数会调用两到三次
-
所以每张卡触发9次?
-
No No...保留上述日志的参考。在“这是我得到的卡片的图案”下方:前两行是第一次刷卡,后两行是第二次刷同一张卡,依此类推。为了回答您的问题,第一次触发了两次(您可以看到 sp: Data: 在此处打印两次)
标签: javascript node.js credit-card magnetic-cards