1.0.2 • Published 6 years ago

usb-barcode-transform v1.0.2

Weekly downloads
2
License
MIT
Repository
-
Last release
6 years ago

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.

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago