Commit 6d05ba3f authored by Daniel Friesel's avatar Daniel Friesel
Browse files

msp430-etv: Handle overflows in reported total energy

parent 9db8eaa6
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -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(