2.7.0 • Published 3 years ago
@jcoreio/iron-pi-device-client v2.7.0
Iron Pi Device Client
Client library for reading and writing Iron Pi input and output states
Installation
npm install --save @jcoreio/iron-pi-device-client
or
yarn add @jcoreio/iron-pi-device-client
Usage
const {IronPiDeviceClient} = require('@jcoreio/iron-pi-device-client')
const client = new IronPiDeviceClient()
client.start()
Overriding the default socket path
By default, the client connects to a UNIX socket at /tmp/socket-iron-pi
. If you're running
in a container and the socket is mapped to a different location, use the optional unixSocketPath
parameter to specify the path to the socket:
const client = new IronPiDeviceClient({ unixSocketPath: '/volume/socket-iron-pi' })
Getting detected hardware
client.on('devicesDetected', hardware => console.log(hardware))
Output:
{
"devices": [
{
"address": 1,
"ioOffset": 0,
"model": {
"name": "iron-pi-cm8",
"version": "1.0.0",
"numDigitalInputs": 8,
"numDigitalOutputs": 8,
"numAnalogInputs": 4,
"hasConnectButton": true
}
},
{
"address": 2,
"ioOffset": 8,
"model": {
"name": "iron-pi-io16",
"version": "1.0.0",
"numDigitalInputs": 16,
"numDigitalOutputs": 16,
"numAnalogInputs": 8,
"hasConnectButton": false
}
}
],
"serialNumber": "ABCDEF",
"accessCode": "MNOPQRST"
}
Getting device input states
client.on('deviceInputStates', deviceInputStates => console.log(deviceInputStates))
{
"inputStates": [
{
"address": 1,
"ioOffset": 0,
"digitalInputs": [true, false, false, false, false, true, true, false],
"digitalInputEventCounts": [1, 0, 0, 0, 0, 2, 2, 0],
"digitalOutputs": [false, false, false, false, false, false, false, false],
"analogInputs": [4.98, 0, 0, 0],
"connectButtonPressed": false,
"connectButtonEventCount": 0
}
]
}
Setting output states
client.setOutputs({outputs: [
{
address: 1,
levels: [true, true, true, true, false, false, false, false]
},
]})
Sending LED messages
client.setLEDs({leds: [
{
address: 1,
colors: 'ggr'
},
{
address: 2,
colors: 'ggr'
},
]})
Messages are sent independently to each board.
The colors
field indicates a sequence of colors. For example, ggr
would flash a pattern of green, green, and red.
Supported colors are:
g
: greenr
: redy
: yellow