sphero-connector-ipc

A small CLI tool to run an IPC service for connecting and controlling Sphero toys via IPC messages


Keywords
cli, sphero, connector, sphero-connector, ipc, api, node-ipc
License
MIT
Install
npm install sphero-connector-ipc@0.0.2

Documentation

npm version Dependency Status devDependency Status Build Status Coverage

Sphero Connector IPC

Sphero Connector IPC

This is a small CLI tool to run an node-ipc based inter-process-communication service for connecting and controlling Sphero toys via IPC messages. It uses Sphero Connector Core, a tiny wrapper around the unofficial Sphero V2 API for communicating with Sphero toys.

Getting Started

Install Sphero-Connector-IPC via npm:

npm install --save sphero-connector-ipc

Add npm run script to your package.json:

{
  "scripts": {
    "sphero-connector-ipc": "sphero-connector-ipc"
  }
}

Add the following section to your package.json:

{
  "sphero-connector": {
    "type": "ipc"
  }
}

Finally, run npm run sphero-connector-ipc and sphero-connector-ipc will start an ipc service with id sphero-ipc-server listening for ipc messages.

Configuration

Service ID

By default, the ipc services started by sphero-connector-ipc is named sphero-ipc-server. You can change the service id in the sphero-connector section of your package.json as follows:

{
  "sphero-connector": {
    "type": "ipc",
    "serviceId": "my-custom-service-id"
  }
}

Note: valid serviceId values must be strings from 5 to 30 characters.

Connect with toy on startup

To auto-connect with a Sphero toy on start, you can specify the toy type and name in your package.json.

{
  "sphero-connector": {
    "type": "ipc",
    "connectOnStart": {
      "toyType": "SpheroMini",
      "toyName": "SM-0815"
    }
  }
}

Valid values for toyType are: SpheroMini, LightningMcQueen, R2D2, R2Q5, BB9E. The toyName option is currently only supported for toyType: "SpheroMini".

Supported IPC messages

  • connectSpheroMini
  • connectSpheroMiniWithName (toyName: string)
  • connectLightningMcQueen
  • connectR2D2
  • connectR2Q5
  • connectBB9E
  • wake
  • sleep
  • setMainLedColor (hexColor: string)

Example: Connect Sphero Mini and set main LED to red

const ipc = require('node-ipc');
const delay = require('delay');

ipc.config.id = 'my-sphero-ipc-client';
ipc.config.retry = 1500;
ipc.config.silent = true;


ipc.connectTo('sphero-ipc-server', () => {
  ipc.of['sphero-ipc-server'].on('connect', async () => {
    ipc.of['sphero-ipc-server'].emit('connectSpheroMini');
    await delay(10000);
    ipc.of['sphero-ipc-server'].emit('setMainLedColor', '#FF0000');
  });
});

License

Please be aware of the licenses of the components used in this project. Everything else that has been developed by the contributions to this project is under MIT License.