From 029901269cca7bc0649c246daa1d4a6313ede68d Mon Sep 17 00:00:00 2001 From: Stefan Lau Date: Sun, 23 Mar 2014 14:54:01 +0100 Subject: [PATCH] only use average hashrate for the last loginterval, closes #36 --- lib/modules/miners/bfgminer.js | 6 +++++- test/specs/lib/modules/miners/bfgminerSpec.js | 5 ++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/modules/miners/bfgminer.js b/lib/modules/miners/bfgminer.js index 777902b..eca2a1a 100644 --- a/lib/modules/miners/bfgminer.js +++ b/lib/modules/miners/bfgminer.js @@ -127,6 +127,7 @@ module.exports = Module.extend({ calculatedHardwareErrorRate, returnedHardwareErrorRate, hardwareErrorRate, + avgHashrateKey, avgHashrate, totalDifficulty; @@ -134,7 +135,10 @@ module.exports = Module.extend({ calculatedHardwareErrorRate = (response.SUMMARY[0]['Hardware Errors'] / response.SUMMARY[0].Accepted) * 100; returnedHardwareErrorRate = response.SUMMARY[0]['Device Hardware%']; hardwareErrorRate = returnedHardwareErrorRate !== undefined ? returnedHardwareErrorRate : calculatedHardwareErrorRate; - avgHashrate = response.SUMMARY[0]['GHS av'] ? response.SUMMARY[0]['GHS av'] * 1000 : response.SUMMARY[0]['MHS av']; + avgHashrateKey = _.find(_.keys(response.SUMMARY[0]), function (key) { + return key.match(/^MHS\s[0-9]+s$/g) || key.match(/^GHS\s[0-9]+s$/g); + }); + avgHashrate = avgHashrateKey.indexOf('GHS') === 0 ? response.SUMMARY[0][avgHashrateKey] * 1000 : response.SUMMARY[0][avgHashrateKey]; totalDifficulty = response.SUMMARY[0]['Difficulty Accepted'] + response.SUMMARY[0]['Difficulty Rejected'] + response.SUMMARY[0]['Difficulty Stale']; data = _.extend({}, defaults, { diff --git a/test/specs/lib/modules/miners/bfgminerSpec.js b/test/specs/lib/modules/miners/bfgminerSpec.js index 59bb557..abee472 100644 --- a/test/specs/lib/modules/miners/bfgminerSpec.js +++ b/test/specs/lib/modules/miners/bfgminerSpec.js @@ -279,7 +279,7 @@ describe('modules/miners/bfgminer', function () { 'Getworks': 9, 'Hardware Errors': 10, 'Local Work': 11, - 'MHS av': 12.000, + 'MHS 10s': 12.000, 'Network Blocks': 13, 'Rejected': 14, 'Remote Failures': 15, @@ -332,8 +332,7 @@ describe('modules/miners/bfgminer', function () { response, bfgAdapter = new BfgAdapter({}, config); - summary = _.extend({}, summaryResponse.SUMMARY[0], { 'GHS av': 58 }); - delete summary['MHS av']; + summary = _.extend({}, _.omit(summaryResponse.SUMMARY[0], 'MHS 10s'), { 'GHS 10s': 58 }); response = _.extend({}, summaryResponse, { SUMMARY: [ summary ] }); expect(bfgAdapter.handleSummaryResponse(response)).to.deep.equal(_.extend({}, parsedResponse, {