From ee25cd0228548e40f0f5ba3db94bd4cc49442f3c Mon Sep 17 00:00:00 2001 From: wyattb Date: Mon, 12 Aug 2024 17:14:15 -0400 Subject: [PATCH] #172 added support for BMS faults + proxy client multi vals not random --- .../battery-status-display.component.ts | 2 +- .../fault-display/fault-display.component.html | 5 +++-- .../fault-display/fault-display.component.ts | 11 +++++++---- scylla-server/src/socket/mock-proxy-client.ts | 15 ++++++++++----- 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/angular-client/src/pages/charging-page/components/battery-status-display/battery-status-display.component.ts b/angular-client/src/pages/charging-page/components/battery-status-display/battery-status-display.component.ts index 696c225a..08d47192 100644 --- a/angular-client/src/pages/charging-page/components/battery-status-display/battery-status-display.component.ts +++ b/angular-client/src/pages/charging-page/components/battery-status-display/battery-status-display.component.ts @@ -13,7 +13,7 @@ export default class BatteryStatusDisplay { constructor(private storage: Storage) {} ngOnInit() { - this.storage.get(IdentifierDataType.STATUS).subscribe((value) => { + this.storage.get(IdentifierDataType.STATUS_BALANCING).subscribe((value) => { this.isBalancing = floatPipe(value.values[0]) === 1; }); } diff --git a/angular-client/src/pages/charging-page/components/fault-display/fault-display.component.html b/angular-client/src/pages/charging-page/components/fault-display/fault-display.component.html index fafc8612..29ee62c3 100644 --- a/angular-client/src/pages/charging-page/components/fault-display/fault-display.component.html +++ b/angular-client/src/pages/charging-page/components/fault-display/fault-display.component.html @@ -5,12 +5,13 @@
- + +
diff --git a/angular-client/src/pages/charging-page/components/fault-display/fault-display.component.ts b/angular-client/src/pages/charging-page/components/fault-display/fault-display.component.ts index 6faedea7..e17150b4 100644 --- a/angular-client/src/pages/charging-page/components/fault-display/fault-display.component.ts +++ b/angular-client/src/pages/charging-page/components/fault-display/fault-display.component.ts @@ -24,8 +24,8 @@ enum BMS_FAULTS_TYPES { } enum FaultType { - BMS, - Charger + BMS = 'BMS', + Charger = 'Charger' } @Component({ @@ -34,7 +34,8 @@ enum FaultType { styleUrls: ['./fault-display.component.css'] }) export default class FaultDisplay { - faults: { faultName: string; time: string }[] = []; + faults: { type: string; name: string; time: string }[] = []; + faultsShifted: boolean = false; resetButton = { onClick: () => { this.faults.shift(); @@ -90,7 +91,9 @@ export default class FaultDisplay { if (this.faults.length >= 50) { this.faults.pop(); } - this.faults.unshift({ faultName, time: new Date().toLocaleTimeString() }); + this.faultsShifted = !this.faultsShifted; + + this.faults.unshift({ type: faultType, name: faultName, time: new Date().toLocaleTimeString() }); } } diff --git a/scylla-server/src/socket/mock-proxy-client.ts b/scylla-server/src/socket/mock-proxy-client.ts index 370dec8a..78f1374b 100644 --- a/scylla-server/src/socket/mock-proxy-client.ts +++ b/scylla-server/src/socket/mock-proxy-client.ts @@ -304,11 +304,16 @@ export default class MockProxyClient implements ProxyClient { index = this.getRandomIndex(this.mockData.length); numericalData = this.mockData[index]; - for (const val in numericalData.vals) { - if (numericalData.vals.hasOwnProperty(val)) { - let newVal = numericalData.vals[val] + Math.random() * 2 - 1; - newVal = Math.max(numericalData.min, Math.min(numericalData.max, newVal)); - numericalData.vals[val] = newVal; + // IF MORE THAN ONE VALUE IS GIVEN in the numerical data, it is assumed that only those values should be choosen from. + if (numericalData.vals.length > 1) { + numericalData.vals[0] = numericalData.vals[this.getRandomIndex(numericalData.vals.length)]; + } else { + for (const val in numericalData.vals) { + if (numericalData.vals.hasOwnProperty(val)) { + let newVal = numericalData.vals[val] + Math.random() * 2 - 1; + newVal = Math.max(numericalData.min, Math.min(numericalData.max, newVal)); + numericalData.vals[val] = newVal; + } } }