Loading bin/msp430-etv +27 −13 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ def measure_data(time): if __name__ == '__main__': try: optspec = ('load= save=') optspec = ('load= save= skip= plot stat') raw_opts, args = getopt.getopt(sys.argv[1:], "", optspec.split(' ')) for option, parameter in raw_opts: Loading @@ -30,7 +30,12 @@ if __name__ == '__main__': opt[optname] = parameter if not 'load' in opt: duration = int(args[1]) duration = int(args[0]) if 'skip' in opt: opt['skip'] = int(opt['skip']) else: opt['skip'] = 0 except getopt.GetoptError as err: print(err) Loading @@ -39,7 +44,7 @@ if __name__ == '__main__': print('Usage: msp430-etv <duration>') sys.exit(2) except ValueError: print('Error: duration "{}" is not a number'.format(sys.argv[1])) print('Error: duration or skip is not a number') sys.exit(2) if 'load' in opt: Loading @@ -51,11 +56,13 @@ if __name__ == '__main__': lines = log_data.split('\n') data_count = sum(map(lambda x: len(x) > 0 and x[0] != '#', lines)) data_lines = filter(lambda x: len(x) > 0 and x[0] != '#', lines) data = np.empty((data_count, 4)) data = np.empty((data_count - opt['skip'], 4)) for i, line in enumerate(data_lines): if i >= opt['skip']: timestamp, current, voltage, total_energy = map(float, line.split(' ')) data[i] = [timestamp, current, voltage, total_energy] data[i - opt['skip']] = [timestamp, current, voltage, total_energy] m_duration = data[-1, 0] - data[0, 0] m_energy = data[-1, 3] - data[0, 3] Loading @@ -73,6 +80,13 @@ if __name__ == '__main__': with open(opt['save'], 'w') as f: f.write(log_data) if 'stat' in opt: print('Mean voltage: {:f}'.format(np.mean(data[:, 2]))) print('Mean current: {:f}'.format(np.mean(data[:, 1]))) print('Mean power: {:f}'.format(np.mean(data[:, 1] * data[:, 2]))) print('Total energy: {:f}'.format(m_energy)) if 'plot' in opt: pwrhandle, = plt.plot(data[:, 0], data[:, 1] * data[:, 2], 'b-', label='U*I', markersize=1) #energyhandle, = plt.plot(data[1:, 0], (data[1:, 3] - data[:-1, 3]) / (data[1:, 0] - data[:-1, 0]), 'r-', label='E/Δt', markersize=1) plt.legend(handles=[pwrhandle]) Loading Loading
bin/msp430-etv +27 −13 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ def measure_data(time): if __name__ == '__main__': try: optspec = ('load= save=') optspec = ('load= save= skip= plot stat') raw_opts, args = getopt.getopt(sys.argv[1:], "", optspec.split(' ')) for option, parameter in raw_opts: Loading @@ -30,7 +30,12 @@ if __name__ == '__main__': opt[optname] = parameter if not 'load' in opt: duration = int(args[1]) duration = int(args[0]) if 'skip' in opt: opt['skip'] = int(opt['skip']) else: opt['skip'] = 0 except getopt.GetoptError as err: print(err) Loading @@ -39,7 +44,7 @@ if __name__ == '__main__': print('Usage: msp430-etv <duration>') sys.exit(2) except ValueError: print('Error: duration "{}" is not a number'.format(sys.argv[1])) print('Error: duration or skip is not a number') sys.exit(2) if 'load' in opt: Loading @@ -51,11 +56,13 @@ if __name__ == '__main__': lines = log_data.split('\n') data_count = sum(map(lambda x: len(x) > 0 and x[0] != '#', lines)) data_lines = filter(lambda x: len(x) > 0 and x[0] != '#', lines) data = np.empty((data_count, 4)) data = np.empty((data_count - opt['skip'], 4)) for i, line in enumerate(data_lines): if i >= opt['skip']: timestamp, current, voltage, total_energy = map(float, line.split(' ')) data[i] = [timestamp, current, voltage, total_energy] data[i - opt['skip']] = [timestamp, current, voltage, total_energy] m_duration = data[-1, 0] - data[0, 0] m_energy = data[-1, 3] - data[0, 3] Loading @@ -73,6 +80,13 @@ if __name__ == '__main__': with open(opt['save'], 'w') as f: f.write(log_data) if 'stat' in opt: print('Mean voltage: {:f}'.format(np.mean(data[:, 2]))) print('Mean current: {:f}'.format(np.mean(data[:, 1]))) print('Mean power: {:f}'.format(np.mean(data[:, 1] * data[:, 2]))) print('Total energy: {:f}'.format(m_energy)) if 'plot' in opt: pwrhandle, = plt.plot(data[:, 0], data[:, 1] * data[:, 2], 'b-', label='U*I', markersize=1) #energyhandle, = plt.plot(data[1:, 0], (data[1:, 3] - data[:-1, 3]) / (data[1:, 0] - data[:-1, 0]), 'r-', label='E/Δt', markersize=1) plt.legend(handles=[pwrhandle]) Loading