usb-barcode-transform

1.0.2 • Public • Published

Barcode USB scanner stream

Build Status

A NodeJs transform stream to convert a barcode (from an USB scanner) into a string representation.

npm --save usb-barcode-transform

Scanner Example

const fs = require('fs');
const Scanner = require('usb-barcode-transform/scanner');
 
const stream = fs.createReadStream("/dev/input/by-id/usb-USB_Adapter_USB_Device-event-kbd",{
  flags: 'r',
  encoding: null,
  fd: null,
  autoClose: true
});
 
stream
  .pipe(new Scanner())
  .pipe(process.stdout);

Groupped Scanner Example

The scanner will send every single character as an ASCII character. The Group stream estract only visible characters and exclude any escape sequence.

const fs = require('fs');
const barcode = require('usb-barcode-transform');
 
const stream = fs.createReadStream("/dev/input/by-id/usb-USB_Adapter_USB_Device-event-kbd",{
  flags: 'r',
  encoding: null,
  fd: null,
  autoClose: true
});
 
stream
  .pipe(new barcode.Scanner())
  .pipe(new barcode.Group())
  .pipe(process.stdout);

The Group send a single event that represent the decoded value (1234567) without any escape sequence or carriage return \n.

Basics

The event struct in the linux kernel have this interface

struct input_event {
    struct timeval time;
    unsigned short type;
    unsigned short code;
    unsigned int value;
};

'time' is the timestamp, it returns the time at which the event happened. Type is for example EV_REL for relative moment, EV_KEY for a keypress or release. More types are defined in include/uapi/linux/input-event-codes.h.

'code' is event code, for example REL_X or KEY_BACKSPACE, again a complete list is in include/uapi/linux/input-event-codes.h.

'value' is the value the event carries. Either a relative change for EV_REL, absolute new value for EV_ABS (joysticks ...), or 0 for EV_KEY for release, 1 for keypress and 2 for autorepeat.

Package Sidebar

Install

npm i usb-barcode-transform

Weekly Downloads

1

Version

1.0.2

License

MIT

Unpacked Size

10.4 kB

Total Files

12

Last publish

Collaborators

  • wdalmut