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";
|
|
|
|
|
2024-01-29 22:18:20 +01:00
|
|
|
/**
|
|
|
|
* 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"})
|
|
|
|
)
|
|
|
|
);
|
2024-01-29 22:18:20 +01:00
|
|
|
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(
|
2024-01-29 22:18:20 +01:00
|
|
|
"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
|
|
|
))
|
|
|
|
}
|