#!/usr/bin/python import sys import getopt def usage(): print "powersum.py [OPTIONS] HZ VOLTAGE [FILE]" print "OPTIONS: " print "-o OFFSET: subtract OFFSET from all data points" print "\nHZ: samples per second in FILE or stdin" sys.exit(0) offset = 0.0 voltage = 4.3 parsedargv,argvrem = getopt.getopt(sys.argv[1:], "vo:w:l:h", ["help"]) for o,a in parsedargv: if o == '-o': offset = float(a) if o == '-h' or o == '--help': usage() hz = float(argvrem[0]) voltage = float(argvrem[1]) if len(argvrem) > 1: f = open(argvrem[2], "r") else: f = sys.stdin totalpower = 0.0 samplectr = 0 for line in f: try: val = float(line.split(" ")[1]) # xxx take 2nd arg in line val -= offset except: print "Can't parse data line, did you remember the timestamp?" print "data was: %s" % line sys.exit(1) samplectr+=1 totalpower += val/hz avecurrent = totalpower * hz *1000 / samplectr avepower = avecurrent * voltage print "%.3f %.3f" % (avecurrent, avepower)