spark-tinker

0.1.0 • Public • Published

sparkjs

Spark-Tinker is a plugin made to work with Spark Api and interact with the default tinker firmware included with the Spark core. It uses node.js and can run on Windows, Mac OS X, and Linux fairly easily. You can use it to create your own plugins and use in conjuction with the Spark Api. It's also open source so you can edit, change or even send in pull requests if you want to share!

Instalation

First, make sure you have node.js installed!

Next, open a command prompt or terminal, and install by typing:

$ npm install spark
$ npm install spark-tinker

Usage

/*jslint node: true */
"use strict";
 
var Spark =require('spark');
 
// Make sure the spark-tinker npm module is installed before
// including the plugin.
Spark.include('tinker');
 
Spark.on('login', function() {
  // If login is successful we get and accessToken,
  // we'll use that to call Spark API ListDevices
  var devicesPr = Spark.listDevices();
 
  devicesPr.then(
    // We get an array with devices back and we list them
    function(devices){
      console.log('API call List Devices: ', devices);
 
      // callback to be executed by each core
      var callback = function(err, data) {
        if (err) {
          console.log('An error occurred while calling function:', err);
        } else {
          console.log('function called successfully:', data);
        }
      };
 
      // We get the Spark core device and call Tinker commands on it:
      var core = devices[0];
      core.tinker.digitalWrite('D0', 'LOW', callback);
      //core.tinker.digitalRead('D1', callback);
      //core.tinker.analogWrite('D0', 128, callback);
      //core.tinker.analogRead('D0', callback);
    },
    function(err) {
      console.log('API call failed: ', err);
    }
  );
});
 
// Login as usual
Spark.login({ username: 'myUserName', password: 'MyPassword' });
 

For further examples visit /examples directory: https://github.com/spark/sparkjs/tree/master/examples

Getting Started

It's important that you login before executing any command and that you pull the list of devices from the cloud before using them, since all plugins that interact with custom firmwares and work on the devices themselves.

Every function returns a promise for you to handle the async result, or you can pass a callback function, or add a listner for that specific event. (Please note that if a callback function is passed, the function will return null instead of a promise)

Device object

You can get a list of devices by calling: spark.getDevices()

This plugin will add the following functions to each device:

  • digitalWrite() -> spark.devices[0].tinker.digitalWrite();
  • digitalRead() -> spark.devices[0].tinker.digitalRead();
  • analogRead() -> spark.devices[0].tinker.analogRead();
  • analogWrite() -> spark.devices[0].tinker.analogWrite();

Setup your dev environment

  • Install your local dependencies:
$ npm install
  • Install globally mocha, istanbul and jshint
$ npm install -g mocha
$ npm install -g istanbul
$ npm install -g jshint

How to test

make test

Lint your code

make lint

Coverage report

make cover

Readme

Keywords

none

Package Sidebar

Install

npm i spark-tinker

Homepage

spark.io

Weekly Downloads

2

Version

0.1.0

License

none

Last publish

Collaborators

  • dmiddlecamp