X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=doc%2Fcdeftutorial.pod;h=cced74aa4613855359fbb13c0489473e87347c86;hb=8049b1873ee4661cd0eddb7d9b289fa1aab3e401;hp=bfe94ad0d9d3584062827d2954cc27c301e90fb8;hpb=cb092381724e4ba8a1f18712fefc541a3d370f99;p=rrdtool.git diff --git a/doc/cdeftutorial.pod b/doc/cdeftutorial.pod index bfe94ad..cced74a 100644 --- a/doc/cdeftutorial.pod +++ b/doc/cdeftutorial.pod @@ -4,8 +4,13 @@ cdeftutorial - Alex van den Bogaerdt's CDEF tutorial =head1 DESCRIPTION -If you provide a question, I will try to provide an answer in the next -release of this tutorial. No feedback equals no changes! Additions to +Intention of this document: to provide some examples of the commonly +used parts of RRDtool's CDEF language. + +If you think some important feature is not explained properly, and if +adding it to this document would benefit most users, please do ask me +to add it. I will then try to provide an answer in the next release +of this tutorial. No feedback equals no changes! Additions to this document are also welcome. -- Alex van den Bogaerdt Ealex@ergens.op.het.netE @@ -721,9 +726,12 @@ If you do so, you won't be able to use these next GPRINTs: =head2 Degrees Celsius vs. Degrees Fahrenheit +To convert Celsius into Fahrenheit use the formula +F=9/5*C+32 + rrdtool graph demo.png --title="Demo Graph" \ DEF:cel=demo.rrd:exhaust:AVERAGE \ - CDEF:far=cel,32,-,0.55555,* \ + CDEF:far=9,5,/,cel,*,32,+ \ LINE2:cel#00a000:"D. Celsius" \ LINE2:far#ff0000:"D. Fahrenheit\c" @@ -731,18 +739,16 @@ This example gets the DS called "exhaust" from database "demo.rrd" and puts the values in variable "cel". The CDEF used is evaluated as follows: - CDEF:far=cel,32,-,0.5555,* - 1. push variable "cel" - 2. push 32 - 3. push function "minus" and process it - The stack now contains values that are 32 less than "cel" - 4. push 0.5555 - 5. push function "multiply" and process it - 6. the resulting value is now "(cel-32)*0.55555" - -Note that if you take the Celsius to Fahrenheit function you should -be doing "5/9*(cel-32)" so 0.55555 is not exactly correct. It is close -enough for this purpose and it saves a calculation. + CDEF:far=9,5,/,cel,*,32,+ + 1. push 9, push 5 + 2. push function "divide" and process it + the stack now contains 9/5 + 3. push variable "cel" + 4. push function "multiply" and process it + the stack now contains 9/5*cel + 5. push 32 + 6. push function "plus" and process it + the stack contains now the temperature in Fahrenheit =head2 Changing unknown into zero