Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagepy
from poweradvantage import poweradvantage
import time
from IPython import display
pa = poweradvantage("VCK190", "SC")
while 1:
display.clear_output(wait=True)
power = pa.getpower()
domain = ""
dtotal = 0
total = 0
print("%18s Volts Amps Watts" % "")
for (n, d, p) in zip(pa.name, pa.domain, power):
if (d == "LPD") or (d == "FPD"):
if (domain != "") and (d != domain):
print("%18s ----- ------- %7.4f" % (domain, dtotal))
dtotal = 0
domain = d
print("%18s %5.3f %7.4f %7.4f" % (n, p[0], p[1], p[2]))
dtotal += p[2]
total += p[2]
print("%18s ----- ------- %7.4f" % (domain, dtotal))
time.sleep(5)


This example samples a single rail quickly, at a 1ms interval:


Code Block
languagepy
from poweradvantage import poweradvantage
pa = poweradvantage("VCK190", "SC")
power = []

i = 4
n = pa.name[i]
b = pa.bus[i]
a = pa.address[i]
m = pa.mOhm[i]
f = pa.flags[i]

count = 0
while count < 10000:
 v, i, p = pa.ina226("/dev/i2c-"+str(b), a, m, f)
 power.append(p)
 count += 1
print(n, power)


This one writes the data to a file for a multi-day measurement:

cat power_adv.log


Code Block
languagepy
from poweradvantage import poweradvantage
import time
import sys
from IPython import display
pa = poweradvantage("VCK190", "SC")
    
with open('/home/root/power_adv.log', 'w') as f:
 while 1:
  power = self.getpower()
  domain = ""
  dtotal = 0
  total = 0
  print("hello power adv", file=f)
  print("%18s Volts   Amps   Watts" % "", file=f)
  for (n, d, p) in zip(self.name, self.domain, power):
      if (domain != "") and (d != domain):
         print("%18s ----- ------- %7.4f" % (domain, dtotal))
         dtotal = 0 
      domain = d
      print("%18s %5.3f %7.4f %7.4f" % (n, p[0], p[1], p[2]), file=f)
      dtotal += p[2]
      total += p[2]
  print("%18s ----- ------- %7.4f" % (domain, dtotal), file=f)
  print("%18s ----- ------- %7.4f" % ("Total", total), file=f)
  print("\n")
  time.sleep(60)


This one does a customized plot:


Code Block
languagepy
from poweradvantage import poweradvantage
import time
from IPython import display
from datetime import datetime
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
pa = poweradvantage("VCK190", "SC")
name = pa.getname()
import numpy as np
data = {'PS_FPD_Power': []}
#create dataframe
df = pd.DataFrame(data)
while 1:
 dt_object = datetime.fromtimestamp(datetime.timestamp(datetime.now()))
 power = pa.getpower()
 for (n, d, p) in zip(pa.name, pa.domain, power):
    if (n == 'VCC_PSFP'):
        print("PS FPD %7.4f (watts)" % (p[2]))
        #append row to the dataframe
        new_data = {'PS_FPD_Power': p[2]}
        df = df.append(new_data, ignore_index=True)
        plt.plot(df.tail(1000)) # plotting by columns
        display.clear_output(wait=True)
        plt.show()


1.3 Porting poweradvantage.py

...