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

@@ -60,6 +60,7 @@ var DashboardUnity = /** @class */ (function () {
this.timelineStanding = document.querySelector('.ntsh_dashboard-unity-timeline-standing');
this.timelineProgress = document.querySelector('.ntsh_dashboard-unity-timeline-progress');
this.parametersTable = document.querySelector('.ntsh_dashboard-unity-parameters');
this.advancedParametersTable = document.querySelector('.ntsh_dashboard-unity-advancedparameters');
this.sensorsTable = document.querySelector('.ntsh_dashboard-unity-sensors');
this.errorContainer = document.querySelector('.ntsh_dashboard-unity-error');
this.errorText = document.querySelector('.ntsh_dashboard-unity-errortext');
@@ -143,6 +144,7 @@ var DashboardUnity = /** @class */ (function () {
(0, utils_1.setProgressState)(this.timelineProgress, Math.round(state.parameters.timelineProgress * 100), 0, 100, '%');
// ----------- Parameters -----------
this.renderParameterSliders(state.state == 'CONNECTED' ? state.parameters.sliders : []);
this.renderAdvancedParameterSliders(state.state == 'CONNECTED' ? state.parameters.advancedSliders : []);
this.renderParameterSensors(state.state == 'CONNECTED' ? state.parameters.sensors : []);
// ----------- Error -----------
if (((_b = state === null || state === void 0 ? void 0 : state.error) !== null && _b !== void 0 ? _b : '').trim().length > 0)
@@ -223,6 +225,78 @@ var DashboardUnity = /** @class */ (function () {
});
}
};
DashboardUnity.prototype.renderAdvancedParameterSliders = function (sliders) {
var _this = this;
var existingSliders = this.advancedParametersTable.querySelectorAll('.ntsh_dashboard-unity-parameter-row');
if (existingSliders.length !== sliders.length) {
this.advancedParametersTable.innerHTML = '';
if (sliders.length === 0) {
var row = (0, morphux_1.ce)('tr');
var cell = (0, morphux_1.ce)('td');
cell.appendChild((0, morphux_1.ce)('div', ['mux_text', 'ntsh_dashboard-unity-parameters-loading'], null, 'Waiting for Unity...'));
row.appendChild(cell);
this.advancedParametersTable.appendChild(row);
}
else
sliders.forEach(function (slider) {
var _a, _b;
var multiplierFactor = (_a = slider.visualMultiplier) !== null && _a !== void 0 ? _a : 1;
var decimalPlacesFactor = Math.pow(10, ((_b = slider.decimalPlaces) !== null && _b !== void 0 ? _b : 0));
var value = Math.round(slider.outputValue *
multiplierFactor *
decimalPlacesFactor) / decimalPlacesFactor;
var row = (0, morphux_1.ce)('tr', 'ntsh_dashboard-unity-parameter-row');
var nameCell = (0, morphux_1.ce)('td');
nameCell.appendChild((0, morphux_1.ce)('div', 'mux_text', null, slider.sliderName));
row.appendChild(nameCell);
var progressCell = (0, morphux_1.ce)('td', 'no-service');
progressCell.appendChild((0, utils_1.createProgress)(value, slider.min * multiplierFactor, slider.max * multiplierFactor, slider.unit));
row.appendChild(progressCell);
var sliderCell = (0, morphux_1.ce)('td', 'only-service');
var sliderProgress = (0, utils_1.createProgress)(value, slider.min * multiplierFactor, slider.max * multiplierFactor, slider.unit);
var sliderValue = sliderProgress.querySelector('.ntsh_progress-value');
sliderValue.classList.add('mux_resizer');
sliderCell.appendChild(sliderProgress);
var resizer = new morphux_1.MorphComponent.Resizer({
existingContainer: sliderValue,
direction: 'right',
relative: true,
min: 0,
max: function () { return sliderProgress.clientWidth; },
});
var lastValue = -1;
resizer.on('resized', function (size) {
var percentage = Math.round((size / sliderProgress.clientWidth) * 100) / 100;
var actualValue = slider.min + percentage * (slider.max - slider.min);
if (actualValue === lastValue)
return;
lastValue = actualValue;
_this._Main.socket.emit('unityWebSocket', 'advancedParameterValue', slider.sliderIndex, actualValue);
(0, utils_1.setProgressState)(sliderProgress, Math.round(actualValue *
multiplierFactor *
decimalPlacesFactor) / decimalPlacesFactor, slider.min * multiplierFactor, slider.max * multiplierFactor, slider.unit);
});
row.appendChild(sliderCell);
_this.advancedParametersTable.appendChild(row);
});
}
else {
existingSliders.forEach(function (row, index) {
var _a, _b;
var slider = sliders[index];
var multiplierFactor = (_a = slider.visualMultiplier) !== null && _a !== void 0 ? _a : 1;
var decimalPlacesFactor = Math.pow(10, ((_b = slider.decimalPlaces) !== null && _b !== void 0 ? _b : 0));
var value = Math.round(slider.outputValue *
multiplierFactor *
decimalPlacesFactor) / decimalPlacesFactor;
var progressElement = row.querySelector('.no-service .ntsh_progress');
(0, utils_1.setProgressState)(progressElement, value, slider.min * multiplierFactor, slider.max * multiplierFactor, slider.unit);
var sliderElement = row.querySelector('.only-service .ntsh_progress');
if (sliderElement.querySelector('.mux_resizer-moving') == null)
(0, utils_1.setProgressState)(sliderElement, value, slider.min * multiplierFactor, slider.max * multiplierFactor, slider.unit);
});
}
};
DashboardUnity.prototype.renderParameterSensors = function (sensors) {
var _this = this;
var existingSensors = this.sensorsTable.querySelectorAll('.ntsh_dashboard-unity-sensor-row');

File diff suppressed because one or more lines are too long

View File

@@ -241,7 +241,7 @@
<div class="ntsh_dashboard-box ntsh_dashboard-unityparameters">
<div class="ntsh_dashboard-box-header mux_header">Parameters</div>
<div class="ntsh_dashboard-box-header mux_header">Audio</div>
<table class="ntsh_vertical ntsh_dashboard-unity-parameters">
<tr>
@@ -252,6 +252,19 @@
</tr>
</table>
</div>
<div class="ntsh_dashboard-box ntsh_dashboard-unityadvancedparameters">
<div class="ntsh_dashboard-box-header mux_header">Parameters</div>
<table class="ntsh_vertical ntsh_dashboard-unity-advancedparameters">
<tr>
<td>
<div class="mux_text ntsh_dashboard-unity-advancedparameters-loading">Waiting for
Unity...
</div>
</td>
</tr>
</table>
</div>
<div class="ntsh_dashboard-box ntsh_dashboard-unitysensors">
<div class="ntsh_dashboard-box-header mux_header">Sensors</div>

View File

@@ -15656,6 +15656,7 @@
this.timelineStanding = document.querySelector('.ntsh_dashboard-unity-timeline-standing');
this.timelineProgress = document.querySelector('.ntsh_dashboard-unity-timeline-progress');
this.parametersTable = document.querySelector('.ntsh_dashboard-unity-parameters');
this.advancedParametersTable = document.querySelector('.ntsh_dashboard-unity-advancedparameters');
this.sensorsTable = document.querySelector('.ntsh_dashboard-unity-sensors');
this.errorContainer = document.querySelector('.ntsh_dashboard-unity-error');
this.errorText = document.querySelector('.ntsh_dashboard-unity-errortext');
@@ -15739,6 +15740,7 @@
(0, utils_1.setProgressState)(this.timelineProgress, Math.round(state.parameters.timelineProgress * 100), 0, 100, '%');
// ----------- Parameters -----------
this.renderParameterSliders(state.state == 'CONNECTED' ? state.parameters.sliders : []);
this.renderAdvancedParameterSliders(state.state == 'CONNECTED' ? state.parameters.advancedSliders : []);
this.renderParameterSensors(state.state == 'CONNECTED' ? state.parameters.sensors : []);
// ----------- Error -----------
if (((_b = state === null || state === void 0 ? void 0 : state.error) !== null && _b !== void 0 ? _b : '').trim().length > 0)
@@ -15819,6 +15821,78 @@
});
}
};
DashboardUnity.prototype.renderAdvancedParameterSliders = function (sliders) {
var _this = this;
var existingSliders = this.advancedParametersTable.querySelectorAll('.ntsh_dashboard-unity-parameter-row');
if (existingSliders.length !== sliders.length) {
this.advancedParametersTable.innerHTML = '';
if (sliders.length === 0) {
var row = (0, morphux_1$1.ce)('tr');
var cell = (0, morphux_1$1.ce)('td');
cell.appendChild((0, morphux_1$1.ce)('div', ['mux_text', 'ntsh_dashboard-unity-parameters-loading'], null, 'Waiting for Unity...'));
row.appendChild(cell);
this.advancedParametersTable.appendChild(row);
}
else
sliders.forEach(function (slider) {
var _a, _b;
var multiplierFactor = (_a = slider.visualMultiplier) !== null && _a !== void 0 ? _a : 1;
var decimalPlacesFactor = Math.pow(10, ((_b = slider.decimalPlaces) !== null && _b !== void 0 ? _b : 0));
var value = Math.round(slider.outputValue *
multiplierFactor *
decimalPlacesFactor) / decimalPlacesFactor;
var row = (0, morphux_1$1.ce)('tr', 'ntsh_dashboard-unity-parameter-row');
var nameCell = (0, morphux_1$1.ce)('td');
nameCell.appendChild((0, morphux_1$1.ce)('div', 'mux_text', null, slider.sliderName));
row.appendChild(nameCell);
var progressCell = (0, morphux_1$1.ce)('td', 'no-service');
progressCell.appendChild((0, utils_1.createProgress)(value, slider.min * multiplierFactor, slider.max * multiplierFactor, slider.unit));
row.appendChild(progressCell);
var sliderCell = (0, morphux_1$1.ce)('td', 'only-service');
var sliderProgress = (0, utils_1.createProgress)(value, slider.min * multiplierFactor, slider.max * multiplierFactor, slider.unit);
var sliderValue = sliderProgress.querySelector('.ntsh_progress-value');
sliderValue.classList.add('mux_resizer');
sliderCell.appendChild(sliderProgress);
var resizer = new morphux_1$1.MorphComponent.Resizer({
existingContainer: sliderValue,
direction: 'right',
relative: true,
min: 0,
max: function () { return sliderProgress.clientWidth; },
});
var lastValue = -1;
resizer.on('resized', function (size) {
var percentage = Math.round((size / sliderProgress.clientWidth) * 100) / 100;
var actualValue = slider.min + percentage * (slider.max - slider.min);
if (actualValue === lastValue)
return;
lastValue = actualValue;
_this._Main.socket.emit('unityWebSocket', 'advancedParameterValue', slider.sliderIndex, actualValue);
(0, utils_1.setProgressState)(sliderProgress, Math.round(actualValue *
multiplierFactor *
decimalPlacesFactor) / decimalPlacesFactor, slider.min * multiplierFactor, slider.max * multiplierFactor, slider.unit);
});
row.appendChild(sliderCell);
_this.advancedParametersTable.appendChild(row);
});
}
else {
existingSliders.forEach(function (row, index) {
var _a, _b;
var slider = sliders[index];
var multiplierFactor = (_a = slider.visualMultiplier) !== null && _a !== void 0 ? _a : 1;
var decimalPlacesFactor = Math.pow(10, ((_b = slider.decimalPlaces) !== null && _b !== void 0 ? _b : 0));
var value = Math.round(slider.outputValue *
multiplierFactor *
decimalPlacesFactor) / decimalPlacesFactor;
var progressElement = row.querySelector('.no-service .ntsh_progress');
(0, utils_1.setProgressState)(progressElement, value, slider.min * multiplierFactor, slider.max * multiplierFactor, slider.unit);
var sliderElement = row.querySelector('.only-service .ntsh_progress');
if (sliderElement.querySelector('.mux_resizer-moving') == null)
(0, utils_1.setProgressState)(sliderElement, value, slider.min * multiplierFactor, slider.max * multiplierFactor, slider.unit);
});
}
};
DashboardUnity.prototype.renderParameterSensors = function (sensors) {
var _this = this;
var existingSensors = this.sensorsTable.querySelectorAll('.ntsh_dashboard-unity-sensor-row');

File diff suppressed because one or more lines are too long

View File

@@ -38,6 +38,13 @@
}
}
.ntsh_dashboard-unity-advancedparameters {
.ntsh_dashboard-unity-advancedparameters-loading {
text-align: center;
color: #9d9d9d;
}
}
.ntsh_dashboard-unity-sensors {
.ntsh_dashboard-unity-sensors-loading {
text-align: center;

View File

@@ -2400,6 +2400,10 @@ body {
text-align: center;
color: #9d9d9d;
}
.ntsh_dashboard .ntsh_dashboard-unity-advancedparameters .ntsh_dashboard-unity-advancedparameters-loading {
text-align: center;
color: #9d9d9d;
}
.ntsh_dashboard .ntsh_dashboard-unity-sensors .ntsh_dashboard-unity-sensors-loading {
text-align: center;
color: #9d9d9d;

File diff suppressed because one or more lines are too long

View File

@@ -75,6 +75,9 @@ export class DashboardUnity {
parametersTable: HTMLTableElement = document.querySelector(
'.ntsh_dashboard-unity-parameters'
);
advancedParametersTable: HTMLTableElement = document.querySelector(
'.ntsh_dashboard-unity-advancedparameters'
);
sensorsTable: HTMLTableElement = document.querySelector(
'.ntsh_dashboard-unity-sensors'
@@ -200,6 +203,9 @@ export class DashboardUnity {
this.renderParameterSliders(
state.state == 'CONNECTED' ? state.parameters.sliders : []
);
this.renderAdvancedParameterSliders(
state.state == 'CONNECTED' ? state.parameters.advancedSliders : []
);
this.renderParameterSensors(
state.state == 'CONNECTED' ? state.parameters.sensors : []
);
@@ -358,6 +364,155 @@ export class DashboardUnity {
}
}
private renderAdvancedParameterSliders(
sliders: UnityParameters['sliders']
) {
const existingSliders = this.advancedParametersTable.querySelectorAll(
'.ntsh_dashboard-unity-parameter-row'
);
if (existingSliders.length !== sliders.length) {
this.advancedParametersTable.innerHTML = '';
if (sliders.length === 0) {
const row = ce('tr');
const cell = ce('td');
cell.appendChild(
ce(
'div',
['mux_text', 'ntsh_dashboard-unity-parameters-loading'],
null,
'Waiting for Unity...'
)
);
row.appendChild(cell);
this.advancedParametersTable.appendChild(row);
} else
sliders.forEach((slider) => {
const multiplierFactor = slider.visualMultiplier ?? 1;
const decimalPlacesFactor =
10 ** (slider.decimalPlaces ?? 0);
const value =
Math.round(
slider.outputValue *
multiplierFactor *
decimalPlacesFactor
) / decimalPlacesFactor;
const row = ce('tr', 'ntsh_dashboard-unity-parameter-row');
const nameCell = ce('td');
nameCell.appendChild(
ce('div', 'mux_text', null, slider.sliderName)
);
row.appendChild(nameCell);
const progressCell = ce('td', 'no-service');
progressCell.appendChild(
createProgress(
value,
slider.min * multiplierFactor,
slider.max * multiplierFactor,
slider.unit
)
);
row.appendChild(progressCell);
const sliderCell = ce('td', 'only-service');
const sliderProgress = createProgress(
value,
slider.min * multiplierFactor,
slider.max * multiplierFactor,
slider.unit
);
const sliderValue: HTMLDivElement =
sliderProgress.querySelector('.ntsh_progress-value');
sliderValue.classList.add('mux_resizer');
sliderCell.appendChild(sliderProgress);
const resizer = new MorphComponent.Resizer({
existingContainer: sliderValue,
direction: 'right',
relative: true,
min: 0,
max: () => sliderProgress.clientWidth,
});
let lastValue: number = -1;
resizer.on('resized', (size) => {
const percentage =
Math.round(
(size / sliderProgress.clientWidth) * 100
) / 100;
var actualValue =
slider.min + percentage * (slider.max - slider.min);
if (actualValue === lastValue) return;
lastValue = actualValue;
this._Main.socket.emit(
'unityWebSocket',
'advancedParameterValue',
slider.sliderIndex,
actualValue
);
setProgressState(
sliderProgress,
Math.round(
actualValue *
multiplierFactor *
decimalPlacesFactor
) / decimalPlacesFactor,
slider.min * multiplierFactor,
slider.max * multiplierFactor,
slider.unit
);
});
row.appendChild(sliderCell);
this.advancedParametersTable.appendChild(row);
});
} else {
existingSliders.forEach((row, index) => {
const slider = sliders[index];
const multiplierFactor = slider.visualMultiplier ?? 1;
const decimalPlacesFactor = 10 ** (slider.decimalPlaces ?? 0);
const value =
Math.round(
slider.outputValue *
multiplierFactor *
decimalPlacesFactor
) / decimalPlacesFactor;
const progressElement: HTMLDivElement = row.querySelector(
'.no-service .ntsh_progress'
);
setProgressState(
progressElement,
value,
slider.min * multiplierFactor,
slider.max * multiplierFactor,
slider.unit
);
const sliderElement: HTMLDivElement = row.querySelector(
'.only-service .ntsh_progress'
);
if (sliderElement.querySelector('.mux_resizer-moving') == null)
setProgressState(
sliderElement,
value,
slider.min * multiplierFactor,
slider.max * multiplierFactor,
slider.unit
);
});
}
}
private renderParameterSensors(sensors: UnityParameters['sensors']) {
const existingSensors = this.sensorsTable.querySelectorAll(
'.ntsh_dashboard-unity-sensor-row'
@@ -528,6 +683,7 @@ interface UnityParameters {
zedFPS: string;
outOfService: boolean;
sliders: UnityParameterSlider[];
advancedSliders: UnityParameterSlider[];
sensors: UnitySocketMessageHeartbeat['heartbeat']['dataSensors'];
}