Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1032)

Side by Side Diff: tools/battor_agent/battor_sample_converter.cc

Issue 1586173002: tools/battor_agent: Prints real BattOr samples instead of raw ones (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@update_eeprom
Patch Set: Fixed size_t build error Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "battor_sample_converter.h" 5 #include "battor_sample_converter.h"
6 6
7 #include <stdlib.h> 7 #include <stdlib.h>
8 8
9 namespace battor { 9 namespace battor {
10 10
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 baseline_current_ += ToUnitfulVoltage(sample.current_raw); 44 baseline_current_ += ToUnitfulVoltage(sample.current_raw);
45 baseline_voltage_ += ToUnitfulVoltage(sample.voltage_raw); 45 baseline_voltage_ += ToUnitfulVoltage(sample.voltage_raw);
46 } 46 }
47 47
48 baseline_current_ /= calibration_frame.size(); 48 baseline_current_ /= calibration_frame.size();
49 baseline_voltage_ /= calibration_frame.size(); 49 baseline_voltage_ /= calibration_frame.size();
50 } 50 }
51 51
52 BattOrSampleConverter::~BattOrSampleConverter() {} 52 BattOrSampleConverter::~BattOrSampleConverter() {}
53 53
54 BattOrSample BattOrSampleConverter::ToSample( 54 BattOrSample BattOrSampleConverter::ToSample(const RawBattOrSample& sample,
55 const RawBattOrSample& sample) const { 55 size_t sample_number) const {
56 // Subtract out the baseline current and voltage that the BattOr reads even 56 // Subtract out the baseline current and voltage that the BattOr reads even
57 // when it's not attached to anything. 57 // when it's not attached to anything.
58 double current = ToUnitfulVoltage(sample.current_raw) - baseline_current_; 58 double current = ToUnitfulVoltage(sample.current_raw) - baseline_current_;
59 double voltage = ToUnitfulVoltage(sample.voltage_raw) - baseline_voltage_; 59 double voltage = ToUnitfulVoltage(sample.voltage_raw) - baseline_voltage_;
60 60
61 // The BattOr has to amplify the voltage so that it's on a similar scale as 61 // The BattOr has to amplify the voltage so that it's on a similar scale as
62 // the reference voltage. This is done in the circuit using resistors (with 62 // the reference voltage. This is done in the circuit using resistors (with
63 // known resistances r2 and r3). Here we undo that amplification. 63 // known resistances r2 and r3). Here we undo that amplification.
64 double voltage_divider = eeprom_.r3 / (eeprom_.r2 + eeprom_.r3); 64 double voltage_divider = eeprom_.r3 / (eeprom_.r2 + eeprom_.r3);
65 voltage /= voltage_divider; 65 voltage /= voltage_divider;
(...skipping 13 matching lines...) Expand all
79 // we can get the current by dividing this voltage by the resistance. 79 // we can get the current by dividing this voltage by the resistance.
80 current /= eeprom_.r1; 80 current /= eeprom_.r1;
81 81
82 // Convert to milliamps. 82 // Convert to milliamps.
83 current *= 1000; 83 current *= 1000;
84 84
85 // Each BattOr is individually factory-calibrated. Apply these calibrations. 85 // Each BattOr is individually factory-calibrated. Apply these calibrations.
86 current -= eeprom_.low_gain_correction_offset; 86 current -= eeprom_.low_gain_correction_offset;
87 current /= eeprom_.low_gain_correction_factor; 87 current /= eeprom_.low_gain_correction_factor;
88 88
89 return BattOrSample{voltage, current}; 89 double time_ms = double(sample_number) / eeprom_.sd_sample_rate * 1000;
90
91 return BattOrSample{time_ms, voltage, current};
90 } 92 }
91 93
92 } // namespace battor 94 } // namespace battor
OLDNEW
« no previous file with comments | « tools/battor_agent/battor_sample_converter.h ('k') | tools/battor_agent/battor_sample_converter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698