scratch-rsp
v0.0.3
Published
Node module to connect Scratch via Remote-Sensor-Protocol.
Downloads
5
Readme
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 connectconnectListener
- 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