initial commit

This commit is contained in:
2024-10-29 11:55:53 -05:00
commit bcf508e88f
27 changed files with 4394 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
export function checksum(bytes: Uint8Array): number {
let checksum = 0x40;
bytes.forEach((byte) => {
checksum -= byte;
if (checksum < 0) {
checksum += 256;
}
});
return checksum;
}
export function rotationToFreeDUnits(rotation: number): Uint8Array {
const view = new DataView(new ArrayBuffer(4));
const units = rotation * 32768 * 256;
view.setInt32(0, units);
return new Uint8Array(view.buffer, 0, 3);
}
export function positionToFreeDUnits(position: number): Uint8Array {
const view = new DataView(new ArrayBuffer(4));
const units = position * 64 * 256;
view.setInt32(0, units);
return new Uint8Array(view.buffer, 0, 3);
}
export function freeDUnitsToRotation(upper: number, middle: number, lower: number): number {
const padded = new Uint8Array([upper, middle, lower, 0]);
const view = new DataView(padded.buffer, padded.byteOffset, padded.byteLength);
return view.getInt32(0) / 256 / 32768;
}
export function freeDUnitsToPosition(upper: number, middle: number, lower: number): number {
const padded = new Uint8Array([upper, middle, lower, 0]);
const view = new DataView(padded.buffer, padded.byteOffset, padded.byteLength);
return view.getInt32(0) / 256 / 64;
}