Advertisement
Guest User

Untitled

a guest
Jan 24th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. const createPayload = (leds) => {
  2. const buffer = new ArrayBuffer(1 + (leds.length * 3));
  3. const dv = new DataView(buffer);
  4. let n = 0;
  5. dv.setUint8(n++, leds.length);
  6. for (let i = 0; i < leds.length; i++) {
  7. dv.setUint8(n++, leds[i][0]);
  8. dv.setUint8(n++, leds[i][1]);
  9. dv.setUint8(n++, leds[i][2]);
  10. }
  11. return dv.buffer;
  12. }
  13.  
  14. const readPayload = buffer => {
  15. let n = 0;
  16. const dv = new DataView(buffer);
  17. const count = dv.getUint8(n++);
  18. const leds = new Array(count).fill(0).map(() =>
  19. new Array(3).fill(0).map(() => dv.getUint8(n++)));
  20. return { count, leds };
  21. }
  22.  
  23. const conn = new WebSocket('ws://0.0.0.0:81');
  24. conn.onopen = () => console.log('Connection open.');
  25. conn.onerror = (err) => console.log('Error: %o', err);
  26. conn.binaryType = 'arraybuffer';
  27. conn.onmessage = (e) => {
  28. const payload = readPayload(e.data);
  29. console.log(payload.count, payload.leds);
  30. };
  31.  
  32. // To receive FastLED frame
  33. conn.send('status');
  34.  
  35. // To send a FastLED frame
  36. conn.send(createPayload([[0, 128, 255], [255, 255, 0], [255, 0, 0]]));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement