Home | History | Annotate | Download | only in workloads
      1 #!/usr/bin/python
      2 
      3 import sys
      4 import getopt
      5 
      6 def usage():
      7     print "powersum.py [OPTIONS] HZ VOLTAGE [FILE]"
      8     print "OPTIONS: "
      9     print "-o OFFSET: subtract OFFSET from all data points"
     10     print "\nHZ: samples per second in FILE or stdin"
     11     sys.exit(0)
     12 
     13 offset = 0.0
     14 voltage = 4.3
     15 
     16 parsedargv,argvrem = getopt.getopt(sys.argv[1:], "vo:w:l:h", ["help"])
     17 for o,a in parsedargv:
     18     if o == '-o': offset = float(a)
     19     if o == '-h' or o == '--help': usage()
     20 
     21 hz = float(argvrem[0])
     22 voltage = float(argvrem[1])
     23 if len(argvrem) > 1:
     24     f = open(argvrem[2], "r")
     25 else:
     26     f = sys.stdin
     27 
     28 totalpower = 0.0
     29 samplectr = 0
     30 
     31 for line in f:
     32     try:
     33         val = float(line.split(" ")[1]) # xxx take 2nd arg in line
     34         val -= offset
     35     except:
     36         print "Can't parse data line, did you remember the timestamp?"
     37         print "data was: %s" % line
     38         sys.exit(1)
     39 
     40     samplectr+=1
     41     totalpower += val/hz
     42 
     43 avecurrent = totalpower * hz *1000 / samplectr
     44 avepower = avecurrent * voltage
     45 
     46 print "%.3f %.3f" % (avecurrent, avepower)
     47