lovesense
Version:
Javascript/Node.js drivers and protocol implementation for Lovense Products (Max, Nora, Lush, Hush, etc...)
53 lines (48 loc) • 1.63 kB
JavaScript
const lovesense = require('../lib/lovesense');
const args = require('commander');
const async = require('marcosc-async');
args
.version('0.1.0')
.option('-p, --port <port>', 'Address of serial port to use')
.option('-v, --vibrate [vibrate]', 'Speed to vibrate at', parseInt)
.option('-r, --rotate [rotate]', 'Speed to rotate at', parseInt)
.option('-a, --air [air]', 'Air level to move to', parseInt)
.option('-i, --inflate [inflate]', 'Air level to inflate to', parseInt)
.option('-d, --deflate [inflate]', 'Air level to deflate to', parseInt)
.parse(process.argv);
if (args.port === undefined) {
throw Error('Must specify serial port address!');
}
let l = new lovesense.LovesenseSerial(args.port);
async.task(function*() {
console.log('opening!');
yield l.open();
if (args.vibrate !== undefined) {
console.log('setting vibrate speed!');
yield l.vibrate(args.vibrate);
}
if (args.rotate !== undefined) {
console.log('setting rotate speed!');
yield l.rotate(args.rotate);
}
if (args.air !== undefined) {
console.log('setting air level!');
yield l.air(args.air);
}
if (args.inflate !== undefined) {
console.log('setting air level!');
yield l.inflate(args.inflate);
}
if (args.deflate !== undefined) {
console.log('setting air level!');
yield l.deflate(args.deflate);
}
if (args.battery !== undefined) {
console.log('waiting for battery level!');
let level = yield l.batteryLevel();
console.log('Battery Level: ' + level + '%');
}
yield l.close();
console.log('closed!');
}).catch((err) => console.log(err)) ;