From 1f5924687617b19f1e06aebc7221ecd52747b637 Mon Sep 17 00:00:00 2001 From: Santiago Gimeno Date: Sat, 6 Jul 2013 22:03:22 +0200 Subject: [PATCH] Improve example - Call cardreader.connect on card insertion, cardreader.disconnect on card removal. - It fixes bug #3. --- README.md | 35 +++++++++++++++++++++-------------- examples/example.js | 33 +++++++++++++++++++++------------ 2 files changed, 42 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 640fe9d..160006b 100644 --- a/README.md +++ b/README.md @@ -37,26 +37,33 @@ Example if (changes) { if ((changes & this.SCARD_STATE_EMPTY) && (status.state & this.SCARD_STATE_EMPTY)) { console.log("card removed");/* card removed */ + reader.disconnect(function(err) { + if (err) { + console.log(err); + } else { + console.log('Disconnected'); + } + }); } else if ((changes & this.SCARD_STATE_PRESENT) && (status.state & this.SCARD_STATE_PRESENT)) { console.log("card inserted");/* card inserted */ + reader.connect(function(err, protocol) { + if (err) { + console.log(err); + } else { + console.log('Protocol(', this.name, '):', protocol); + reader.transmit(new Buffer([0x00, 0xB0, 0x00, 0x00, 0x20]), 40, 1, function(err, data) { + if (err) { + console.log(err); + } else { + console.log('Data received', data); + } + }); + } + }); } } }); - /* You can connect to a smart card */ - reader.connect(function(err, protocol) { - if (err) { - console.log(err); - } else { - console.log('Protocol(', this.name, '):', protocol); - /* And transmit data */ - reader.transmit(new Buffer([0x00, 0xB0, 0x00, 0x00, 0x20]), 40, 1, function(err, data) { - if (err) console.log(err); - else console.log('Data received', data); - }) - } - }); - reader.on('end', function() { console.log('Reader', this.name, 'removed'); }); diff --git a/examples/example.js b/examples/example.js index 62ec866..c6b2537 100644 --- a/examples/example.js +++ b/examples/example.js @@ -16,8 +16,29 @@ pcsc.on('reader', function(reader) { if (changes) { if ((changes & this.SCARD_STATE_EMPTY) && (status.state & this.SCARD_STATE_EMPTY)) { console.log("card removed");/* card removed */ + reader.disconnect(function(err) { + if (err) { + console.log(err); + } else { + console.log('Disconnected'); + } + }); } else if ((changes & this.SCARD_STATE_PRESENT) && (status.state & this.SCARD_STATE_PRESENT)) { console.log("card inserted");/* card inserted */ + reader.connect(function(err, protocol) { + if (err) { + console.log(err); + } else { + console.log('Protocol(', this.name, '):', protocol); + reader.transmit(new Buffer([0x00, 0xB0, 0x00, 0x00, 0x20]), 40, 1, function(err, data) { + if (err) { + console.log(err); + } else { + console.log('Data received', data); + } + }); + } + }); } } }); @@ -25,18 +46,6 @@ pcsc.on('reader', function(reader) { reader.on('end', function() { console.log('Reader', this.name, 'removed'); }); - - reader.connect(function(err, protocol) { - if (err) { - console.log(err); - } else { - console.log('Protocol(', this.name, '):', protocol); - reader.transmit(new Buffer([0x00, 0xB0, 0x00, 0x00, 0x20]), 40, 1, function(err, data) { - if (err) console.log(err); - else console.log('Data received', data); - }) - } - }); }); pcsc.on('error', function(err) {