普通文本  |  47行  |  1.02 KB

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