examples/sf-sphero/sf-sphero.js
"use strict";
var Cylon = require("cylon");
Cylon.robot({
name: "salesforce",
totalBucks: 0,
connections: {
sphero: { adaptor: "sphero", port: "/dev/rfcomm0" },
salesforce: {
adaptor: "force",
sfuser: process.env.SF_USERNAME,
sfpass: process.env.SF_SECURITY_TOKEN,
orgCreds: {
clientId: process.env.SF_CLIENT_ID,
clientSecret: process.env.SF_CLIENT_SECRET,
redirectUri: "http://localhost:3000/oauth/_callback"
}
}
},
devices: {
salesforce: { driver: "force", connection: "salesforce" },
sphero: { driver: "sphero", connection: "sphero" }
},
work: function(my) {
console.log("Setting up collision detection.");
my.sphero.detectCollisions();
my.sphero.stop();
my.sphero.setRGB(0x00FF00);
my.sphero.roll(90, Math.floor(Math.random() * 360));
my.salesforce.subscribe("/topic/SpheroMsgOutbound", function(data) {
var name = data.sobject.Sphero_Name__c,
bucks = data.sobject.Bucks__c;
console.log(
"Sphero: " + name +
", data Bucks: " + bucks +
", SM_Id: " + data.sobject.Id
);
my.sphero.setRGB(0x00FF00);
my.sphero.roll(90, Math.floor(Math.random() * 360));
});
my.sphero.on("collision", function() {
var data = { spheroName: my.name, bucks: my.totalBucks++ };
my.sphero.setRGB(0x0000FF);
my.sphero.stop();
my.salesforce.push("SpheroController", "POST", JSON.stringify(data));
});
}
}).start();