You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.0 KiB

#!/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)