mirror of
https://github.com/betaflight/betaflight-configurator.git
synced 2025-07-15 12:25:15 +03:00
80 lines
1.7 KiB
JavaScript
80 lines
1.7 KiB
JavaScript
Number.prototype.clamp = function(min, max) {
|
|
return Math.min(Math.max(this, min), max);
|
|
};
|
|
|
|
Array.prototype.push8 = function(val) {
|
|
this.push(0xFF & val);
|
|
return this;
|
|
};
|
|
|
|
Array.prototype.push16 = function(val) {
|
|
// low byte
|
|
this.push(0x00FF & val);
|
|
// high byte
|
|
this.push(val >> 8);
|
|
// chainable
|
|
return this;
|
|
};
|
|
|
|
Array.prototype.push32 = function(val) {
|
|
this.push8(val)
|
|
.push8(val >> 8)
|
|
.push8(val >> 16)
|
|
.push8(val >> 24);
|
|
return this;
|
|
};
|
|
|
|
DataView.prototype.offset = 0;
|
|
DataView.prototype.readU8 = function() {
|
|
if (this.byteLength >= this.offset+1) {
|
|
return this.getUint8(this.offset++);
|
|
} else {
|
|
return null;
|
|
}
|
|
};
|
|
|
|
DataView.prototype.readU16 = function() {
|
|
if (this.byteLength >= this.offset+2) {
|
|
return this.readU8() + this.readU8()*256;
|
|
} else {
|
|
return null;
|
|
}
|
|
};
|
|
|
|
DataView.prototype.readU32 = function() {
|
|
if (this.byteLength >= this.offset+4) {
|
|
return this.readU16() + this.readU16()*65536;
|
|
} else {
|
|
return null;
|
|
}
|
|
};
|
|
|
|
DataView.prototype.read8 = function() {
|
|
if (this.byteLength >= this.offset+1) {
|
|
return this.getInt8(this.offset++, 1);
|
|
} else {
|
|
return null;
|
|
}
|
|
};
|
|
|
|
DataView.prototype.read16 = function() {
|
|
this.offset += 2;
|
|
if (this.byteLength >= this.offset) {
|
|
return this.getInt16(this.offset-2, 1);
|
|
} else {
|
|
return null;
|
|
}
|
|
};
|
|
|
|
DataView.prototype.read32 = function() {
|
|
this.offset += 4;
|
|
if (this.byteLength >= this.offset) {
|
|
return this.getInt32(this.offset-4, 1);
|
|
} else {
|
|
return null;
|
|
}
|
|
};
|
|
|
|
DataView.prototype.remaining = function() {
|
|
return this.byteLength - this.offset;
|
|
};
|