Added flash
This commit is contained in:
parent
c4969214e5
commit
f8ba41fc60
@ -8,6 +8,13 @@ PanelStates[ToyPad.Panel.RIGHT] = 0;
|
||||
PanelStates[ToyPad.Panel.CENTER] = 0;
|
||||
|
||||
|
||||
const Colors = {
|
||||
WYLDSTYLE: 0xff0000,
|
||||
BATMAN: 0x00ff00,
|
||||
GANDALF: 0x0000ff
|
||||
}
|
||||
|
||||
|
||||
toyPad.on("connect", () => {
|
||||
console.log("ToyPad connected");
|
||||
});
|
||||
@ -28,20 +35,16 @@ toyPad.on("add", (data) => {
|
||||
console.log(`Minifig added to panel ${data.panel} (Unknown signature - ${data.sig})`);
|
||||
}
|
||||
|
||||
switch (name) {
|
||||
case "Wyldstyle":
|
||||
PanelStates[data.panel] = PanelStates[data.panel] | 0xff0000;
|
||||
break;
|
||||
case "Batman":
|
||||
PanelStates[data.panel] = PanelStates[data.panel] | 0x00ff00;
|
||||
break;
|
||||
case "Gandalf":
|
||||
PanelStates[data.panel] = PanelStates[data.panel] | 0x0000ff;
|
||||
break;
|
||||
}
|
||||
PanelStates[data.panel] = PanelStates[data.panel] | Colors[name.toUpperCase()];
|
||||
|
||||
//console.log(PanelStates[data.panel]);
|
||||
toyPad.setColor(data.panel, PanelStates[data.panel]);
|
||||
toyPad.flash(data.panel, Colors[name.toUpperCase()], 4);
|
||||
|
||||
setTimeout(() => {
|
||||
toyPad.getColor(data.panel, (blah) => {
|
||||
console.log(blah);
|
||||
});
|
||||
}, 3000);
|
||||
|
||||
});
|
||||
|
||||
@ -55,19 +58,8 @@ toyPad.on("remove", (data) => {
|
||||
console.log(`Minifig removed from panel ${data.panel} (Unknown signature - ${data.sig})`);
|
||||
}
|
||||
|
||||
switch (name) {
|
||||
case "Wyldstyle":
|
||||
PanelStates[data.panel] = PanelStates[data.panel] ^ 0xff0000;
|
||||
break;
|
||||
case "Batman":
|
||||
PanelStates[data.panel] = PanelStates[data.panel] ^ 0x00ff00;
|
||||
break;
|
||||
case "Gandalf":
|
||||
PanelStates[data.panel] = PanelStates[data.panel] ^ 0x0000ff;
|
||||
break;
|
||||
}
|
||||
PanelStates[data.panel] = PanelStates[data.panel] ^ Colors[name.toUpperCase()];
|
||||
|
||||
//console.log(PanelStates[data.panel]);
|
||||
toyPad.setColor(data.panel, PanelStates[data.panel]);
|
||||
|
||||
});
|
||||
|
@ -38,7 +38,9 @@ const Panel = {
|
||||
|
||||
|
||||
const Request = {
|
||||
COLOR: 0xc0
|
||||
GET_COLOR: 0xc1,
|
||||
SET_COLOR: 0xc0,
|
||||
FLASH: 0xc3
|
||||
}
|
||||
|
||||
|
||||
@ -133,7 +135,7 @@ class ToyPad extends EventEmitter {
|
||||
}
|
||||
|
||||
} else if (type === Type.RESPONSE) {
|
||||
//console.log(data);
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
@ -151,16 +153,41 @@ class ToyPad extends EventEmitter {
|
||||
}
|
||||
|
||||
|
||||
setColor (panel, color) {
|
||||
getColor (panel, callback) {
|
||||
let data = [
|
||||
this._requestId & 0xff,
|
||||
this._requestId++ & 0xff,
|
||||
(panel - 1) & 0xff
|
||||
];
|
||||
this._send([(data.length + 1) & 0xff, Request.GET_COLOR].concat(data), callback);
|
||||
}
|
||||
|
||||
|
||||
setColor (panel, color, callback) {
|
||||
let data = [
|
||||
this._requestId++ & 0xff,
|
||||
panel & 0xff,
|
||||
(color >> 16) & 0xff,
|
||||
(color >> 8) & 0xff,
|
||||
color & 0xff
|
||||
];
|
||||
this._requestId++;
|
||||
this._write([0x55, (data.length + 1) & 0xff, Request.COLOR].concat(data));
|
||||
this._send([(data.length + 1) & 0xff, Request.SET_COLOR].concat(data), callback);
|
||||
};
|
||||
|
||||
|
||||
flash (panel, color, count, options = {}, callback) {
|
||||
options.offTicks = options.offTicks || 10;
|
||||
options.onTicks = options.onTicks || 10;
|
||||
let data = [
|
||||
this._requestId++ & 0xff,
|
||||
panel & 0xff,
|
||||
options.offTicks & 0xff,
|
||||
options.onTicks & 0xff,
|
||||
count & 0xff,
|
||||
(color >> 16) & 0xff,
|
||||
(color >> 8) & 0xff,
|
||||
color & 0xff
|
||||
];
|
||||
this._send([(data.length + 1) & 0xff, Request.FLASH].concat(data), callback);
|
||||
};
|
||||
|
||||
|
||||
@ -177,8 +204,11 @@ class ToyPad extends EventEmitter {
|
||||
}
|
||||
|
||||
|
||||
_write (data) {
|
||||
this._device.write(ToyPad._pad(ToyPad._checksum(data)));
|
||||
_send (data, callback) {
|
||||
if (callback) {
|
||||
this._callbacks[data[3]] = callback;
|
||||
}
|
||||
this._device.write(ToyPad._pad(ToyPad._checksum([Type.RESPONSE].concat(data))));
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user