ChartsCompiler
Introduction
The ChartsCompiler is the "next-generation" method of creating charts for websites on the basis of CumulusMX based systems. Charts are defined in a dedicated Charts Definition Language and compiled into a file containing both the HTML/javascript menu infrastructure as well as the Highcharts javascript code to create the charts. Data - JSON files as produced by CumulusMX - is assumed to be present in the directory from where the page is called.
Operation
The compiler can be activated/used in two ways: implicit and explicit. Both methods require a file CutilsCharts.def containing the charts definitions to be present in the utils directory.
Implicit activation
If the file CutilsCharts.def with the charts definitions is present in the utils directory then the command:
utils/bin/cumulusutils.exe Website
will activate the compiler and generate the output.
If the file CutilsCharts.def is not present or contains errors, the output will be the default cumuluscharts.txt, containing the original charts for the Home button in the menu.
Explicit activation
If the file CutilsCharts.def with the charts definitions is present in the utils directory then the command:
utils/bin/cumulusutils.exe CompileOnly
will activate the compiler explicitly outside the context of the Website Generator. This leads to the possibility to use the output also as a separate module.
Data activation
If the definition of the charts requires additional data not provided by CMX the the following command will automatically provide those data in a JSON in a way similar to CMX.
utils/bin/cumulusutils.exe UserAskedData
You have to schedule this command if you wish to use the FTP frequency CMX uses for its JSON's.
Note that these JSON files specific to CumulusUtils always reside in the website root of CumulusUtils, even if you have more websites and define the CumulusRealTimeLocation.
Output
If the file CutilsCharts.def with the charts definitions is present in the utils directory, then the output for the ChartsCompiler is (until version 5.2.0) the file cumuluscharts.txt. As such it replaces the default cumuluscharts.txt which will always be available as a backup in case of errors in the definitions or processing.
Inifile parameters
The module has two inifile parameter (see cumulusutils.ini):
[Compiler] ChartContainerHeight=700 => Provides the means for the user to adjust the height of the chart which in case of modular use is very usefull (default=700) DoneToday=17/04/21 => If the user uses data on Daily basis or All basis (from the dayfile), the data need to be prepared only once per day. This parameter tells us the age of the data present to the website.
Inner working
The CutilsCharts.def file contains the chart definitions according to the Charts Definition Language.
When the definition is parsed, a list of chart data structures containing all required information is created. After parsing is successful - one pass - the list is passed to the code generator which creates the output.
The user only has influence on the chart definitions. Errors are logged to the standard logfile. There is currently no true error recovery so when an error is encountered it is logged and the compiler exits to fall back to the default cumuluscharts.txt. The user has to correct the error and run the compiler again. A normal way to develop the charts would be to iterate through the command CompileOnly and when the generation goes without errors, incorporate the charts in the website.
Read the Charts Definition Language.