def createimages(self, currentTime=None): if currentTime is None: currentTime = int(time.time()) if os.path.isfile(self.rrdfile): myRRD = rrd.RRD(self.rrdfile, mode='r') def1 = DEF(rrdfile=myRRD.filename, vname='Watt', dsName='power') def2 = DEF(rrdfile=myRRD.filename, vname='Wh', dsName='energy') vdef1 = VDEF(vname='maxpower', rpn='%s,MAXIMUM' % def1.vname) vdef2 = VDEF(vname='avgpower', rpn='%s,AVERAGE' % def1.vname) vdef3 = VDEF(vname='maxenergy', rpn='%s,MAXIMUM' % def2.vname) cdef1 = CDEF(vname='Joule', rpn='%s,3600,*' % def2.vname) area1 = AREA(defObj=def1, color='#006600', legend='Our Power') area2 = AREA(defObj=cdef1, color='#006600', legend='Our Energy') line1 = LINE(defObj=vdef1, color='#660000', legend='Our Maximum') line2 = LINE(defObj=vdef2, color='#009900', legend='Our Average') gprint1 = GPRINT(vdef2,'average power %6.0lf watt') gprint2 = GPRINT(vdef1,'maximum power %6.0lf watt') # setup the labels and definitions also setup # the different file sizes labels = ['power\ in\ Watt','energy\ in\ Joule'] definitions = [ [def1, vdef1, vdef2, area1, gprint1, gprint2, line1, line2], [def2,cdef1, area2]] #setup a dummpy image g = Graph('dummpy.png', end=currentTime, color=self.colors, imgformat='png') for num in range(0, len(labels)): g.vertical_label = labels[num] g.data = definitions[num] for t in self.times: g.start = (currentTime - (t[0] * 60)) for size in self.sizes: g.width = size[0][0] g.height = size[0][1] g.filename = self.graphfile+'_%s_%s_%s.png' % ( labels[num].split('\ ',1)[0], t[1], size[1] ) g.write(debug=False)