diff --git a/main/http_server/axe-os/src/app/components/home/home.component.html b/main/http_server/axe-os/src/app/components/home/home.component.html index 17ded93d..104989a4 100644 --- a/main/http_server/axe-os/src/app/components/home/home.component.html +++ b/main/http_server/axe-os/src/app/components/home/home.component.html @@ -19,15 +19,24 @@

Loading...

Hash Rate -
{{info.hashRate * 1000000000 | hashSuffix}} +
+ + {{info.hashRate * 1000000000 | hashSuffix}} +
- - {{expectedHashRate * 1000000000 | - hashSuffix}} - expected + + + Average: + + {{calculateAverage(hashrateData) | hashSuffix}} + + +
+ Expected: {{expectedHashRate * 1000000000 | hashSuffix}} +
@@ -35,20 +44,24 @@

Loading...

Efficiency -
- {{info.power / (info.hashRate/1000) | number: '1.2-2'}} J/TH - +
+ + {{info.power / (info.hashRate/1000) | number: '1.2-2'}} J/TH +
- - {{info.power / (expectedHashRate/1000) | number: - '1.2-2'}} J/TH + + + Average: + + {{calculateEfficiencyAverage(hashrateData, powerData) | number: '1.2-2'}} J/TH - expected - + +
+ Expected: {{info.power / (expectedHashRate/1000) | number: '1.2-2'}} J/TH +
@@ -56,7 +69,7 @@

Loading...

Shares -
{{info.sharesAccepted | number: '1.0-0'}} +
{{info.sharesAccepted | number: '1.0-0'}}
@@ -70,8 +83,8 @@

Loading...

Best Difficulty -
{{info.bestDiff}} - all-time best +
{{info.bestDiff}} + all-time best
diff --git a/main/http_server/axe-os/src/app/components/home/home.component.ts b/main/http_server/axe-os/src/app/components/home/home.component.ts index b5fa507c..13f72d8c 100644 --- a/main/http_server/axe-os/src/app/components/home/home.component.ts +++ b/main/http_server/axe-os/src/app/components/home/home.component.ts @@ -23,7 +23,7 @@ export class HomeComponent { public dataLabel: number[] = []; public hashrateData: number[] = []; public temperatureData: number[] = []; - public dataDataAverage: number[] = []; + public powerData: number[] = []; public chartData?: any; public maxPower: number = 50; @@ -97,19 +97,6 @@ export class HomeComponent { yAxisID: 'y', fill: true, }, - { - type: 'line', - label: 'Average Hashrate', - data: [], - fill: false, - backgroundColor: primaryColor + '30', - borderColor: primaryColor + '60', - tension: 0, - pointRadius: 0, - borderWidth: 2, - borderDash: [5, 5], - yAxisID: 'y', - }, { type: 'line', label: 'ASIC Temp', @@ -203,21 +190,20 @@ export class HomeComponent { tap(info => { this.hashrateData.push(info.hashRate * 1000000000); this.temperatureData.push(info.temp); + this.powerData.push(info.power); this.dataLabel.push(new Date().getTime()); if (this.hashrateData.length >= 720) { this.hashrateData.shift(); + this.temperatureData.shift(); + this.powerData.shift(); this.dataLabel.shift(); } this.chartData.labels = this.dataLabel; this.chartData.datasets[0].data = this.hashrateData; - this.chartData.datasets[2].data = this.temperatureData; - - // Calculate average hashrate and fill the array with the same value for the average line - const averageHashrate = this.calculateAverage(this.hashrateData); - this.chartData.datasets[1].data = Array(this.hashrateData.length).fill(averageHashrate); + this.chartData.datasets[1].data = this.temperatureData; this.chartData = { ...this.chartData @@ -255,7 +241,7 @@ export class HomeComponent { } - private calculateAverage(data: number[]): number { + public calculateAverage(data: number[]): number { if (data.length === 0) return 0; const sum = data.reduce((sum, value) => sum + value, 0); return sum / data.length; @@ -283,4 +269,16 @@ export class HomeComponent { } return stratumURL.startsWith('http') ? stratumURL : `http://${stratumURL}`; } + + public calculateEfficiencyAverage(hashrateData: number[], powerData: number[]): number { + if (hashrateData.length === 0 || powerData.length === 0) return 0; + + // Calculate efficiency for each data point and average them + const efficiencies = hashrateData.map((hashrate, index) => { + const power = powerData[index] || 0; + return power / (hashrate/1000000000000); // Convert to J/TH + }); + + return this.calculateAverage(efficiencies); + } }