node package manager

scratch-rsp

scratch-rsp

Node module to connect Scratch(v1.4) via Remote-Sensor-Protocol.

ref: Remote Sensors Protocol - Scratch Wiki

Installation

Install with npm:

npm install scratch-rsp

Or by cloning this repository:

git clone https://github.com/yokobond/node-scratch-rsp.git

Examples

Connect Scratch then send sensor-update and send/receive broadcast messages.

var scratchRSP = require('scratch-rsp');
console.log('start');
var scratchSocket = scratchRSP.createConnection('localhost', function () {
    var sensorsMap = new Map([['note', 60], ['seconds', 0.1], ['shift "tone"', -1]]);
    scratchSocket.sensorUpdate(sensorsMap);
    scratchSocket.broadcast('play note');
});
scratchSocket.on('broadcast', function (subject) {
    console.log(subject);
});
scratchSocket.on('sensor-update', function (sensorsMap) {
    for (var key of sensorsMap.keys()) {
        console.log(key + " = " + sensorsMap.get(key));
    }
});

API

Connection

Scratch-Socket

Connection

### createConnection(host, connectListener)

Connect host on scratch port and return a Scratch-Socket instance.

  • host - Host address of Scratch to connect
  • connectListener - Listener of 'connect' event

Scratch-Socket

### sensorUpdate(sensorsMap, callback)

Send sensor-update message to the Scratch. Returns true if the entire data was flushed successfully to the kernel buffer. Returns false if all or part of the data was queued in user memory. 'drain' will be emitted when the buffer is again free.

  • sensorsMap - Map of "sensor-name -> value" to be sent.
  • callback - It will be executed when the data is finally written out.

### broadcast(subject, callback)

Send broadcast message to the Scratch. Returns true if the entire data was flushed successfully to the kernel buffer. Returns false if all or part of the data was queued in user memory. 'drain' will be emitted when the buffer is again free.

  • subject - Subject to be broadcasted.
  • callback - It will be executed when the data is finally written out.

### Event: 'broadcast' Emit with 'subject' parameter when received broadcast message from Scratch.

  • subject - Subject String of the broadcast message.

### Event: 'sensor-update' Emit with a Map of sensor data when received sensor-update message from Scratch.

  • sensorsMap - Map of "sensor-name -> value". The value is a String or Number.

TODO

  • Receive sensor-update from Scratch