hybridgroup/cylon-sphero

View on GitHub
examples/setDataStreaming/setDataStreaming.js

Summary

Maintainability
B
5 hrs
Test Coverage
"use strict";

var Cylon = require("cylon");

Cylon.robot({
  connections: {
    sphero: { adaptor: "sphero", port: "/dev/rfcomm0" }
  },

  devices: {
    sphero: { driver: "sphero" }
  },

  work: function(bot) {
    console.log("Setting up Data Streaming...");

    bot.sphero.on("dataStreaming", function(data) {
      console.log("data:");
      console.log(data);
    });

    // The data sources available for data streaming from the
    // Sphero API are as follows:
    // ["motorsPWM", "imu", "accelerometer", "gyroscope", "motorsIMF"
    //  "quaternion", "odometer", "accelOne", "velocity"]
    // It is also possible to pass an opts object to setDataStreaming():
    var opts = {
      // n: int, divisor of the max sampling rate, 400 hz/s
      // n = 40 means 400/40 = 10 data samples per second,
      // n = 200 means 400/200 = 2 data samples per second
      n: 40,
      // m: int, number of data packets buffered before passing to the stream
      // m = 10 means each time you get data it will contain 10 data packets
      // m = 1 is usually best for real time data readings.
      m: 1,
      // pcnt: 1 -255, how many packets to send.
      // pcnt = 0 means unlimited data Streaming
      // pcnt = 10 means stop after 10 data packets
      pcnt: 0,
      dataSources: ["motorsPWM", "imu", "accelerometer", "gyroscope",
                    "motorsIMF", "quaternion", "odometer", "accelOne",
                    "velocity"]
    };

    bot.sphero.setDataStreaming(opts);
  }
}).start();