Guest User

Untitled

a guest
Dec 11th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. const pcsclite = require('pcsclite');
  2.  
  3. const pcsc = pcsclite();
  4.  
  5. pcsc.on('reader', function(reader) {
  6.  
  7. console.log('New reader detected', reader.name);
  8.  
  9. reader.on('error', function(err) {
  10. console.log('Error(', this.name, '):', err.message);
  11. });
  12.  
  13. reader.on('status', function(status) {
  14. console.log('Status(', this.name, '):', status);
  15. /* check what has changed */
  16. const changes = this.state ^ status.state;
  17. if (changes) {
  18. if ((changes & this.SCARD_STATE_EMPTY) && (status.state & this.SCARD_STATE_EMPTY)) {
  19. console.log("card removed");/* card removed */
  20. reader.disconnect(reader.SCARD_LEAVE_CARD, function(err) {
  21. if (err) {
  22. console.log(err);
  23. } else {
  24. console.log('Disconnected');
  25. }
  26. });
  27. } else if ((changes & this.SCARD_STATE_PRESENT) && (status.state & this.SCARD_STATE_PRESENT)) {
  28. console.log("card inserted");/* card inserted */
  29. reader.connect({ share_mode : this.SCARD_SHARE_SHARED }, function(err, protocol) {
  30. if (err) {
  31. console.log(err);
  32. } else {
  33. console.log('Protocol(', reader.name, '):', protocol);
  34. reader.transmit(new Buffer([0x00, 0xB0, 0x00, 0x00, 0x20]), 40, protocol, function(err, data) {
  35. if (err) {
  36. console.log(err);
  37. } else {
  38. console.log('Data received', data);
  39. reader.close();
  40. pcsc.close();
  41. }
  42. });
  43. }
  44. });
  45. }
  46. }
  47. });
  48.  
  49. reader.on('end', function() {
  50. console.log('Reader', this.name, 'removed');
  51. });
  52. });
  53.  
  54. pcsc.on('error', function(err) {
  55. console.log('PCSC error', err.message);
  56. });
Add Comment
Please, Sign In to add comment