Index: trunk/FACT++/www/smartfact/struct/bias.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/bias.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/bias.page	(revision 14623)
@@ -0,0 +1,6 @@
+Bias
+|Voltage||voltage
+|Current||current
+|Current prediction||current-prediction
+|Feedback||feedback
+|hist=hist-biascontrol-current.bin/ &micro;A|
Index: trunk/FACT++/www/smartfact/struct/boardrates.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/boardrates.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/boardrates.page	(revision 14623)
@@ -0,0 +1,6 @@
+Board rates
+trigger|Min. board rate|$0 Hz|
+trigger|Med. board rate|$0 Hz|
+trigger|Avg. board rate|$0 Hz|
+trigger|Max. board rate|$0 Hz|
+|camera=cam-ftmcontrol-boardrates.bin/ Hz|
Index: trunk/FACT++/www/smartfact/struct/chat.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/chat.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/chat.page	(revision 14623)
@@ -0,0 +1,5 @@
+*Chat
+|<h4>Message</h4>|
+|input=/msg/|
+|<h4>Backlog</h4>|
+||$0|
Index: trunk/FACT++/www/smartfact/struct/current-prediction.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/current-prediction.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/current-prediction.page	(revision 14623)
@@ -0,0 +1,7 @@
+Current prediction
+|Source list||source-list
+|Source distance to moon||moon
+||
+|<h4>Max. current prediction (&micro;A/pix)</h4>||
+||<span class='sources'>$0</span>|
+|hist=hist-current-prediction.bin/&micro;A|
Index: trunk/FACT++/www/smartfact/struct/current.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/current.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/current.page	(revision 14623)
@@ -0,0 +1,8 @@
+Currents
+bias|Calibrated|$0|
+bias|Min. current per G-APD|$0&micro;A|
+bias|Med. current per G-APD|$0&micro;A|
+bias|Avg. current per G-APD|$0&micro;A|
+bias|Max. current per G-APD|$0&micro;A|
+bias|Power camera [G-APD]|$0|
+|camera=cam-biascontrol-current.bin/ &micro;A|
Index: trunk/FACT++/www/smartfact/struct/dew.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/dew.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/dew.page	(revision 14623)
@@ -0,0 +1,6 @@
+Dew point
+weather|Current|$0&deg;C|
+weather|Minimum|$0&deg;C|
+weather|Average|$0&deg;C|
+weather|Maximum|$0&deg;C|
+|hist=hist-magicweather-dew.bin/&deg;C|
Index: trunk/FACT++/www/smartfact/struct/errorhist.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/errorhist.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/errorhist.page	(revision 14623)
@@ -0,0 +1,2 @@
+Error history
+status||$0|
Index: trunk/FACT++/www/smartfact/struct/fact.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/fact.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/fact.page	(revision 14623)
@@ -0,0 +1,8 @@
+FACT
+|System status|$0|status
+|Drive|$0|tracking
+|Relative camera temp|$0&deg;C|fsc
+|Weather (hum/wind)|$0% / $1km/h|weather
+|Trigger rate|$0|trigger
+|G-APD (med/max)|$0&micro;A / $1&micro;A [$2]|bias
+|camera=cam-fadcontrol-eventdata.bin/ V|
Index: trunk/FACT++/www/smartfact/struct/fad.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/fad.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/fad.page	(revision 14623)
@@ -0,0 +1,5 @@
+FAD Connections
+status|Crate 0|$0|
+status|Crate 1|$0|
+status|Crate 2|$0|
+status|Crate 3|$0|
Index: trunk/FACT++/www/smartfact/struct/feedback.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/feedback.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/feedback.page	(revision 14623)
@@ -0,0 +1,8 @@
+Feedback
+bias|User Offset|$0 V|
+bias|Temp Offset|$0 V|
+bias|Additional offset min|$0 V|
+bias|Additional offset med|$0 V|
+bias|Additional offset avg|$0 V|
+bias|Additional offset max|$0 V|
+|camera=cam-feedback-deviation.bin/ V|
Index: trunk/FACT++/www/smartfact/struct/fsc.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/fsc.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/fsc.page	(revision 14623)
@@ -0,0 +1,9 @@
+Slow control
+fact|Average humidity|$0%
+fact|Current min. sensor temp|$0&deg;C
+fact|Current avg. sensor temp|$0&deg;C
+fact|Current max. sensor temp|$0&deg;C
+fact|Min. relative temp|$0&deg;C
+fact|Avg. relative temp|$0&deg;C
+fact|Max. relative temp|$0&deg;C
+|hist=hist-fsccontrol-temperature.bin/&deg;C|
Index: trunk/FACT++/www/smartfact/struct/ftm.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/ftm.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/ftm.page	(revision 14623)
@@ -0,0 +1,10 @@
+FTM settings
+|Trigger interval|$0 ms|
+|Artificial trigger (ped&#58;lpext&#58;lpint)|$0|
+|Trigger (phys/ext1/ext2)|$0|
+|Veto / Time marker|$0|
+|Multiplicity N/40 (phys/cal)|$0|
+|Window (phys/cal)|$0 ns / $1 ns|
+|Delay (trigger/time marker)|$0 ns / $1 ns|
+|Dead time|$0 ns|
+|FTU readout interval|$0 s|ftu
Index: trunk/FACT++/www/smartfact/struct/ftu.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/ftu.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/ftu.page	(revision 14623)
@@ -0,0 +1,5 @@
+FTU status
+ftm|Crate 0|$0|
+ftm|Crate 1|$0|
+ftm|Crate 2|$0|
+ftm|Crate 3|$0|
Index: trunk/FACT++/www/smartfact/struct/gusts.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/gusts.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/gusts.page	(revision 14623)
@@ -0,0 +1,6 @@
+Wind gusts
+weather|Current|$0 km/h|
+weather|Minimum|$0 km/h|
+weather|Average|$0 km/h|
+weather|Maximum|$0 km/h|
+|hist=hist-magicweather-gusts.bin|
Index: trunk/FACT++/www/smartfact/struct/help-about.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-about.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-about.page	(revision 14623)
@@ -0,0 +1,25 @@
+About
+|image=Flynns_file.png|
+
+|
+<U><B>SmartFACT++</B></U><br/>
+<B><TT>FACT telescope web control system</tt></B>
+
+Frontend power by <B>JavaScript</B><br/>
+Backend powered by <B>boost</B> and <B>dim</B>
+
+<B>Dim homepage:</B> <A HREF="http://dim.cern.ch">dim.cern.ch</A><br/>
+<B>FACT homepage:</B> <A HREF="http://www.fact-project.org">www.fact-project.org</A>
+
+<B>Written by:</B> T.Bretz<br/>
+<B>Contact:</B> <tt><A href="emailto:thomas.bretz@epfl.ch">thomas.bretz@epfl.ch</A></tt><br/>
+<B>Copyright:</B> &copy; T.Bretz (FACT Collaboration, 2012)
+
+<B>Collaborating institutes:</b><br/>
+&nbsp;&bull; EPF Lausanne<br/>
+&nbsp;&bull; ETH Z&uuml;rich<br/>
+&nbsp;&bull; ISDC (University Geneva)<br/>
+&nbsp;&bull; TU Dortmund<br/>
+&nbsp;&bull; University W&uuml;rzburg
+|
+
Index: trunk/FACT++/www/smartfact/struct/help-binaryfile.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-binaryfile.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-binaryfile.page	(revision 14623)
@@ -0,0 +1,21 @@
+Binary-file format
+|<h4>Camera and histogram file format</h4> 
+The first line of the file always contains a thirteen-digit number
+which is the time (in UTC) corresponding to the contained data as Unix
+time (milli-seconds since 1/1/1970). The second line contains a
+floating point number (in human readable ascii format) representing the
+lower limit if the scale and the third line the upper limit. The next three
+lines contain the three numbers displayed on top of the graphics,
+usually the minumum, median and maximum data value. Everything
+after is considered to be the data. For some restrictions of the HTML
+GET mechanism available in JavaScript the data must not exceed ascii
+character 127. So the full scale displayed, either in colors or as
+graph, is from 0 to 127. Eeach ascii character represents one entry in
+the camera or the histogram. The number of entries in the histogram can
+be between 0 to hundreds, although more entries than a typical screen
+has pixels does not make much sense. Keep in mind that the data is
+reloaded every few seconds and the larger the file is the higher the
+network traffic is. For the camera the number of entries is fixed and
+must either be 40 (boards), 160 (patches), 320 (HV channels) or 1440
+(pixels). They must be ordered by crate, board, chip, group, channel. 
+|
Index: trunk/FACT++/www/smartfact/struct/help-camera.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-camera.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-camera.page	(revision 14623)
@@ -0,0 +1,14 @@
+Camera
+|image=fact-camera.png|
+|
+The camera display is available in different types. It can display 40
+(board) values, 160 (patch) values, 320 (bias channel) values or
+1440 pixels. Depending on the type of input data several pixels mights
+consequently be displayed in the same color.
+|
+|<h4>min / med /max</h4>
+The minimum, median and maximum value of all values displayed in the camera.
+|
+|<h4>Scale</h4>
+The color scale of the displayed data.
+|
Index: trunk/FACT++/www/smartfact/struct/help-datafile.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-datafile.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-datafile.page	(revision 14623)
@@ -0,0 +1,43 @@
+Datafile format
+|
+A datafile is a file which is automatically loaded every few seconds
+and the values displayed on a page are updated. If the page name
+is <I>mypage.page</I> the name of the corresponding data file is
+<I>mypage.data</I>.
+
+The first line of the data file always contains a thirteen-digit number
+which is the time (in UTC) corresponding to the contained data
+as Unix time (milli-seconds since 1/1/1970). Seprated with tabs, it can
+contain to additional numbers. The first one defines if the warning
+sign is displayed (&gt;=1 means that it is displayed) and the
+second defines whether the script stop sign is displayed in green or red.
+For data-files which are not guranteed to be updated in reasonable
+intervals, it is advisable to not write the two numbers at all.
+
+Each following line contains columns seperated by tabs. The first column
+contains the background color of the row. It can be given in any
+representation accepted by HTML, usually #rrggbb. The following columns
+contain values or text which will replace the $N in the format given
+in the page file, <i>e.g.</i>
+
+If the second line of the data file contains
+
+<pre>
+blue\t0\t42.0
+</pre>
+
+while \t here representas the ascii character 9 ('\t' in C and C++), and the format
+in the page files looks like
+
+<pre>
+$1 shoes and $0 socks
+</pre>
+
+the row displayed will be
+
+<pre>
+42.0 shoes and 0 socks
+</pre>
+
+with a blue background.
+|
Index: trunk/FACT++/www/smartfact/struct/help-description.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-description.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-description.page	(revision 14623)
@@ -0,0 +1,40 @@
+Description
+|<h4>Description tag</h4>
+There are a few special tags for the description in the page-file.
+
+The tags are
+
+<pre>
+camera=filename/unit<br/>
+hist=filename/unit<br/>
+image=filename
+</pre>
+
+In the case of camera and hist, a binary file is loaded which contains the
+data to be displayed. The file-format for this i discussed hereafter.
+In case of the image-tag an HTML image tag is included showing the
+image loaded full-width in the row.
+
+If a camera graphics is displayed, the given unit is displayed at the scale
+(note that opera browser do not support text in the graphics so far).
+
+The unit can contain HTML special characters, <I>e.g.</I> &#38;micro;A
+|
+|<h4>Input tag</h4>
+For sending arguments to script (on script-pages) also a few special
+tags are available
+
+<pre>
+input=Title/name/default<br/>
+select=Title/name/item1/item2/item3<br/>
+</pre>
+
+The title is displayed on the left side of the row. The name is the 
+argument name used later in the script to indentify the arguments.
+
+<i>input</i> creates a text input field with the default as default.
+
+<i>select</i> creates a list-box with the items in the list. The default
+is the first item.
+|
+|Binary file format||help-binaryfile
Index: trunk/FACT++/www/smartfact/struct/help-fact-bias.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-fact-bias.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-fact-bias.page	(revision 14623)
@@ -0,0 +1,26 @@
+FACT
+|<h4>G-APD (med/max)</h4>
+Here the status of the bias system is summarized.
+
+The backround colors have the following meaning:
+<ul class='help'>
+<li>DNS online, MCP taking data, FAD taking data</li>
+<li>Bias voltage switched on and median current above 60&micro;A or
+maximum current (excluding faulty pixels) above 80&micro;A</li>
+<li>Bias voltage switched on and median current above 70&micro;A or
+maximum current (excluding faulty pixels) above 90&micro;A or any patch
+in OverCurrent or MCP not Idle and bias voltage is neither well defined
+switched on (VoltageOn) nor well defined off (VoltageOff).</li>
+<li>Bias neither ramping, nor in OverCurrent, nor in the well defined
+voltage on or off state.</li>
+<li>Bias crate is currently being calibrated</li>
+</ul>
+
+If the bias crate is currently calibrated asterix' are displayed, otherwise
+median pixel current and the maximum pixel current. The maximum excludes
+the crazy pixels. If a channel is on OverCurrent <I>(OC)</I> is appended.
+If the bias crate has not yet been calibrated the maximum current is
+replaced by a dash. If the bias current have been calibarted 
+already, also the total power consumed by the G-APDs
+is displayed otherwise the median applied voltage.
+|
Index: trunk/FACT++/www/smartfact/struct/help-fact-drive.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-fact-drive.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-fact-drive.page	(revision 14623)
@@ -0,0 +1,35 @@
+FACT
+|<h4>Drive</h4>
+The current drive status is displayed if the dim-network is online
+and the drivectrl has connection to cosy.
+
+The backround colors have the following meaning:
+<ul class='help'>
+<li>Drive is tracking</li>
+<li>Drive is tracking and the control deviation is larger than one arc-minute</li>
+<li>Drive is tracking and the control deviation is larger than two arc-minutes or the drive is in ERROR state</li>
+<li>Drive is offline, or online and neither moving nor tracking</li>
+<li>Drive is moving</li>
+</ul>
+
+If the drive is online, the current pointing position is displayed. Between
+sun-rise and sun-set a sun-symbol (&#9788;) is displayed. If between
+sun-set and sun-rise the moon is above horizon, a moon-symbol (&#9790;)
+is displayed. During tracking the current control deviation is 
+displayed behin a plus-minus symbol (&plusmn;). If the source name of
+the current tracking position is available it is displayed in []-parenthesis.
+If the drive is currently moving a moving-symbol (&#10227;) is displayed.
+
+If the drive is online and in error state this is also indicated by the
+extension [ERR]. This should make it easier to detect this state.
+
+If the drive is switched off and either the sun- or the moon-symbol is
+visible, it is extended with either the time until sun-set (indicated 
+with a down-arrow &darr;) or the moon disk visibility in percent.
+When the drive is switched on, this information is omitted due to space
+reasons.
+
+More detailed informations about the sun and moon can be found at the
+weather page. More detailed tracking and pointing information at the
+drive page.
+|
Index: trunk/FACT++/www/smartfact/struct/help-fact-rate.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-fact-rate.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-fact-rate.page	(revision 14623)
@@ -0,0 +1,13 @@
+FACT
+|<h4>Trigger rate</h4>
+If the dim network is online and the trigger master (ftmctrl) in in state
+TriggerOn, the current camera trigger rate is displayed. If the
+bias voltage is swicthed on (biasctrl in state VoltageOn), also the
+median patch threshold is displayed in ()-parenthesis.
+
+<ul class='help'>
+<li>Trigger rate between 15Hz and 100Hz</li>
+<li>Trigger rate below 15Hz</li>
+<li>Trigger rate above 100Hz</li>
+</ul>
+|
Index: trunk/FACT++/www/smartfact/struct/help-fact-status.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-fact-status.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-fact-status.page	(revision 14623)
@@ -0,0 +1,27 @@
+FACT
+|<h4>System status</h4>
+Here the status of the whole system is summarized.
+
+The backround colors have the following meaning:
+<ul class='help'>
+<li>DNS online, MCP taking data, FAD taking data</li>
+<li>n/a</li>
+<li>n/a</li>
+<li>DNS offline of MCP in idle state</li>
+<li>DNS online, MCP configuring, configured or trigger on, MCP taking data and FAD not taking data, or
+ratecontrol in SettingThreshold or ratescan in progress.</li>
+</ul>
+
+The MCP state Idle, any configuring state and configured are display
+as text <I>Idle</I>, <I>Configuring</I> or <I>Configured</I>. In
+brackets the name of the last configured, or corresponding configuration
+is displayed. In case the trigger is swicthed on or the MCP is in state
+data-taking, only the configuration name and the last available
+DRS trigger baseline calibration run is displayed in parenthesis, if
+available. For the special cases that the threshold is currently
+calibrated or a rate scan is in progress, <I>Calibrating threshold</I> or
+<I>Rate scan in progress</I> is displayed. Is the MCP is configured to take
+data or data-taking is in progress, either the length of the run to be taken
+and/or the number of events to be taken are displayed, or an estimate of 
+the remaining time and/or number.
+|
Index: trunk/FACT++/www/smartfact/struct/help-fact-temp.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-fact-temp.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-fact-temp.page	(revision 14623)
@@ -0,0 +1,19 @@
+FACT
+|<h4>Relative camera temperature</h4>
+The difference between the average temperatur in the sensor compartment
+and the outside temperature as measured by the MAGIC weather station
+is displayed if both value are available.
+
+Currently, no color codes are applied. A green background just means
+that a valid number is displayed, <I>i.e.</I> that the camera is
+switched on because values were recived from the slow control
+board and values are received from the MAGIC weather station.
+
+The backround colors have the following meaning:
+<ul class='help'>
+<li>Relative camera temperature as usual</li>
+<li>Relative camera temperature above 5&deg;C</li>
+<li>Relative camera temperature abive 8&deg;C</li>
+</ul>
+
+|
Index: trunk/FACT++/www/smartfact/struct/help-fact-weather.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-fact-weather.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-fact-weather.page	(revision 14623)
@@ -0,0 +1,13 @@
+FACT
+|<h4>Humidity / Wind</h4>
+If the dim network is online and magicweather is in state Receiving and
+at least one report has been received since smartfact was started,
+the current humidity and a measure for the wind gusts from the
+MAGIC weather station are displayed.
+
+<ul class='help'>
+<li>Wind gusts below 35km/h and humidity below 95%</li>
+<li>Wind gusts larger than 35km/h or humidity larger than 95%</li>
+<li>Wind gusts larger than 50km/h or humidity larger than 98%</li>
+</ul>
+|
Index: trunk/FACT++/www/smartfact/struct/help-fact.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-fact.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-fact.page	(revision 14623)
@@ -0,0 +1,16 @@
+FACT
+|<H4>General help about SmartFACT++</h4>||help-main
+||
+|System status||help-fact-status
+|Drive||help-fact-drive
+|Relative camera temperature||help-fact-temp
+|Humidity / Wind||help-fact-weather
+|Trigger rate||help-fact-rate
+|G-APD (med/max)||help-fact-bias
+|<h4>Event display</h4>
+The camera display shows on the last events sent by the fadctrl. For
+network traffic reasons only one value, <I>i.e.</i> the maximum
+of all four or five pixels, is displayed per bias channel
+and the time marker channels are ignored. The extracted value corresponds
+to the maximum entry found in the region-of-interest.
+|
Index: trunk/FACT++/www/smartfact/struct/help-histogram.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-histogram.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-histogram.page	(revision 14623)
@@ -0,0 +1,14 @@
+Histogram
+|image=fact-histogram.png|
+|<h4>min / med /max</h4>
+The minimum, median and maximum value of all values displayed in the histogram.
+|
+|<h4>Scale</h4>
+The scale of the displayed coordinate system. Note that the x-axis is
+defined by the writer and the points are always equidistant in x, even
+they might not be equidistant at all.
+|
+|<h4>Data</h4>
+The data as reloaded from the server. Note that the data is quantized
+into seven bit. Hence, the resolution is limited to 128 steps.
+|
Index: trunk/FACT++/www/smartfact/struct/help-introduction.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-introduction.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-introduction.page	(revision 14623)
@@ -0,0 +1,32 @@
+Introduction
+|
+The idea of SmartFACT++ is simple. A backend (<I>smartfact</I>) updates some
+data-files continously which can then be retrieved from a web-server
+and the data is displayed in your browser. To keep the network traffic
+low the data is not encapsulated in html, but transmitted <I>as is</I>.
+A JavaScript, running client side, <I>i.e.</I> on the machine running
+the browser is then creating the html around it dynamically which is then
+displayed by the browser. The backend writing the data-files can be basically
+everything. In case of FACT it is a program called <I>smartfact</I> which
+subscribes to all dim-services in the dim-network which are needed.
+Whenever a service is updated, the corresponding files are also updated.
+The disadvantage is that it is difficult to mix information which is 
+not updated together in a single file and display it on a single page.
+This, <I>e.g.</I>, means that a file which is only updated every two 
+hours (because new information is only available every two hours) cannot
+reasonably store information which can change every minute, <I>e.g.</I>
+general warnings. Every page is restricted to reload a single file, to 
+keep network traffic low. A simple solution would be a php which concatenates 
+information before the information is transfered, but this is (not yet?)
+available. Consequently, all pages which are not updated frequently or
+are guranteed to be updated frequently will not show fats updateing
+information as warning. Some pages, <I>e.g.</I>, the main page are
+updated once every seconcd or few seconds rather than updated
+event-driven by the reception of a new service. These pages will then
+show informations like the current warning status of the system.
+
+The page description is reloaded whenver a page has been clicked to
+avoid a lot of network traffic at startup. The disadvantage is a little
+network traffic (in the order of a few hundred bytes) whenever a page
+is changed.
+|
Index: trunk/FACT++/www/smartfact/struct/help-layout.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-layout.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-layout.page	(revision 14623)
@@ -0,0 +1,37 @@
+Layout
+|<h4>Home</h4>
+Links from all other pages (except the home page itself) to the home page
+|
+|<h4>Watchdog</h4>
+The two dots on the left and the right of the title change their color
+with every retrieved data or graphics file, respectively. This is a way
+to find out if the continous retrieval is still in progress.
+|
+|<h4>Time stamp of displayed data</h4>
+Each data file which is loaded from the server comes with a time-stamp.
+This time-stamp is displayed here. This allows for example to find out
+whether the values are still valid or just the last values produced by the
+system hours ago. If this time-stamp is older than sixty seconds,
+the time is displayed in red color.
+|
+|image=fact-inactive.png|
+|<h4>Link to help page</h4>
+Links to a page giving information about the data currently displayed,
+<i>e.g.</i> meaning of background colors, etc.
+|
+|<h4>Link to control page</h4>
+A direct link to the control page from which actions can be initiated.
+|
+#|<h4>Title</h4>
+#|
+|<h4>Stop script</h4>
+If this button is pressed a STOP is sent to the script control and the script
+should be terminated. On pages which are updated regularly, the color
+shows if a script is running (green) or not (red). When the 
+button is displayed uncolored, the data is in general not updated often enough
+to deliver up-to-date information.
+|
+|<h4>Current UTC</h4>
+The current UTC time is displayed. If this does not happen anymore there
+is a problem with the JavaScript. This is a bug and should never happen.
+|
Index: trunk/FACT++/www/smartfact/struct/help-main.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-main.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-main.page	(revision 14623)
@@ -0,0 +1,16 @@
+SmartFACT++
+|<H4>General help</H4>||
+|The basic idea - how does it work?||help-introduction
+|Page layout (displayed elements)||help-layout
+|The camera display||help-camera
+|The histogram display||help-histogram
+|Network traffic and refresh||help-traffic
+|URL options||help-url
+|Sounds||help-sounds
+|File syntax||help-syntax
+||
+||
+#|<h4>Help for main page</h4>||help-main
+|<H4>About</H4>||help-about
+||
+|Please report bugs or problems to <A href="mailto:thomas.bretz@epfl.ch">Thomas Bretz</A>|
Index: trunk/FACT++/www/smartfact/struct/help-sounds.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-sounds.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-sounds.page	(revision 14623)
@@ -0,0 +1,87 @@
+Sounds
+|
+Sounds have to be explicitly switched on in the URL, <i>e.g.</I>
+
+<pre>
+http://[url]/?sound
+</pre>
+
+Sounds will only be available on pages with regular updates, which are
+the main page and the status page. If sounds are not available,
+a stroke out speaker is displayed.
+
+Note that these pages are only reloaded once in a few seconds. If more
+than one sound is to be played during that time only the last sound
+will be played, <I>i.e.</I> that in special circumstances some sounds
+might be missed.
+
+In the following examples of all available sounds are listed.
+|
+|<h4>Startup</h4>
+<audio controls id="audio">
+  <source type="audio/mp3" src="audio/startup.mp3"/>
+  <source type="audio/ogg" src="audio/startup.ogg"/>
+</audio><br/>
+This sound is played whenever the control-program of the slow control board
+(fscctrl) gets contact to the hardware. This is usually the case when
+the camera is switched on.
+|
+|<h4>Shutdown</h4>
+<audio controls id="audio">
+  <source type="audio/mp3" src="audio/shutdown.mp3"/>
+  <source type="audio/ogg" src="audio/shutdown.ogg"/>
+</audio><br/>
+This sound is played whenever the control-program of the slow control board
+(fscctrl) looses contact with the hardware. This is usually the case when
+the camera is switched off.
+|
+|<h4>Error</h4>
+<audio controls id="audio">
+  <source type="audio/mp3" src="audio/error.mp3"/>
+  <source type="audio/ogg" src="audio/error.ogg"/>
+</audio><br/>
+If a severe error happens, this sounds is displayed. Until the error
+remains, a warning symbol is also displayed in the upper left corner 
+and links to current error messages. A history of erros is accessible
+from the status page via the Smartfact entry.
+|
+|<h4>Script ends</h4>
+<audio controls id="audio">
+  <source type="audio/mp3" src="audio/ding.mp3"/>
+  <source type="audio/ogg" src="audio/ding.ogg"/>
+</audio><br/>
+A ding is played if a script has ended or been stopped.
+|
+|<h4>Manual run ends</h4>
+<audio controls id="audio">
+  <source type="audio/mp3" src="audio/dong.mp3"/>
+  <source type="audio/ogg" src="audio/dong.ogg"/>
+</audio><br/>
+If a run has been started manually, <I>i.e.</i> no script is running
+at the same time, a ding is played when the run end or to be more
+precise when the Master Control Program (MCP) changed its state
+from TakingData to Idle which happens when the data acquisition (fadctrl)
+leaves its state WritingData.
+|
+|<h4>Automatic run ends</h4>
+<audio controls id="audio">
+  <source type="audio/mp3" src="audio/losticks.mp3"/>
+  <source type="audio/ogg" src="audio/losticks.ogg"/>
+</audio><br/>
+For this tick-sound the same conditions apply than for the previous sound
+except that it is played when a script is executed while the run ends.
+The same sound is played whenever a run is started, <i>i.e.</I> the Master
+Control Program (MCP) changed its state from TriggerOn to TakingData
+which happens when the first even has been received and the data 
+acquisition (fadctrl) changed its state to WritingData.
+
+|
+|<h4>Message</h4>
+<audio controls id="audio">
+  <source type="audio/mp3" src="audio/message.mp3"/>
+  <source type="audio/ogg" src="audio/message.ogg"/>
+</audio><br/>
+This sound will be played if a new message is distributed by the chat-server.
+The chatlog and the possibility to send messages is available from the
+Chat Server entry in the status page.
+|
Index: trunk/FACT++/www/smartfact/struct/help-syntax.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-syntax.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-syntax.page	(revision 14623)
@@ -0,0 +1,60 @@
+Syntax
+|
+To write your own page you need to understand the syntax of the files.
+The first line in the file is the title. It is just the title
+displayed. If the first character is an asterix (*) then the page is
+considered a page which is intented for script submission (<I>control
+page</I>). If the page name starts with <B>help-</B>, the page is
+considered a help page and the help symbol is inactive. If the page is
+a control page, the submitted script with have the name of the page
+without extension,  with the extension <B>.dim</B>, <I>e.g.</I>
+if the page name is <I>mypage.page</I> the submitted scripts
+name is <I>mypage.dim</I>.
+
+Each following line of the file describes a row in the table and is
+split by pipes (&#124;). To use a pipe in a line you have to 
+write &#38;#124;. Lines which containes less than two pipes are
+concatenated until the number of pipes in one line is at least two. So
+the description of one row can look like
+
+<pre>
+leftlink&#124;Description&#124;format&#124;rightlink
+</pre>
+
+but also
+
+<pre>
+leftlink&#124;<br/>
+Description<br/>
+&#124;format&#124;rightlink
+</pre>
+
+If <I>leftlink</I> is available, a left arrow is displayed on the left
+and the row will link to page called <I>leftlink.page</I>. The same for
+<I>rightlink</i>, just that a right arrow is displayed on the right instead.
+Both are mutually exclusive, and can also be omotted.
+
+The <I>Description</I> is just a text which appears on the left side of
+the row in bold-face. if the format is omitted, it will fill the full
+width of the table and be displayed in normal-face. Consequently, a
+simple text entry could look like:
+
+<pre>
+&#124;<br/>
+This is my simple text entry.&lt;br/&gt;<br/>
+We can have more lines...
+
+...and even a paragraph-break.&lt;br/&gt;<br/>
+&#124;
+</pre>
+
+Every line starting with a # is ignored.
+
+The description can also have special contents (see below).
+
+If the help is not a help-page, a data file is loaded and its data is
+displayed on the right of each row according the format given.
+|
+|Special tag descriptions||help-description
+|Data file and data file format||help-datafile
+|Binary file format||help-binaryfile
Index: trunk/FACT++/www/smartfact/struct/help-traffic.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-traffic.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-traffic.page	(revision 14623)
@@ -0,0 +1,36 @@
+Network traffic
+|
+This interface is optimized for slow network connection and low network
+traffic. It is not advisable to reload the pages manually because you
+would just reload the JavaScript. The traffic should be <B>less than
+1kB/s</B> and hence suitable also for mobile connections. The layout is
+optimized for small windows and mobile phones. 
+
+The data displayed is refreshed once every three seconds, <I>i.e.</I>
+the file is reloaded from the server. The graphics display is refreshed
+once every five seconds. A new refresh is only started if the old one
+has been finished, either successfully for with an error or timeout,
+<I>i.e.</I> that slow or faulty network connection can significanly
+increase the refresh time. Whenever a refresh was performed, the color
+of the dots around the title is changed (one for the data and one for
+the graphics) to indicate that the JavaScript is still running and
+requesting data from the server. Also the time stamp at the footer is
+updated. The time-stamp of the retrieved data is displayed at the top.
+If no updated could be performed within sixty seconds or the data is
+older than sixty seconds the time stamp is displayed in red. If the
+time-stamp of the graphics is older than sixty seconds the graphics is
+grayed.
+
+In case of errors or broken connections, the time interval for
+retrieval is  increased to ten seconds, and decreased again if valid
+data was received.
+
+The timer is not newly started if a new page is loaded, hence, it might
+take a few seconds before the values will be displayed. 
+
+The typical size of a camera display is about 350 bytes, the typical
+size of the ascii data is about 100 bytes. Adding the HTML header
+which is in the order of 200 bytes, this yields an average transmission
+rate of aprroximately 200 bytes per second. This is less than one
+mega-byte in one hour, plus the data loaded for each page switch.
+|
Index: trunk/FACT++/www/smartfact/struct/help-url.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/help-url.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/help-url.page	(revision 14623)
@@ -0,0 +1,54 @@
+URL
+|
+The url you specify when calling SmartFACT++ can contain links to the
+page you intend to view first, but also special arguments for steering
+the display, <I>e.g.</I>
+
+<pre>
+http://[url]/?w=320&h=200#status
+</pre>
+
+Would open the status page (status.page) and display the content
+with a fixed size of 320x200. Both, width and height, can be omitted.
+
+Also possible
+
+<pre>
+http://[url]/?max
+</pre>
+
+Usually the graphic is adapted to fit into the viewport (the size of
+your browser window). This option instructs SmartFACT++ to display the 
+graphics always quadratically and with the full width, <I>i.e.</I> it
+might range outside of your window on the bottom of your page and a scroll
+bas would be displayed.
+
+Since SmartFACT++ is also meant for mobile devices, some compromises had
+to be made. One is that modern HTML5 techniques could not be applied to
+the fullest. If your browser has problems with switching pages, you
+can turn off the sliding effect by:
+
+<pre>
+http://[url]/?noslide
+</pre>
+
+On pages which are regularly updated, <i>i.e.</i> the main page and
+the status page, sound output for certain circumstances can be enabled
+with the sound option:
+
+<pre>
+http://[url]/?sound
+</pre>
+
+All of the options can be combined as long as they make sense, <i>e.g.</i>
+
+<pre>
+http://[url]/?noslide&sound
+</pre>
+
+In all examples above the url would usually be
+
+<pre>
+www.fact-project.org/smartfact
+</pre>
+|
Index: trunk/FACT++/www/smartfact/struct/hum.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/hum.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/hum.page	(revision 14623)
@@ -0,0 +1,6 @@
+Humidity
+weather|Current|$0%|
+weather|Minimum|$0%|
+weather|Average|$0%|
+weather|Maximum|$0%|
+|hist=hist-magicweather-hum.bin/%|
Index: trunk/FACT++/www/smartfact/struct/moon.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/moon.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/moon.page	(revision 14623)
@@ -0,0 +1,14 @@
+Moon
+|Rise|$0|
+|Culmination|$0|
+|Set|$0|
+||
+|Disk|$0|
+|Position|$0&deg; $1|
+||
+|Current prediction||current-prediction
+|<h4>Source distance to moon</h4>|
+||<table class='astro'>$0</table>|
+|Request time|$0|
+||
+|<h4>Sun</h4>||sun
Index: trunk/FACT++/www/smartfact/struct/observations.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/observations.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/observations.page	(revision 14623)
@@ -0,0 +1,2 @@
+Observations
+||$0|
Index: trunk/FACT++/www/smartfact/struct/patchrates.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/patchrates.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/patchrates.page	(revision 14623)
@@ -0,0 +1,6 @@
+Patch rates
+trigger|Min. patch rate|$0 Hz|
+trigger|Med. patch rate|$0 Hz|
+trigger|Avg. patch rate|$0 Hz|
+trigger|Max. patch rate|$0 Hz|
+|camera=cam-ftmcontrol-patchrates.bin/ Hz|
Index: trunk/FACT++/www/smartfact/struct/pointing.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/pointing.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/pointing.page	(revision 14623)
@@ -0,0 +1,4 @@
+Pointing
+|<h4>Last known pointing position</h4>|
+tracking|Azimuth|$0&deg; [$1]|
+tracking|Zenith distance|$0&deg;|
Index: trunk/FACT++/www/smartfact/struct/press.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/press.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/press.page	(revision 14623)
@@ -0,0 +1,6 @@
+Pressure
+weather|Current|$0 hPa|
+weather|Minimum|$0 hPa|
+weather|Average|$0 hPa|
+weather|Maximum|$0 hPa|
+|hist=hist-magicweather-press.bin/ hPa|
Index: trunk/FACT++/www/smartfact/struct/ratescan-board.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/ratescan-board.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/ratescan-board.page	(revision 14623)
@@ -0,0 +1,4 @@
+Ratescan Board
+ratescan|Board ID|$0|
+ratescan|Rate|$0 Hz|
+|hist=hist-ratescan-board.bin/e|
Index: trunk/FACT++/www/smartfact/struct/ratescan.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/ratescan.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/ratescan.page	(revision 14623)
@@ -0,0 +1,6 @@
+Ratescan
+status|Median board threshold|$0|
+status|Median patch threshold|$0|
+status|Camera rate|$0 Hz
+|Max board rate|$0 Hz|ratescan-board
+|hist=hist-ratescan.bin/e|
Index: trunk/FACT++/www/smartfact/struct/scriptlog.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/scriptlog.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/scriptlog.page	(revision 14623)
@@ -0,0 +1,3 @@
+Scriptlog
+|<font color='darkred' size='-1'><B>This page might create network traffic as high as 3kB/s</B></font>|
+||$0|
Index: trunk/FACT++/www/smartfact/struct/source-list.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/source-list.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/source-list.page	(revision 14623)
@@ -0,0 +1,6 @@
+Sources
+|Source visibility||visibility
+||
+|<h4>Source positions (Zd / Az)</h4>|
+tracking||<table class='astro'>$0</table>|
+|Request time|$0|
Index: trunk/FACT++/www/smartfact/struct/source.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/source.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/source.page	(revision 14623)
@@ -0,0 +1,6 @@
+Source
+tracking|Source Name|$0
+tracking|Right ascension|$0 h
+tracking|Declination|$0&deg;
+tracking|Wobble offset|$0&deg;
+tracking|Wobble angle|$0&deg;
Index: trunk/FACT++/www/smartfact/struct/status.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/status.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/status.page	(revision 14623)
@@ -0,0 +1,21 @@
+System status
+|DIM|$0|
+|Dim Control|$0|scriptlog
+|MCP|$0|observations
+|Datalogger|$0|
+|Drive control|$0|
+|Drive PC time check|$0|
+|FAD control|$0|fad
+|FTM control|$0|ftm
+|Bias control|$0|
+|Feedback|$0|
+|Rate control|$0|
+|FSC control|$0|
+|Ratescan|$0|ratescan
+|Magic Weather|$0|
+|TNG Weather|$0|
+|Chat server|$0|chat
+|Skype client|$0|
+|Free disk space|$0|
+|Smartfact runtime|$0|errorhist
+
Index: trunk/FACT++/www/smartfact/struct/sun.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/sun.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/sun.page	(revision 14623)
@@ -0,0 +1,14 @@
+Sun
+|<h4>Sun rise</h4>|
+|End of dark time|$0|
+|End of astron. twilight|$0|
+|End of nautical twilight|$0|
+|Start of day-time|$0|
+||
+|<h4>Sun set</h4>|
+|End of day-time|$0|
+|Start of nautical twilight|$0|
+|Start of astron. twilight|$0|
+|Start of dark time|$0|
+||
+|<h4>Moon</h4>||moon
Index: trunk/FACT++/www/smartfact/struct/temp.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/temp.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/temp.page	(revision 14623)
@@ -0,0 +1,6 @@
+Temperature
+weather|Current|$0&deg;C|
+weather|Minimum|$0&deg;C|
+weather|Average|$0&deg;C|
+weather|Maximum|$0&deg;C|
+|hist=hist-magicweather-temp.bin/&deg;C|
Index: trunk/FACT++/www/smartfact/struct/thresholds-board.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/thresholds-board.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/thresholds-board.page	(revision 14623)
@@ -0,0 +1,5 @@
+Board thresholds
+thresholds|Min. board threshold|$0|
+thresholds|Med. board threshold|$0|
+thresholds|Max. board threshold|$0|
+|camera=cam-ftmcontrol-thresholds-board.bin|
Index: trunk/FACT++/www/smartfact/struct/thresholds-patch.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/thresholds-patch.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/thresholds-patch.page	(revision 14623)
@@ -0,0 +1,5 @@
+Patch thresholds
+thresholds|Min. patch threshold|$0|
+thresholds|Med. patch threshold|$0|
+thresholds|Max. patch threshold|$0|
+|camera=cam-ftmcontrol-thresholds-patch.bin|
Index: trunk/FACT++/www/smartfact/struct/thresholds.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/thresholds.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/thresholds.page	(revision 14623)
@@ -0,0 +1,4 @@
+Thresholds
+|Med. board threshold|$0|thresholds-board
+|Med. patch threshold|$0|thresholds-patch
+|hist=hist-ratecontrol-threshold.bin|
Index: trunk/FACT++/www/smartfact/struct/tngdust.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/tngdust.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/tngdust.page	(revision 14623)
@@ -0,0 +1,2 @@
+Dust (TNG)
+|hist=hist-tng-dust.bin/ &micro;g/m&sup3;|
Index: trunk/FACT++/www/smartfact/struct/tracking.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/tracking.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/tracking.page	(revision 14623)
@@ -0,0 +1,13 @@
+Tracking
+|Source list||source-list
+|Source visbility||visibility
+||
+|<h4>Last known tracking position</h4>|
+|Source Name|$0|source
+fact|Right ascension|$0 h
+fact|Declination|$0&deg;
+|Zenith distance|$0&deg;|pointing
+|Azimuth|$0&deg;|pointing
+fact|Control deviation|$0"
+fact|Distance to moon|$0&deg;
+|hist=hist-control-deviation.bin/"|
Index: trunk/FACT++/www/smartfact/struct/trigger.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/trigger.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/trigger.page	(revision 14623)
@@ -0,0 +1,6 @@
+Trigger
+|Thresholds||thresholds
+fact|Current trigger rate|$0 Hz
+|Board rates (min/med/max)|$0 Hz / $1 Hz / $2 Hz|boardrates
+|Patch rates (min/med/max)|$0 Hz / $1 Hz / $2 Hz|patchrates
+|hist=hist-ftmcontrol-triggerrate.bin/ Hz|
Index: trunk/FACT++/www/smartfact/struct/voltage.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/voltage.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/voltage.page	(revision 14623)
@@ -0,0 +1,6 @@
+Voltage
+bias|Min. voltage|$0 V|
+bias|Med. voltage|$0 V|
+bias|Avg. voltage|$0 V|
+bias|Max. voltage|$0 V|
+|camera=cam-biascontrol-voltage.bin/ V|
Index: trunk/FACT++/www/smartfact/struct/weather.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/weather.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/weather.page	(revision 14623)
@@ -0,0 +1,12 @@
+Weather
+|Sun|$0|sun
+|Moon|$0|moon
+|Temperature|$0&deg;C|temp
+|Dew point|$0&deg;C|dew
+|Humidity|$0%|hum
+|Pressure|$0 hPa|press
+|Wind speed|$0 km/h|wind
+|Wind gusts|$0 km/h|gusts
+|Wind direction|$0
+|Dust (TNG)|$0 &micro;g/m&sup3; [$1]|tngdust
+
Index: trunk/FACT++/www/smartfact/struct/wind.page
===================================================================
--- trunk/FACT++/www/smartfact/struct/wind.page	(revision 14623)
+++ trunk/FACT++/www/smartfact/struct/wind.page	(revision 14623)
@@ -0,0 +1,6 @@
+Wind speed
+weather|Current|$0 km/h|
+weather|Minimum|$0 km/h|
+weather|Average|$0 km/h|
+weather|Maximum|$0 km/h|
+|hist=hist-magicweather-wind.bin|
