1.0.2 • Published 5 years ago

mj-cue-sdk-node v1.0.2

Weekly downloads
5
License
ISC
Repository
github
Last release
5 years ago

mj-node-cue-sdk


Node.js Corsair Cue SDK wrapper

node-cue-sdk is a Node.js addon for loading and and using the Cue SDK in pure JavaScript.

This is an update for the node-cue-sdk wrapper orginal created by Yannick de Jong

Added support for iCue SDKv3 - including Lighting Node Pro and Commander Pro. Also made other updates to fit my own needs.

I currently dont own any corsair keyboards - so i'm unable to test some functionality - however everything i needed works ( so now i can play CS:GO with reactive RGB lighting! )

If Corsair could provide me with a new keyboard or any other RGB accessory I'll be happy to add support for it!

Original Documentation

Example with asynchonous functions

var CueSDK = require('mj-cue-sdk-node');

var cue = new CueSDK.CueSDK();

// The CueSDK.set function can also work asynchonously, just add a function to the arguments and it'll be asynchonous
cue.set('A', 255, 255, 0, () => { // This is the function which get called after completion
    console.log('Lights set!');
});

cue.set([
    ['A', 255, 0, 0],
    ['S', 0 , 255, 0],
    ['D', 0, 0, 255]
], () => { // This is the function which get called after completion
    console.log('Three lights set!');
}); // Set A to red, S to green, and D to blue

// fade from black [0, 0, 0] to cyan [0, 255, 255] in 1000ms
cue.fade('Logo', [0, 0, 0], [0, 255, 255], 1000, () {
    console.log('This will run when the fading has completed!');
});

Example with synchonous functions

var CueSDK = require('mj-cue-sdk-node');

var cue = new CueSDK.CueSDK();

cue.set('W', 255, 255, 255); // Set the W key to #FFFFFF aka white

// You can set multiple colors at the time!
cue.set([
    ['A', 255, 0, 0],
    ['S', 0 , 255, 0],
    ['D', 0, 0, 255]
]); // Set A to red, S to green, and D to blue

// Special keys/lights are also supported!
cue.set('Logo', 255, 255, 0); // Make the Corsair logo yellow

// To turn off all leds
cue.clear();

Example for DIY-devices - Lighting Node and Commander Pro

var CueSDK = require('mj-cue-sdk-node');
var cue = new CueSDK.CueSDK();

var deviceCount = cue.getCorsairDeviceCount();
console.log('deviceCount = '+deviceCount);

var ledIdsArray = [];

//loop through devices
for (i = 0; i<deviceCount; i++) {
  var deviceCheck = cue.getCorsairDeviceType(i);
  console.log(deviceCheck.model);

  if(deviceCheck.model == 'Lighting Node Pro'){
    var leds = cue.getCorsairPositionsByDeviceIndex(i);
    for (var i in leds) {
      if(leds[i].ledId != undefined){
        ledIdsArray.push(leds[i].ledId);
      }
    }
  }
  if(deviceCheck.model == 'Commander Pro'){
    var leds = cue.getCorsairPositionsByDeviceIndex(i);
    for (var i in leds) {
      if(leds[i].ledId != undefined){
        ledIdsArray.push(leds[i].ledId);
      }
    }
  }
}

cue.fadeSingleColour(ledIdsArray, [255, 0, 0], [0, 0, 0], 3000);

Requirements

  • Windows (Linux and Mac OSX are currently not supported by the CueSDK)
  • Node.js 5.0.0 or higher

Installation

Make sure you've installed all the necessary build tools, then run this command in the source directory:

$ npm install mj-cue-sdk-node