Added basic control panel
This commit is contained in:
120
dist/Status.js
vendored
Normal file
120
dist/Status.js
vendored
Normal file
@@ -0,0 +1,120 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.StatusType = exports.State = exports.Status = void 0;
|
||||
var UnityRunner_1 = require("./Unity/UnityRunner");
|
||||
var Status = /** @class */ (function () {
|
||||
function Status(Main) {
|
||||
this.states = new Map();
|
||||
this._Main = Main;
|
||||
this.ensure();
|
||||
this.startClock();
|
||||
}
|
||||
Status.prototype.update = function (type, state, message, buttons) {
|
||||
this.states.set(type, { state: state, message: message, buttons: buttons });
|
||||
this._Main.WebServer.socket.emit('status', this.getState());
|
||||
};
|
||||
Status.prototype.reboot = function (type) {
|
||||
switch (type) {
|
||||
case StatusType.CameraPC: {
|
||||
this._Main.CameraRunner.sendCommand('reboot', function (response) {
|
||||
console.log('CameraRunner reboot response:', response);
|
||||
});
|
||||
}
|
||||
case StatusType.CameraProcess: {
|
||||
this._Main.CameraRunner.sendCommand('restart', function (response) {
|
||||
console.log('CameraRunner restart response:', response);
|
||||
});
|
||||
}
|
||||
case StatusType.CameraUnityStream: {
|
||||
this._Main.CameraRunner.sendCommand('restart', function (response) {
|
||||
console.log('CameraRunner restart response:', response);
|
||||
});
|
||||
this._Main.UnityRunner.restart(UnityRunner_1.StartOrigin.Manual);
|
||||
}
|
||||
case StatusType.UnityBuild: {
|
||||
this._Main.UnityRunner.restart(UnityRunner_1.StartOrigin.Manual);
|
||||
}
|
||||
case StatusType.ReplayFunction: {
|
||||
console.log('ReplayFunction reboot requested. Not implemented.');
|
||||
}
|
||||
}
|
||||
};
|
||||
Status.prototype.start = function (type) {
|
||||
switch (type) {
|
||||
case StatusType.UnityBuild: {
|
||||
this._Main.UnityRunner.requestStart(UnityRunner_1.StartOrigin.Manual);
|
||||
}
|
||||
}
|
||||
};
|
||||
Status.prototype.stop = function (type) {
|
||||
switch (type) {
|
||||
case StatusType.UnityBuild: {
|
||||
this._Main.UnityRunner.requestStop();
|
||||
}
|
||||
}
|
||||
};
|
||||
Status.prototype.getState = function () {
|
||||
var state = {};
|
||||
this.states.forEach(function (value, key) {
|
||||
state[key] = value;
|
||||
});
|
||||
return state;
|
||||
};
|
||||
Status.prototype.startClock = function () {
|
||||
var _this = this;
|
||||
var hadInvalidLastRound = false;
|
||||
setInterval(function () {
|
||||
var hasInvalid = false;
|
||||
_this.states.forEach(function (state, key) {
|
||||
if (state.state === State.Red)
|
||||
hasInvalid = true;
|
||||
});
|
||||
if (hasInvalid && !hadInvalidLastRound) {
|
||||
hadInvalidLastRound = true;
|
||||
console.warn('One ore more status entries are invalid, waiting to see if they recover...');
|
||||
}
|
||||
else if (hasInvalid && hadInvalidLastRound) {
|
||||
console.error('One ore more status entries are still invalid after 5 seconds, restarting system.');
|
||||
_this._Main.Twilio.sendError('Status', 'One ore more status entries are still invalid after 5 seconds, restarting system.');
|
||||
_this._Main.restart();
|
||||
}
|
||||
else {
|
||||
_this._Main.Twilio.sendError('Status', null);
|
||||
hadInvalidLastRound = false;
|
||||
}
|
||||
}, 5000);
|
||||
};
|
||||
Status.prototype.ensure = function () {
|
||||
for (var type in StatusType) {
|
||||
if (!this.states.has(StatusType[type]))
|
||||
this.states.set(StatusType[type], {
|
||||
state: State.Gray,
|
||||
message: 'Loading...',
|
||||
});
|
||||
}
|
||||
};
|
||||
Status.prototype.doLog = function () {
|
||||
console.clear();
|
||||
this.states.forEach(function (state, key) {
|
||||
console.log("[".concat(key, "] ").concat(state.state, " - ").concat(state.message));
|
||||
});
|
||||
};
|
||||
return Status;
|
||||
}());
|
||||
exports.Status = Status;
|
||||
var State;
|
||||
(function (State) {
|
||||
State["Green"] = "GREEN";
|
||||
State["Yellow"] = "YELLOW";
|
||||
State["Red"] = "RED";
|
||||
State["Gray"] = "GRAY";
|
||||
})(State || (exports.State = State = {}));
|
||||
var StatusType;
|
||||
(function (StatusType) {
|
||||
StatusType["CameraPC"] = "CAMERAPC";
|
||||
StatusType["CameraProcess"] = "CAMERAPROCESS";
|
||||
StatusType["CameraUnityStream"] = "CAMERAUNITYSTREAM";
|
||||
StatusType["UnityBuild"] = "UNITYBUILD";
|
||||
StatusType["ReplayFunction"] = "REPLAYFUNCTION";
|
||||
})(StatusType || (exports.StatusType = StatusType = {}));
|
||||
//# sourceMappingURL=Status.js.map
|
||||
Reference in New Issue
Block a user