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("=================")
|
|
|
|
|
|
|
|
const incomingDataSparkline = Sparkline(defaultConvertHandler.incomingDataHistory, "req/sec");
|
|
|
|
const sentDataSparkline = Sparkline(defaultConvertHandler.sentDataHistory, "req/sec");
|
|
|
|
|
2024-01-29 22:18:20 +01:00
|
|
|
process.stdout.write("Incoming Data ")
|
2023-10-08 18:44:10 +02:00
|
|
|
process.stdout.write(incomingDataSparkline);
|
2024-01-29 22:18:20 +01:00
|
|
|
process.stdout.write("\nOutgoing Data ")
|
2023-10-08 18:44:10 +02:00
|
|
|
process.stdout.write(sentDataSparkline);
|
|
|
|
|
|
|
|
console.log("\n");
|
|
|
|
console.log(chalk.yellow(
|
2024-01-29 22:18:20 +01:00
|
|
|
"Close the window or click Ctrl+C to terminate the program"
|
2023-10-08 18:44:10 +02:00
|
|
|
))
|
|
|
|
}
|