A system to ease working with LoupeDeck devices using CMD-line, OPC/UA or HTTP-client interfaces
version 0.2.x use a serial interface instead of WebSocket.
version 0.2.5
bash
init your new node package
npm init
install the loupedeck-commander dependency
npm install -s loupedeck-commander
`
Create a new configuration file with at least one profile or copy from here,
and replace the image references with your own icons (90x90px size):
- config.yaml
- profile-1.yaml
Create a index.mjs file to open up your loupedeck connection:
`javascript
save as index.mjs
import { BaseLoupeDeckHandler } from 'loupedeck-commander'
const handler = new BaseLoupeDeckHandler('config.yaml')
/**
* Stop the handlers when a signal like SIGINT or SIGTERM arrive
@param {} signal
*/
const stopHandler = async(signal) => {
console.log(Receiving ${signal} => Stopping processes.)
await handler.stop()
}
// Initiating the signal handlers:
// see https://www.tutorialspoint.com/unix/unix-signals-traps.htm
process.on('SIGINT', async (signal) => { stopHandler(signal) })
process.on('SIGTERM', async (signal) => { stopHandler(signal) })
// Start it
await handler.start()
// Take care of running background processes and stop them accordingly:
await new Promise((resolve) => process.once("SIGINT", resolve));
`
Run the script using the following command:
`bash
node index.mjs
`
If you end up with errors related to canvas module - please install the dependencies as mentioned below, and run npm install -s again
Thanks
Big thanks go out to foxxyz and his team maintaining a great javascript loopdeck module
Hints
$3
You may need to add your user to the dialout group to allow access to the LoupeDeck device, you could do su using the usermod as shown below
`bash
ls -la /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 Nov 30 12:59 /dev/ttyACM0
add the current user to the dialout group:
sudo usermod -a -G dialout $USER
`
After modifying users group you need to logout and login again to activate this change
$3
The library is using canvas to load images and render graphical content on the LoupeDeck devices.
Please follow the instructions to install the preconditions, to properly use canvas on your system.
Example for Ubuntu:
`bash
different build & graphic dev-libs are needed to use canvas module:
sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
`
$3
The buttons images shown on the different buttons should be prepared with specific resolutions:
- Main/Center Touch-Area: 90px x 90px per Button
- Left/Right Touch-Area: 90px x 270px per Button
- LoupeDeck CT Knob Touch-Area: 240px x 240px Button
if you already have suitable icons with the right aspect ratio, you could resize them with imagemagick/mogrify:
`bash
mkdir resized
mogrify -resize 90x90 -quality 100 -path resized *.png
``