High-level bindings to parallel port for node.js.
Important: this module works only under linux through the parport
driver,
so you might need to compile kernel or modules (on gentoo mostly).
$ npm install lpt
var lpt = require('lpt')
, port = new lpt.Port(0, 'byte', false) // open /dev/parport0 with forced `byte` mode set
// , port = new lpt.Port(0) // the same
console.log(port.data) // read data register
console.log(port.status.busy) // get /BUSY pin status
port.data = 123 // write data register
port.control.init = true // write to control register
Constructor receives the following parameters:
port number
parallel port mode
- optional. Can be:spp
nibble
byte
- defaultepp
ecp
negotiate port
- optional. Iftrue
will try IEEE 1284 compliant mode negotiation.
Port
class provides next fields:
Field | Type | Description | Read/Write | Pin num |
---|---|---|---|---|
data | byte | Data register | R/W | 2..9 |
control.init | bool | INIT | R/W | 16 |
control.select | bool | /SELECT_IN * | R/W | 17 |
control.autofd | bool | /AUTO_FEED * | R/W | 14 |
control.strobe | bool | /STROBE * | R/W | 1 |
status.ack | bool | ACK | R | 10 |
status.busy | bool | /BUSY * | R | 11 |
status.error | bool | ERROR | R | 15 |
status.select | bool | SELECT | R | 13 |
status.paperOut | bool | PAPEROUT | R | 12 |
- | - | Ground | - | 18..25 |
*Note that this pins are inverted by node-lpt
itself
**You can read control pins only after you wrote something to it. Before that moment you can't rely on pin status
MIT