diff --git a/README.md b/README.md index 331352c..b262d0d 100644 --- a/README.md +++ b/README.md @@ -70,86 +70,79 @@ const pcsc = pcsclite(); pcsc.on('reader', (reader) => { - console.log('New reader detected', reader.name); + console.log('New reader detected', reader.name); - reader.on('error', err => { - console.log('Error(', reader.name, '):', err.message); - }); + reader.on('error', err => { + console.log('Error(', reader.name, '):', err.message); + }); - reader.on('status', (status) => { + reader.on('status', (status) => { - console.log('Status(', reader.name, '):', status); + console.log('Status(', reader.name, '):', status); - // check what has changed - const changes = reader.state ^ status.state; + // check what has changed + const changes = reader.state ^ status.state; - if (!changes) { - return; + if (!changes) { + return; + } + + if ((changes & reader.SCARD_STATE_EMPTY) && (status.state & reader.SCARD_STATE_EMPTY)) { + + console.log("card removed"); + + reader.disconnect(reader.SCARD_LEAVE_CARD, err => { + + if (err) { + console.log(err); + return; } - // noinspection JSBitwiseOperatorUsage - if ((changes & reader.SCARD_STATE_EMPTY) && (status.state & reader.SCARD_STATE_EMPTY)) { + console.log('Disconnected'); - console.log("card removed"); + }); - reader.disconnect(reader.SCARD_LEAVE_CARD, err => { + } + else if ((changes & reader.SCARD_STATE_PRESENT) && (status.state & reader.SCARD_STATE_PRESENT)) { - if (err) { - console.log(err); - return; - } + console.log("card inserted"); - console.log('Disconnected'); - - }); - - return; + reader.connect({ share_mode: reader.SCARD_SHARE_SHARED }, (err, protocol) => { + if (err) { + console.log(err); + return; } - // noinspection JSBitwiseOperatorUsage - if ((changes & reader.SCARD_STATE_EMPTY) && (status.state & reader.SCARD_STATE_EMPTY)) { + console.log('Protocol(', reader.name, '):', protocol); - console.log("card inserted"); + reader.transmit(Buffer.from([0x00, 0xB0, 0x00, 0x00, 0x20]), 40, protocol, (err, data) => { - reader.connect({ share_mode: reader.SCARD_SHARE_SHARED }, (err, protocol) => { - - if (err) { - console.log(err); - return; - } - - console.log('Protocol(', reader.name, '):', protocol); - - reader.transmit(Buffer.from([0x00, 0xB0, 0x00, 0x00, 0x20]), 40, protocol, (err, data) => { - - if (err) { - console.log(err); - return; - } - - console.log('Data received', data); - reader.close(); - pcsc.close(); - - }); - - }); - - // noinspection UnnecessaryReturnStatementJS + if (err) { + console.log(err); return; - } + } - }); + console.log('Data received', data); + reader.close(); + pcsc.close(); - reader.on('end', () => { - console.log('Reader', reader.name, 'removed'); - }); + }); + + }); + + } + + }); + + reader.on('end', () => { + console.log('Reader', reader.name, 'removed'); + }); }); pcsc.on('error', err => { - console.log('PCSC error', err.message); + console.log('PCSC error', err.message); }); ``` diff --git a/examples/example.js b/examples/example.js index e2130d8..75f2784 100755 --- a/examples/example.js +++ b/examples/example.js @@ -39,11 +39,8 @@ pcsc.on('reader', (reader) => { }); - return; - } - - if ((changes & reader.SCARD_STATE_EMPTY) && (status.state & reader.SCARD_STATE_EMPTY)) { + else if ((changes & reader.SCARD_STATE_PRESENT) && (status.state & reader.SCARD_STATE_PRESENT)) { console.log("card inserted"); @@ -71,8 +68,6 @@ pcsc.on('reader', (reader) => { }); - // noinspection UnnecessaryReturnStatementJS - return; } });