Skip to content

mattiasrunge/phidget-interfacekit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Phidget Interfacekit node.js addon

Node.js bindings for the Interfacekit parts of the Phidget library. This module requires that the libphidget library is available in the system already.

Dependencies

sudo apt-get install libusb-dev
wget http://www.phidgets.com/downloads/libraries/libphidget.tar.gz
tar zxvf libphidget.tar.gz
cd libphidget-2.1.8.20140319
./configure
make
sudo make install

API

The module mimics the interfacekit parts of the phidget library API. So examples based on that API should be easy to convert to C++ versions. All functions are synchronous and will block if they take time, they will throw if errors occur. Five events are available via the EventEmitter API which phidget module extends.

var phidget = require("phidget-interfacekit");

try {
  var phid = phidget.create();

  phidget.on("attach", function(phid) {
    console.log("Phidget attached!");
    
    // Set output 1
    phidget.setOutputState(phid, 1, 1);
    
    console.log("Device Type: " + phidget.getDeviceType(phid));
    console.log("Device Serial Number: " + phidget.getSerialNumber(phid));
    console.log("Device Version: " + phidget.getDeviceVersion(phid));
    console.log("Device Input Count: " + phidget.getInputCount(phid));
    console.log("Device Output Count: " + phidget.getOutputCount(phid));
    console.log("Device Sensor Count: " + phidget.getSensorCount(phid));
  });

  phidget.on("detach", function(phid) {
    console.log("Phidget detached!");
  });

  phidget.on("error", function(phid, errorString) {
    console.log("Phidget error!", errorString);
  });

  phidget.open(phid, -1);

  console.log("Waiting for interface kit to be attached....");
} catch (e) {
  console.error(e);
}


// Available methods
/*
phidget.create                 = function();
phidget.open                   = function(handle);
phidget.waitForAttachment      = function(handle, milliseconds);
phidget.close                  = function(handle);
phidget.remove                 = function(handle);
phidget.getDeviceName          = function(handle);
phidget.getSerialNumber        = function(handle);
phidget.getDeviceVersion       = function(handle);
phidget.getDeviceStatus        = function(handle);
phidget.getLibraryVersion      = function();
phidget.getDeviceType          = function(handle);
phidget.getInputCount          = function(handle);
phidget.getInputState          = function(handle, index);
phidget.getOutputCount         = function(handle);
phidget.getOutputState         = function(handle, index);
phidget.setOutputState         = function(handle, index, state);
phidget.getSensorCount         = function(handle);
phidget.getSensorValue         = function(handle, index);
phidget.getSensorRawValue      = function(handle, index);
phidget.getSensorChangeTrigger = function(handle, index);
phidget.setSensorChangeTrigger = function(handle, index);
phidget.getRatiometric         = function(handle);
phidget.setRatiometric         = function(handle, value);
phidget.getDataRate            = function(handle, index);
phidget.setDataRate            = function(handle, index, milliseconds);
phidget.getDataRateMax         = function(handle, index);
phidget.getDataRateMin         = function(handle, index);
*/

About

Node.js bindings for the Interfacekit parts of the Phidget library.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published