all files / lib/lifx/packets/ getTileState64.js

18.18% Statements 4/22
100% Branches 0/0
0% Functions 0/2
18.18% Lines 4/22
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45                                                                                 
'use strict';
 
var _require = require('../../lifx'),
    validate = _require.validate;
 
var Packet = {
  size: 1 + 1 + 1 + 1 + 1 + 1
};
 
/**
 * Converts the given packet specific object into a packet
 * @param  {Object} obj object with configuration data
 * @param  {Number} obj.tileIndex an 8bit value
 * @param  {Number} obj.length an 8bit value
 * @param  {Number} obj.reserved an 8bit value
 * @param  {Number} obj.x an 8bit value
 * @param  {Number} obj.y an 8bit value
 * @param  {Number} obj.width an 8bit value
 * @return {Buffer} packet
 */
Packet.toBuffer = function (obj) {
  var buf = Buffer.alloc(this.size);
  buf.fill(0);
  var offset = 0;
 
  ['tileIndex', 'length', 'reserved', 'x', 'y', 'width'].forEach(function (field) {
    validate.isUInt8(obj[field], `getTileState64:${field}`);
  });
  buf.writeUInt8(obj.tileIndex, offset);
  offset += 1;
  buf.writeUInt8(obj.length, offset);
  offset += 1;
  buf.writeUInt8(obj.reserved, offset);
  offset += 1;
  buf.writeUInt8(obj.x, offset);
  offset += 1;
  buf.writeUInt8(obj.y, offset);
  offset += 1;
  buf.writeUInt8(obj.width, offset);
  offset += 1;
 
  return buf;
};
 
module.exports = Packet;