...
Code Block |
---|
|
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 |
---|
|
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 |
---|
|
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 |
---|
|
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
...