artnet-usbdmx-converter/src/controlscreen.ts

57 lines
2.1 KiB
TypeScript
Raw Normal View History

2023-10-08 18:44:10 +02:00
import {Sparkline} from "clui";
import {defaultConvertHandler} from "./index";
import clear from "clear";
import chalk from "chalk";
import figlet from "figlet";
import modeToString from "./helpers/modeToString";
/**
* Renders the control screen
*/
2023-10-08 18:44:10 +02:00
export default async function renderControlScreen() {
clear({fullClear: true});
console.log(
chalk.cyan(
figlet.textSync("ArtNet => USBDMX", {horizontalLayout: "full"})
)
);
let interfaceDisplayName;
2023-10-08 18:44:10 +02:00
if (defaultConvertHandler.dmxInterface?.product === undefined && defaultConvertHandler.dmxInterface?.manufacturer === undefined) {
interfaceDisplayName = defaultConvertHandler.dmxInterface?.serial;
}
else {
interfaceDisplayName = `${defaultConvertHandler.dmxInterface?.manufacturer + " " ?? ""}${defaultConvertHandler.dmxInterface?.product + " " ?? ""}(${defaultConvertHandler.dmxInterface?.serial})`
}
console.log("=================")
console.log(
chalk.yellowBright(
"Interface:"
),
`${interfaceDisplayName}`);
console.log(
chalk.yellowBright(
"Mode:"
2023-10-08 18:44:10 +02:00
),
`${modeToString(defaultConvertHandler.dmxInterface?.currentMode ?? 0)}`)
console.log("=================")
2024-05-08 18:34:10 +02:00
const artnetInSparkline = Sparkline(defaultConvertHandler.artnetInCountHistory, "req/sec");
const artnetOutSparkline = Sparkline(defaultConvertHandler.artnetOutCountHistory, "req/sec");
const usbdmxInSparkline = Sparkline(defaultConvertHandler.usbdmxInCountHistory, "req/sec");
const usbdmxOutSparkline = Sparkline(defaultConvertHandler.usbdmxOutCountHistory, "req/sec");
2023-10-08 18:44:10 +02:00
2024-05-08 18:34:10 +02:00
process.stdout.write("ArtNet In\t")
process.stdout.write(artnetInSparkline);
process.stdout.write("\nArtNet Out\t")
process.stdout.write(artnetOutSparkline);
process.stdout.write("\nUSBDMX In\t")
process.stdout.write(usbdmxInSparkline);
process.stdout.write("\nUSBDMX Out\t")
process.stdout.write(usbdmxOutSparkline);
2023-10-08 18:44:10 +02:00
console.log("\n");
console.log(chalk.yellow(
2024-05-08 20:25:17 +02:00
"Close the window or press Ctrl+C to terminate the program"
2023-10-08 18:44:10 +02:00
))
}