diff options
author | Daniel Friesel <daniel.friesel@uos.de> | 2020-08-26 13:32:26 +0200 |
---|---|---|
committer | Daniel Friesel <daniel.friesel@uos.de> | 2020-08-26 13:32:26 +0200 |
commit | 6d05ba3f8a214bd5a1da340e600734b062c0756b (patch) | |
tree | 9eeb197c3c54c4fb146a98d217df929e590ca909 /bin/msp430-etv | |
parent | 9db8eaa6a3d6e92cc2253625f55c6768727b79c4 (diff) |
msp430-etv: Handle overflows in reported total energy
Diffstat (limited to 'bin/msp430-etv')
-rwxr-xr-x | bin/msp430-etv | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/bin/msp430-etv b/bin/msp430-etv index 9ed7c97..504f4f1 100755 --- a/bin/msp430-etv +++ b/bin/msp430-etv @@ -212,6 +212,8 @@ if __name__ == "__main__": data = np.empty((data_count - opt["skip"], 4)) + energy_overflow_count = 0 + prev_total_energy = 0 for i, line in enumerate(data_lines): if i >= opt["skip"]: fields = line.split(" ") @@ -222,11 +224,14 @@ if __name__ == "__main__": timestamp, current, voltage, total_energy = map(int, fields[1:]) else: raise RuntimeError('cannot parse line "{}"'.format(line)) + if total_energy < 0 and prev_total_energy > 0: + energy_overflow_count += 1 + prev_total_energy = total_energy + total_energy += energy_overflow_count * (2 ** 32) data[i - opt["skip"]] = [timestamp, current, voltage, total_energy] m_duration_us = data[-1, 0] - data[0, 0] m_energy_nj = data[-1, 3] - data[0, 3] - # mV * nA * us = aJ (1e-18 J) -> use factor 1e-6 to get pJ (1e-12 J) print( "{:d} measurements in {:.2f} s = {:.0f} Hz sample rate".format( |