diff options
author | Daniel Friesel <daniel.friesel@uos.de> | 2019-10-29 12:50:22 +0100 |
---|---|---|
committer | Daniel Friesel <daniel.friesel@uos.de> | 2019-10-29 12:50:22 +0100 |
commit | dc219e925f42222f0079a19379abcc7404f98de6 (patch) | |
tree | b0184235910a5d406499c00ae41138e78cf6e737 | |
parent | 127692f558096b0a8e0ff92451c793cce36733e8 (diff) |
Log to a temporary file instead of hoping for a sufficiently big memory buffer
-rwxr-xr-x | bin/msp430-etv | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/bin/msp430-etv b/bin/msp430-etv index ee47fe4..3957a33 100755 --- a/bin/msp430-etv +++ b/bin/msp430-etv @@ -10,22 +10,32 @@ import re from shutil import which import subprocess import sys +import tempfile opt = dict() -def measure_data(time): +def measure_data(filename, time): # libmsp430.so must be available if not 'LD_LIBRARY_PATH' in os.environ: - os.environ['LD_LIBRARY_PATH'] = '{}/var/projects/msp430/MSP430Flasher_1.3.7'.format(os.environ['HOME']) + os.environ['LD_LIBRARY_PATH'] = '{}/var/projects/msp430/MSP430Flasher_1.3.15'.format(os.environ['HOME']) # https://github.com/carrotIndustries/energytrace-util must be available energytrace_cmd = 'energytrace' if which(energytrace_cmd) is None: - energytrace_cmd = '{}/var/source/energytrace-util/energytrace'.format(os.environ['HOME']) + energytrace_cmd = '{}/var/source/energytrace-util/energytrace64'.format(os.environ['HOME']) - res = subprocess.run([energytrace_cmd, str(duration)], stdout = subprocess.PIPE, universal_newlines = True) + if filename is not None: + output_handle = open(filename, 'w+') + else: + output_handle = tempfile.TemporaryFile('w+') + + res = subprocess.run([energytrace_cmd, str(duration)], stdout = output_handle, universal_newlines = True) + + output_handle.seek(0) + output = output_handle.read() + output_handle.close() - return res.stdout + return output def show_help(): print('''msp430-etv - MSP430 EnergyTrace Visualizer @@ -116,6 +126,9 @@ if __name__ == '__main__': if not 'load' in opt: duration = int(args[0]) + if not 'save' in opt: + opt['save'] = None + if 'skip' in opt: opt['skip'] = int(opt['skip']) else: @@ -141,7 +154,7 @@ if __name__ == '__main__': with open(opt['load'], 'r') as f: log_data = f.read() else: - log_data = measure_data(duration) + log_data = measure_data(opt['save'], duration) lines = log_data.split('\n') data_count = sum(map(lambda x: len(x) > 0 and x[0] != '#', lines)) @@ -240,10 +253,6 @@ if __name__ == '__main__': delta_energy * 1e6 / len(peaks), delta_energy / len(peaks))) - if 'save' in opt: - with open(opt['save'], 'w') as f: - f.write(log_data) - if 'stat' in opt: mean_voltage = np.mean(data[:, 2]) mean_current = np.mean(data[:, 1]) |