UNPKG

node-red-contrib-xkeys_joystick

Version:

Xkeys joystick node for Node-RED using DCD Protocol

58 lines (40 loc) 3.33 kB
# node-red-contrib-xkeys_joystick This is another of a group of Node-RED nodes which enable access to [X-keys](https://xkeys.com/) physical devices using the Dynamic Control Data Protocol (DCDP). Dedicated Node-RED nodes for each X-keys event of interest (button, jog, joystick, etc.) will communicate, using MQTT, with a lightweight [DCDP server](https://gitlab.com/chris.willing.oss/dcdp-server), whose sole purpose is to mediate access to any physically attached X-keys devices. This _xkeys\_joystick_ node encapsulates joystick events from any or specific X-keys devices. ## Installation This node requires _dcdp-server_ version 0.1.1 to be running. Please follow the instructions at the [_dcdp-server_](https://gitlab.com/chris.willing.oss/dcdp-server) development repository to install it or, to upgrade an existing installation, see the [_dcdp-server_ upgrade](https://gitlab.com/chris.willing.oss/dcdp-server#upgrading) instructions. The _node-red-contrib-xkeys\_joystick_ node itself is best installed from Node-RED's Palette manager. Go to the Palette manager's Install tab and search for _node-red-contrib-xkeys\_joystick_; then Install it once found. If not found, press the _Refresh module list_ button (two semicircular arrows) and search again. When installed, a new _xk joystick_ will be found in the palette tab in a dedicated _Xkeys_ category. ## Usage The full msg.payload of the _xkey\_joystick_ node is as follows: ``` { device: NAME, vendor_id: VID, product_id: PID, unit_id: UID, control_id: INDEX, x: XVAL, y: YVAL, z: ZVAL, deltaZ: DELTAZ } ``` where - NAME is an abbreviated name of the source device - VID is the Vendor ID of the source device - PID is the Product ID of the source device - UID is the Unit ID of the source device, typically 0 from the factory but assignable 0-255 - INDEX is the controller number (in case a device has multiple joystick controls) - XVAL, YVAL, ZVAL, DELTAZ are the x, y, z (twist) and deltaZ values emited by the device ## Issues When configuring the node, a drop down list of possible devices shoud be available. If not, instead displaying just a note to `Press Deploy button to see device list`, first follow that advice. If that is unsuccessful (still no list of possible devices), then check the status of the dcdp-server by running the command `sudo systemctl status dcdp-server` in a terminal. Typical output of a normally running dcdp-server will be: ``` pi@pi3b:~ $ sudo systemctl status dcdp-server ● dcdp-server.service - Run dcdp-server as background service Loaded: loaded (/etc/systemd/system/dcdp-server.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2021-10-14 09:31:55 AEST; 23h ago ``` whereas a non-running dcdp-server will show something like: ``` pi@pi3b:~ $ sudo systemctl status dcdp-server ● dcdp-server.service - Run dcdp-server as background service Loaded: loaded (/etc/systemd/system/dcdp-server.service; enabled; vendor preset: enabled) Active: failed (Result: timeout) since Fri 2021-10-15 08:41:37 AEST; 19s ago ``` If necessary, (re)start the dcdp-server with `sudo systemctl restart dcdp-server` ## Authors and acknowledgment Many thanks to [P.I. Engineering](https://xkeys.com/) for financial support and donation of several X-keys devices for development and testing. ## License MIT