Implmeented some stuiff

This commit is contained in:
2025-10-24 18:10:58 +02:00
parent 0439ad00b3
commit 368f60d7b6
15 changed files with 407 additions and 7 deletions

View File

@@ -9,6 +9,7 @@ import { CameraRunner } from './CameraRunner';
import { UnityRunner } from './Unity/UnityRunner';
import { UnityWebSocket } from './Unity/UnityWebSocket';
import { TwilioHandler } from './Twilio';
import { delay } from './Utils';
export class Main {
dataPath = join(homedir(), 'MorphixProductions', 'NTSHControl');
@@ -65,6 +66,8 @@ export class Main {
});
if (!succeed) return;
await delay(5000);
console.log('Starting UnityRunner...');
await this.UnityRunner.start();

View File

@@ -21,6 +21,7 @@ export class UnityWebSocket {
zedFPS: '-',
outOfService: null,
sliders: [],
advancedSliders: [],
sensors: [],
};
@@ -39,6 +40,13 @@ export class UnityWebSocket {
this.setSliderValue(sliderIndex, percentage);
break;
case 'advancedParameterValue':
const advSliderIndex: number = args[0];
const advPercentage: number = args[1];
this.setAdvancedSliderValue(advSliderIndex, advPercentage);
break;
case 'enableOutOfService':
const enableCallback: Function = args[0];
if (typeof enableCallback !== 'function') return;
@@ -87,6 +95,23 @@ export class UnityWebSocket {
this.broadcastState();
}
setAdvancedSliderValue(sliderIndex: number, sliderValue: number) {
if (this.socket == null || this.socket.readyState !== WebSocket.OPEN)
return;
this.socket.send(
JSON.stringify({
type: 'set_advanced_slider_value',
sliderIndex,
sliderValue,
})
);
if (this.parameters.advancedSliders[sliderIndex] == undefined) return;
this.parameters.advancedSliders[sliderIndex].outputValue = sliderValue;
this.broadcastState();
}
setOutOfService(state: boolean) {
if (this.socket == null || this.socket.readyState !== WebSocket.OPEN)
return;
@@ -159,6 +184,14 @@ export class UnityWebSocket {
};
}
);
this.parameters.advancedSliders =
message.heartbeat.dataAdvancedSliders.map((slider) => {
return {
...slider,
decimalPlaces:
slider.min == 0 && slider.max == 1 ? 2 : null,
};
});
this.broadcastState();
break;
@@ -312,6 +345,7 @@ interface UnityParameters {
zedFPS: string;
outOfService: boolean;
sliders: UnityParameterSlider[];
advancedSliders: UnityParameterSlider[];
sensors: UnitySocketMessageHeartbeat['heartbeat']['dataSensors'];
}
@@ -346,6 +380,14 @@ interface UnitySocketMessageHeartbeat extends UnitySocketMessageBase {
max: number;
unit: string;
}[];
dataAdvancedSliders: {
sliderIndex: number;
sliderName: string;
outputValue: number;
min: number;
max: number;
unit: string;
}[];
dataTimeline: {
isStanding: boolean;
isWatching: boolean;