Added basic control panel

This commit is contained in:
2026-03-11 16:46:06 +01:00
parent 7df210aaf2
commit c4eedfff1e
105 changed files with 21923 additions and 958 deletions

84
dist/Main.js vendored
View File

@@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
@@ -48,41 +48,57 @@ var Twilio_1 = require("./Twilio");
var Utils_1 = require("./Utils");
var ping = require("ping");
var Shutdown_1 = require("./Shutdown");
var Timer_1 = require("./Configuration/Timer");
var Status_1 = require("./Status");
var Audio_1 = require("./Audio");
var PREFIX = '[Main]';
var Main = /** @class */ (function () {
function Main() {
this.dataPath = (0, path_1.join)((0, os_1.homedir)(), 'MorphixProductions', 'NTSHControl');
this.ConfigurationManager = new ConfigurationManager_1.ConfigurationManager(this);
this.Timer = new Timer_1.Timer(this);
this.Status = new Status_1.Status(this);
this.WebServer = new WebServer_1.WebServer(this);
this.Twilio = new Twilio_1.TwilioHandler(this);
this.Audio = new Audio_1.AudioChecker(this);
this.CameraRunner = new CameraRunner_1.CameraRunner(this);
this.UnityRunner = new UnityRunner_1.UnityRunner(this);
this.UnityWebSocket = new UnityWebSocket_1.UnityWebSocket(this);
}
Main.prototype.start = function () {
var _a, _b;
return __awaiter(this, void 0, void 0, function () {
var _this = this;
var _a;
return __generator(this, function (_b) {
switch (_b.label) {
return __generator(this, function (_c) {
switch (_c.label) {
case 0: return [4 /*yield*/, this.ConfigurationManager.load()];
case 1:
_b.sent();
_c.sent();
return [4 /*yield*/, this.waitForRouter()];
case 2:
_b.sent();
_c.sent();
return [4 /*yield*/, this.WebServer.listen()];
case 3:
_b.sent();
_c.sent();
return [4 /*yield*/, this.Twilio.load()];
case 4:
_b.sent();
return [4 /*yield*/, this.CameraRunner.connect()];
_c.sent();
return [4 /*yield*/, this.Audio.waitForDevice()];
case 5:
_b.sent();
setTimeout(function () {
_this.UnityRunner.start();
}, (_a = this.Config.unity.executable.startUpDelay) !== null && _a !== void 0 ? _a : 0);
_c.sent();
return [4 /*yield*/, this.CameraRunner.connect()];
case 6:
_c.sent();
return [4 /*yield*/, this.Timer.load()];
case 7:
_c.sent();
if (((_a = this.Config.unity.launchOnStartup) !== null && _a !== void 0 ? _a : true) === true)
setTimeout(function () {
_this.UnityRunner.start(UnityRunner_1.StartOrigin.Startup);
}, (_b = this.Config.unity.executable.startUpDelay) !== null && _b !== void 0 ? _b : 0);
else {
this.UnityRunner.setInfo('Not set to launch on startup. Waiting for timer or manual start...', null, 'STOPPED');
}
return [2 /*return*/];
}
});
@@ -123,7 +139,7 @@ var Main = /** @class */ (function () {
case 3:
_a.sent();
console.log('Starting UnityRunner...');
return [4 /*yield*/, this.UnityRunner.start()];
return [4 /*yield*/, this.UnityRunner.start(this.UnityRunner.startOrigin)];
case 4:
_a.sent();
console.log('Restart complete.');
@@ -166,25 +182,27 @@ var Main = /** @class */ (function () {
return new Promise(function (resolve) {
var check = function () {
console.log(PREFIX, 'Waiting for router...');
ping.sys.probe(_this.Config.router.ip, function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
var alive = _b.alive;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
if (!alive) return [3 /*break*/, 2];
console.log(PREFIX, 'Router is online');
return [4 /*yield*/, (0, Utils_1.delay)(3000)];
case 1:
_c.sent();
return [2 /*return*/, resolve()];
case 2: return [4 /*yield*/, (0, Utils_1.delay)(1000)];
case 3:
_c.sent();
check();
return [2 /*return*/];
}
ping.sys.probe(_this.Config.router.ip, function (_a) {
var alive = _a.alive;
return __awaiter(_this, void 0, void 0, function () {
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
if (!alive) return [3 /*break*/, 2];
console.log(PREFIX, 'Router is online');
return [4 /*yield*/, (0, Utils_1.delay)(3000)];
case 1:
_b.sent();
return [2 /*return*/, resolve()];
case 2: return [4 /*yield*/, (0, Utils_1.delay)(1000)];
case 3:
_b.sent();
check();
return [2 /*return*/];
}
});
});
}); });
});
};
check();
});