get and set terminal attributes, line control, get and set baud rate
npm install termios-fixedv12
termios bindings for node.js
============================
node-termios is a module for getting and setting terminal attributes.
API
---
* an attr object may contain on or more of the following boolean fields:
* attr.iflag:
* IGNBRK: ignore BREAK condition
* BRKINT: map BREAK to SIGINT
* IGNPAR: ignore (discard) parity errors
* PARMRK: mark parity and framing errors
* INPCK: enable checking of parity errors
* ISTRIP: strip 8th bit off chars
* INLCR: map NL into CR
* IGNCR: ignore CR
* ICRNL: map CR to NL (ala CRMOD)
* IXON: enable output flow control
* IXOFF: enable input flow control
* IXANY: any char will restart after stop
* IMAXBEL: ring bell on input queue full
* attr.oflag:
* OPOST: enable following output processing
* ONLCR: map NL to CR-NL (ala CRMOD)
* OCRNL: map CR to NL
* ONOCR: No CR output at column 0
* ONLRET: NL performs the CR function
* attr.cflag:
* CSIZE: character size mask
* CS5: 5 bits (pseudo)
* CS6: 6 bits
* CS7: 7 bits
* CS8: 8 bits
* CSTOPB: send 2 stop bits
* CREAD: enable receiver
* PARENB: parity enable
* PARODD: odd parity, else even
* HUPCL: hang up on last close
* CLOCAL: ignore modem status lines
* attr.lflag:
* ECHOKE: visual erase for line kill
* ECHOE: visually erase chars
* ECHOK: echo NL after line kill
* ECHO: enable echoing
* ECHONL: echo NL even if ECHO is off
* ECHOPRT: visual erase mode for hardcopy
* ECHOCTL: echo control chars as ^(Char)
* ISIG: enable signals INTR, QUIT, [D]SUSP
* ICANON: canonicalize input lines
* IEXTEN: enable DISCARD and LNEXT
* EXTPROC: external processing
* TOSTOP: stop background jobs from output
* FLUSHO: output being flushed (state)
* PENDIN: XXX retype pending input (state)
* NOFLSH: don't flush after interrupt
* XCASE: canonical upper/lower case
* .setattr(fd, attr): Sets attributes of the terminal bound to the
file descriptor:
* fd: file descriptor
* attr: object as described above
* returns: undefined
* .getattr(fd): Returns an object describing the current settings
of the terminal bound to the file descriptor:
* fd: file descriptor
Examples
--------
````
var termios = require('termios'), data = '';
console.log("Please type something:");
process.stdin.on("data", function(d) {data += d.toString()});
setTimeout(function() {
console.log("Disabling ECHO. You won't see what you type now");
termios.setattr(process.stdin.fd, {lflag: { ECHO: false }})
console.log("\nYou typed '"+data+"'");
data = "";
}, 3000);
setTimeout(function() {
console.log("Enabling ECHO.");
termios.setattr(process.stdin.fd, {lflag: { ECHO: false }})
console.log("\nYou typed '"+data+"'");
}, 6000);
Changelog
---------
* v0.1 - initial release