cp2102n
v0.3.0
Published
Cross-platform Node.js binding for controlling GPIOs on Silicon Labs CP2102N
Downloads
13
Readme
node-cp2102n
Cross-platform Node.js binding for controlling GPIOs on Silicon Labs CP2102N.
Installation
npm install --save cp2102n
Prebuilt addon
This package shiped with prebuilt Node.js native addon for following platforms:
| | linux | darwin | win32 | |-------|-------|--------|-------| | x64 | ✓ | ✓ | TODO | | arm | ✓ | n/a | n/a | | arm64 | ✓ | TODO | |
Build from source
npm install --save cp2102n --build-from-source
Additional build dependencies are required on different platforms:
Debian/Ubuntu
sudo apt install -y build-essential cmake ninja-build pkg-config libusb-1.0-0-dev
macOS
brew install cmake ninja pkg-config libusb
Runtime depencencies
Debian/Ubuntu
sudo apt install -y libusb-1.0-0
macOS
brew install libusb
Usage
import { openInterface } from 'cp2102n';
try {
const device = await openInterface('/dev/cu.usbserial-1140');
await device.set({ [0]: true, [6]: true });
device.close();
} catch (e) {
console.error(e);
}
APIs
openInterface(path)
path
-string
- Returns:
Promise<CP2102N>
Open an interface with path
(i.e. /dev/cu.usbserialXXX
on macOS, /dev/ttyUSBX
on Linux). Throws if path
is not a valid CP2102N device.
Class: CP2102N
cp2102n.set(state)
state
-{ [pin: number]: boolean }
- Returns:
Promise<{ [pin: number]: boolean }>
Set state of pins to high (true
) or low (false
). Returns the latest state.
cp2102n.get()
- Returns:
Promise<{ [pin: number]: boolean }>
Get state of all PINs.
cp2102n.setRaw(state, mask)
state
-number
mask
-number
- Returns:
Promise<number>
Set state of masked pins in bits. Returns the latest state bits.
cp2102n.getRaw()
- Returns:
Promise<number>
Get state of pins in bits.
cp2102n.close()
Close interface.