#! /usr/bin/python3

import locale
import random
import time
from math import sin

import rrdtool

start = int(time.time())
rrd = 'random.rrd'

rrdtool.create(rrd,
               '--start', str(start-1),
               '--step', '300',
               'DS:a:GAUGE:600:U:U',
               'DS:b:GAUGE:600:U:U',
               'RRA:AVERAGE:0.5:1:200')

for t in range(start, start+200*300, 300):
    rrdtool.update(rrd, '%s:%s:%s' % (
        t,
        random.randint(0, 100),
        sin(t/800.)*50+50))

locale.setlocale(locale.LC_ALL, '')  # enable localisation

rrdtool.graph('stripes.png',
              '--title', 'Stripes Demo',
              '--start', str(start),
              '--end', str(start+400*60),
              '--interlaced',
              '--imgformat', 'PNG',
              '--width=450',
              'DEF:a=%s:a:AVERAGE' % rrd,
              'DEF:b=%s:b:AVERAGE' % rrd,
              'CDEF:alpha=TIME,1200,%,600,LT,a,UNKN,IF',
              'CDEF:beta=TIME,1200,%,600,GE,b,UNKN,IF',
              'AREA:alpha#0022e9:alpha',
              'AREA:beta#00b674:beta',
              'LINE1:b#ff4400:beta envelope\\c',
              'COMMENT:\\s',
              'COMMENT:alpha=TIME,1200,%,600,LT,a,UNKN,IF',
              'COMMENT:beta=TIME,1200,%,600,GE,b,UNKN,IF\\j')

print('This script has created stripes.png in the current directory')
print('This demonstrates the use of the TIME and % RPN operators')
