import sys from yoctopuce.yocto_api import * import math from yoctopuce.yocto_power import * from time import * import statistics as stats if len(sys.argv)<3 : sys.exit("usage: python3 measure_idle_state.py ") number_of_measures=int(sys.argv[1]) duration=int(sys.argv[2]) errmsg = YRefParam() if YAPI.RegisterHub("127.0.0.1", errmsg) != YAPI.SUCCESS: sys.exit("init error: " + errmsg.value) # initiate access to the power data power = YPower.FirstPower() if power is None : sys.exit("Can't detect the Yoctometter, please check if it is plugged properly") measures=[] for k in range(number_of_measures): print("Start measure "+str(k+1)) # reset energy counter power.reset() # wait the chosen duration sleep(duration) # get the energy measure in WH and translate it in Joules measures+=[round(power.get_meter()*3600,2)] print(str(measures[k])+ " Joules") mean=stats.mean(measures) dev=stats.pstdev(measures) print("\nEnergy consumption of the computer for " + str(duration) + " seconds ("+str(number_of_measures)+" measures) \n\t mean : " + str(mean), " Joules\n\t standard deviation +- : " + str(round(dev,2))) print("\n Those results are saved in IDLE_state.csv") # write it also in a csv file f = open("IDLE_state.csv", "w") f.write("MEAN (IDLE),STDRD_DEV\n") f.write(str(mean)+","+str(dev)) f.close()