a byte array
npm install @enocean-js/byte-arraythe ByteArray is an object that inherits from Array. There are 3 features added to it.
* .from()
* .toString()
* .set()
ByteArray.from(args) returns a new ByteArray.
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]
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]
returns a string representing the Array in hexadecimal notation.
ByteArray.from(1,2,3).toString() returns "010203"
ByteArray.from(0xff0203,[4,"05"],6,0x0708) returns "ff02030405060708"
arr.set(data, offset) inserts data into the Array at an offset.
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
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"