Version with audio and buzz

This commit is contained in:
2023-07-16 21:50:48 +05:30
parent 2e6768e2bd
commit 3e2fa917c0
7 changed files with 860 additions and 110 deletions
+42
View File
@@ -0,0 +1,42 @@
/**
* Pads number/string with zeros and returns string of required length.
* @example `zeroPad('101', 8)` - converts boolean (string) to 8-sized byte (string)
* @param num Number to pad
* @param length Total length after padding
* @returns zeropadded string
*/
export function zeroPad(num: number | string, length: number): string {
return String(num).padStart(length, "0");
}
/**
* Gets bit value from binary string
* @param str Binary string
* @param bitIndex Index of bit to get
* @returns bit value
*/
export function getBit(str: string, bitIndex: number): number {
const value = str[bitIndex];
if (value == undefined) {
throw new RangeError(`Index:${bitIndex} not found in ${str}`);
}
return Number(value);
}
/**
* Gets bit value as boolean from binary string
* @param str Binary string
* @param bitIndex Index of bit to get
* @returns bit value as boolean
*/
export function getBitAsBoolean(str: string, bitIndex: number): boolean {
return !!getBit(str, bitIndex);
}
export function hexStringToNumberArray(rawString: string) {
return rawString.split("-").map((val) => parseInt(val, 16));
}
export function hexArrayToNumberArray(rawStrings: string[]) {
return rawStrings.map((val) => parseInt(val, 16));
}