Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const createPayload = (leds) => {
- const buffer = new ArrayBuffer(1 + (leds.length * 3));
- const dv = new DataView(buffer);
- let n = 0;
- dv.setUint8(n++, leds.length);
- for (let i = 0; i < leds.length; i++) {
- dv.setUint8(n++, leds[i][0]);
- dv.setUint8(n++, leds[i][1]);
- dv.setUint8(n++, leds[i][2]);
- }
- return dv.buffer;
- }
- const readPayload = buffer => {
- let n = 0;
- const dv = new DataView(buffer);
- const count = dv.getUint8(n++);
- const leds = new Array(count).fill(0).map(() =>
- new Array(3).fill(0).map(() => dv.getUint8(n++)));
- return { count, leds };
- }
- const conn = new WebSocket('ws://0.0.0.0:81');
- conn.onopen = () => console.log('Connection open.');
- conn.onerror = (err) => console.log('Error: %o', err);
- conn.binaryType = 'arraybuffer';
- conn.onmessage = (e) => {
- const payload = readPayload(e.data);
- console.log(payload.count, payload.leds);
- };
- // To receive FastLED frame
- conn.send('status');
- // To send a FastLED frame
- conn.send(createPayload([[0, 128, 255], [255, 255, 0], [255, 0, 0]]));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement