@enocean-js/byte-array

a byte array

Usage no npm install needed!

<script type="module">
  import enoceanJsByteArray from 'https://cdn.skypack.dev/@enocean-js/byte-array';
</script>

README

ByteArray

the ByteArray is an object that inherits from Array. There are 3 features added to it.

the .from method

ByteArray.from(args) returns a new ByteArray.

args

args can be zero or more paramters of type Number or String or an Array of these type including Arrays.

Strings are interpreted as numbers written in hexadecimal notation. Every String passed, that contains chars other than 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f is an Error

if a Number is larger than 255 it will be split into 8bit Bytes. so ByteArray.from(256) returns [1,0]

examples

ByteArray.from(1) returns [1]

ByteArray.from(1,2,3) returns [1,2,3]

ByteArray.from(1,"2",[3]) returns [1,2,3]

ByteArray.from("010203") returns [1,2,3]

ByteArray.from("01",[2,"03"]) returns [1,2,3]

ByteArray.from("01",[2,["03",4],5]) returns [1,2,3,4,5]

ByteArray.from(0x010203) returns [1,2,3]

ByteArray.from(0x010203,[4,"05"],6,0x0708) returns [1,2,3,4,5,6,7,8]

.toString()

returns a string representing the Array in hexadecimal notation.

examples

ByteArray.from(1,2,3).toString() returns "010203"

ByteArray.from(0xff0203,[4,"05"],6,0x0708) returns "ff02030405060708"

.set

arr.set(data, offset) inserts data into the Array at an offset.

data

data passed here will be turned into a ByteArray. see ByteArray.from()

The resulting Array will be spliced into the array at the offset passed here as well. overwriting exactly the number of items passed.

if the length of the passed array plus the offset is larger than the originl Array, it will be expanded.

offest defaults to 0 and can be omitted

examples

ByteArray.from(1,2,3,4,5,6).set("aabb",2).toString() returns "0102aabb0506"

ByteArray.from(1,2,3,4,5,6).set(0xaabb,2).toString() returns "0102aabb0506"

ByteArray.from(1,2,3,4,5,6).set([0xaa,0xbb],2).toString() returns "0102aabb0506"

ByteArray.from(1,2,3,4).set("aabbccdd",2).toString() returns "0102aabbbbccdd"