Implemented sound and lighting sliders

This commit is contained in:
2026-03-13 17:19:53 +01:00
parent 1ce7dfa057
commit 4e9651b08b
23 changed files with 461 additions and 34 deletions

View File

@@ -25,6 +25,8 @@ export class UnityWebSocket {
outOfService: null,
sliders: [],
advancedSliders: [],
dataSliders: [],
dataAdvancedSliders: [],
sensors: [],
};
@@ -52,6 +54,23 @@ export class UnityWebSocket {
this.setAdvancedSliderValue(advSliderIndex, advPercentage);
break;
case 'dataParameterValue':
const dataSliderIndex: number = args[0];
const dataPercentage: number = args[1];
this.setDataSliderValue(dataSliderIndex, dataPercentage);
break;
case 'dataAdvancedParameterValue':
const dataAdvSliderIndex: number = args[0];
const dataAdvPercentage: number = args[1];
this.setDataAdvancedSliderValue(
dataAdvSliderIndex,
dataAdvPercentage,
);
break;
case 'enableOutOfService':
const enableCallback: Function = args[0];
if (typeof enableCallback !== 'function') return;
@@ -100,6 +119,42 @@ export class UnityWebSocket {
this.broadcastState();
}
setDataSliderValue(sliderIndex: number, sliderValue: number) {
if (this.socket == null || this.socket.readyState !== WebSocket.OPEN)
return;
this.socket.send(
JSON.stringify({
type: 'set_data_value',
sliderIndex,
sliderValue,
}),
);
if (this.parameters.dataSliders[sliderIndex] == undefined) return;
this.parameters.dataSliders[sliderIndex].outputValue = sliderValue;
this.broadcastState();
}
setDataAdvancedSliderValue(sliderIndex: number, sliderValue: number) {
if (this.socket == null || this.socket.readyState !== WebSocket.OPEN)
return;
this.socket.send(
JSON.stringify({
type: 'set_data_advanced_value',
sliderIndex,
sliderValue,
}),
);
if (this.parameters.dataAdvancedSliders[sliderIndex] == undefined)
return;
this.parameters.dataAdvancedSliders[sliderIndex].outputValue =
sliderValue;
this.broadcastState();
}
setAdvancedSliderValue(sliderIndex: number, sliderValue: number) {
if (this.socket == null || this.socket.readyState !== WebSocket.OPEN)
return;
@@ -191,13 +246,13 @@ export class UnityWebSocket {
return;
}
// writeFileSync(
// join(
// this._Main.dataPath,
// `tempdebug-${message.type}-${new Date().getTime()}.json`,
// ),
// JSON.stringify(message, null, 4),
// );
writeFileSync(
join(
this._Main.dataPath,
`tempdebug-${message.type}-${new Date().getTime()}.json`,
),
JSON.stringify(message, null, 4),
);
switch (message.type) {
case 'heartbeat_data':
@@ -408,6 +463,8 @@ interface UnityParameters {
zedFPS: string;
outOfService: boolean;
sliders: UnityParameterSlider[];
dataSliders: UnityParameterSlider[];
dataAdvancedSliders: UnityParameterSlider[];
advancedSliders: UnityParameterSlider[];
sensors: UnitySocketMessageHeartbeat['heartbeat']['dataSensors'];
}