Creating and Editing Display Setups

Overview

The display setup file contains all the information needed to configure a colour display including connection definition, channel calibration and screen layout.

The Display Module can be connected to other ECUs via CAN bus.

Display Modules also have a range of analogue and speed inputs for interfacing directly to sensors.

File Names

Dash Design supports multiple display types and setup files have file names of the form .<display_type>.gdd. Depending upon your Windows® configuration, the last part of the file extension may not be visible in File Explorer.

Subsections of Creating and Editing Display Setups

Creating a New Display Setup

Overview

To create a new display setup, select File | New Setup... from the File Menu and then select a display type from the list.

Workflow Tips

Data Model

When creating a new setup it is generally best to start with the data model.

Most display setups will require acquiring data from the outside world via physical inputs such as Analogue Inputs or via CAN messages. Once data acquisition is configured then it will naturally drive the screen design process.

It can be useful to create some test screens while configuring inputs to check that data is being acquired as expected by the display.

Analogue Inputs

Analogue Inputs (Analogue to Digital Converters, ADCs) are predefined Channels and will generally be scaled in Volts. Check your display pin-out to identify the analogue channels that are connected to sensors.

Create new Channels on the Channels Tab that use these Analogue Input channels as their Primary Input and apply any required scaling based upon the data-sheets for your sensors. There may be existing preconfigured sensors in the Sensor Library Channel that match.

CAN Inputs

Configure the CAN bus to ensure that it is running at the correct bit rate: CAN Bus Configuration .

Define CAN channels on the CAN Receive . This process can be simplified if a Signal Database (DBC) files are available (or can be created) for the modules you are connecting to - see CAN Signal Database (DBC) Import .

For an overview of CAN in general, see CAN Message Overview .

Page Select

So that you can switch screens / pages on the display, decide how page switching will work; Is this from an analogue input (e.g. a rotary switch) or from a CAN message? Some displays may have predefined inputs like rotary switches. Configure the page select input here: Page Select .

Logic Channels / Notifications

It may make sense at this point to define any logic channels or notifications for things like warnings for out of range conditions.

Display Setup

Speed Input / Odometer

If vehicle speed related functions are required, set up the predefined Speed Input. Setting up the Speed Input will also enable the non-resettable Odometer function. See Speed / Odometer / Trip

Lap Timing / Beacon Input

You may also want to configure the beacon input at this stage to enable lap/stage timing. See Lap Timing / GPS . Before configuring Lap Timing, configure the Speed Input (Speed / Odometer / Trip ).

Logging

If the Display Module supports on-board logging, logging can be configured on the Logger Tab . This may be useful whilst configuring the data model; data logs may be analysed to check that inputs are behaving as expected and have correct scaling.

Image Assets

If using a heavily image based setup, you may want to import image assets for use in screen designs at this point. See the Images Tab .

Some images may be configured to switch between various visual states based upon the value of a channel (e.g. for a battery warning light). See Image Selectors Tab for information on how to configure this.

Screen Design

Once input channels and image assets are prepared, screens can be designed to display data with gauges on the Design Tab .

Simulation

If a simulator is available for your display, then it may be simulated on the Simulator Tab so that screen layouts can be tested before the more time-consuming process of testing on the real Display Module.

Display Setup Concepts

Setup Components

A Dash Design setup primarily consists of Channels and Gauges.

Channels are comprised of Sources, Outputs and Sensors, though much of this structure is not separated in the user interface. A CAN signal for example will have a raw ‘source’ that is used for acquiring the channel data and an ‘output’ which is associated with a sensor for scaling the raw data. Logically, the ’type’ of a channel is the associated ‘sensor’ type and the raw source is an implicit input to the ‘output’.

Sources

Non-visual objects that define how data is obtained from an external source such as CAN bus, a digital input or an A/D converter. Sources can be internal to to the display such as CPU temperature.

Channels (Outputs)

Non-visual objects that obtain information from one or more sources or other outputs. An output manipulates the obtained data according to the sensor associated with the output. The result can then be used in a Gauge or another Channel.

Sensors

Non-visual objects that define how the data is manipulated by an output. Examples of sensors are linear scalars, function tables or text tables. Sensors are selected and configured by changing the ’type’ of a Channel.

Gauges

Visual objects that are placed on a screen page. There are two types of gauge; static and dynamic.

Static Gauges

Static Gauges do not change their appearance on the screen and include gauges such as Label Gauge , Shape Gauge or Image Gauge .

Dynamic Gauges

Dynamic (Variable) Gauges change their appearance to reflect data obtained from channels. Examples of variable gauges are Bar Gauges , Tacho Gauges and Value Gauge .

The following diagram shows the relationship between sources, outputs, sensors and gauges:

ECU Scaled RPMOutput RPM- Oil Pressure - Raw RPMSource Oil PressureSource Alarm Sensor Scalar Sensor Oil Pressure AlarmOutput Scaled Oil pressureOutput Scalar Sensor Bar TachoGauge Bar Gauge Warning Gauge Source Sensor Output Gauge

In this example, the raw RPM value is passed to the scaled RPM output which uses a scalar sensor to provide its’ output. This is passed to both a bar tacho gauge (which displays the RPM) and the oil pressure alarm output. The oil pressure is obtained in a similar manner and passes its’ output to a bar gauge (which displays the oil pressure) and the oil pressure alarm output. The oil pressure alarm output uses the alarm sensor and its’ two inputs to generate an output used by the warning gauge to signal low oil pressure, eg Oil Pressure is less than 2 and engine RPM is greater than 500.

Opening and Saving Setups

Opening a Setup

To Open an existing colour display setup:

  • Select File | Open Setup.... The file open dialog is shown.
  • Select the required display setup file and click Open.

Recently opened or saved files can be accessed from the sub-menu File | Recent Files.

If the editor is in Locked Layout mode, only certain gauge properties can be edited and the gauge positions are fixed to prevent accidental editing.

Layout Locked mode can be toggled by selecting File | Lock Layout or by clicking the Edit Layout Edit Layout icon at the top left of the screen design area.

Saving a Setup

To save a setup under a new filename, select File | Save Setup As... Ctrl + Shift + S, enter a file name in the file save dialog and click the Save button.

To save a setup with the current name, select File | Save Setup Ctrl + S.

If a setup or Dash Design is closed and the setup has changed since the last save, a prompt will appear asking if the changes to the setup are to be saved. Select Save As to save the changes (possibly with a new file name), Discard to abandon the changes or Cancel to return to editing the current setup.

Uploading a Setup to a Display

Overview

Uploading a setup programs the current setup into the Display Module.

Tip

View the Setup Checker to ensure there are no setup errors or warnings prior to programming the setup.

See Setup Checker

Display Module Selection

Ensure that the Display Module is attached to the PC. Ethernet based Display Modules may be attached directly to the PC with an ethernet cable or to a Local Area Network (LAN).

Display Modules that connect using USB should show a special screen once attached to the PC.

Select File | Upload To Display F7. A dialog will be shown to allow selection of the Display Module that should be programmed:

Upload Setup Dialog Upload Setup Dialog

Upload Setup Dialog

Select the Display Module to be programmed from the list. Typically there will only be one so the first item is selected by default.

Upload Original Setup

Depending upon the type of Display Module, there may be the option Upload Original Setup. When programming displays, the setup file is compiled into a more compact format that is understood by the display. If Upload Original Setup is checked, then the original setup file will also be programmed into the display to allow later recovery of the original setup used to program the display from the Display Module itself using the command File | Download From Display.

Starting the Programming Procedure

Click the Upload Setup Upload Setup button to begin programming the setup into the display.

Programming Progress

The progress of the procedure will be shown, along with a log of messages:

Upload Setup Progress Upload Setup Progress

Upload Setup Progress

If the process fails, refer to the message log as it may identify the cause.

Once the programming is complete, the Display Module may be disconnected from the PC. For USB connections, detaching the USB cable should cause the setup to run on the display.

Firmware Updates

Overview

Over time, updates to the Display Module firmware may become available that resolve bugs and add new features.

Dash Design may be used to re-flash the Display Module with new firmware.

Firmware Update Procedure

Ensure that the Display Module is attached to the PC. Ethernet based Display Modules may be attached directly to the PC with an ethernet cable or to a Local Area Network (LAN).

Display Modules that connect using USB should show a special screen once attached to the PC.

Select Tools | Upload Firmware.... A dialog will be shown to allow selection of the Display Module that should be programmed.

Select the Display Module to be programmed from the list. Typically there will only be one so the first item is selected by default.

Select a firmware file using the Firmware Filename picker. File paths can be pasted here or browsed using the … button.

Click the Upload Upload button to begin programming the firmware into the display.

Programming Progress

The progress of the procedure will be shown, along with a log of messages.

Do not switch off the Display Module during the programming procedure as this may corrupt the firmware.

If the process fails, refer to the message log as it may identify the cause.

Once the programming is complete, the Display Module may be disconnected from the PC to reboot it.

Removing Unused Image Assets

Overview

During the course of editing a setup, graphic images may be added to the setup and as images are replaced or no longer required, the unused image files may be left stored in the setup, increasing both the size of the setup and the uploaded setup.

To remove unused images from the setup, see Images Tab (Delete All Unused).

Removing unused images does not remove them from their original location on disk.

Exporting Image Assets

Overview

When an image (e.g. a bmp, png or jpeg file) is added to the setup, a copy of the original file is embedded in the setup together with the path to the original file location. This allows for the original bitmap to be updated and the bitmap in the setup to be updated by clicking the reload button.

When setups are shared with other users, the original bitmaps may not be present on the new users computer. The export function allows images to be exported to the new users computer. In addition, the path can be updated to point to the new location.

To export images, see Images Tab .

Locked Setups

Overview

Setups may be saved to files that are locked from editing and may only be programmed to displays. Locked setups include thumbnails of screens for preview purposes.

Exporting Locked Setups

To export a locked setup, use the File | Export Compiled / Locked Setup... command.

Locked setups may be loaded into Dash Design and programmed with File | Upload To Display F7.

Locked setups have the file extension .gddp.

Some Display Modules support serial number locked setups. If supported by the display, check the Lock to Serial Number? box and enter in the display serial number.

Locked setups may have the original source setup file name included in the file. If desired, check the Embed Setup File Name box. The file name may be edited to remove any user information or it could be changed to a URL.

The original setup file may also be embedded in the locked setup file. If desired, check the Embed Source Setup File box. A password must be specified. The original setup will be LZMA compressed and AES encrypted with a key cryptographically derived from the password and a ‘salt’ value.

If the original setup file is embedded in a locked setup. The original setup file may be extracted from the locked setup file using the File Info tab which is available when the locked setup file is loaded into Dash Design.

File Info Tab

The File Info tab provides information about the locked setup file. The File Info tab is only available when a locked setup file is loaded into Dash Design.

The File Info tab provides the following information:

Field Description
Setup Binary Checksum Checksum of the setup binary data, this should match the checksum calculated by the display module when the setup is loaded.
Setup Binary SHA-1 SHA-1 hash of the setup binary data.
Source Setup Name The setup name set on the Setup Name
Source Setup File Name The file name of the source setup (if any) embedded in the locked setup.
Source Setup File MD5 MD5 sum of the setup file that the locked setup was generated from.
Source Setup File SHA-1 SHA-1 hash of the setup file that the locked setup was generated from.

Setup Binary Checksum may be used for scrutineering purposes to ensure that the setup file loaded into the display module has not been tampered with.

Raw Setups

Overview

Setups may be saved to ‘raw’ setup files for programming with external tools. Raw setups can’t be opened or programmed from Dash Design.

Tip

If you want to make a non-editable setup that can be programmed with Dash Design, see Locked Setups .

Exporting Raw Setups

To export a raw setup, use either the File | Export Raw | Export Raw Setup (Packaged)... or File | Export Raw | Export Raw Setup (Unpackaged)... command.

Use File | Export Raw | Export Raw Setup (Packaged)... for tools that expect packaged raw setups (e.g. commissioning / programming tools). Packaged setup files include some additional information about the setup (e.g. Display Module type) that the tool can use for file validation.

Packaged raw setups have the file extension .rawsetup.

Use File | Export Raw | Export Raw Setup (Unpackaged)... for tools that do not expect any setup packaging (e.g. an Display Module external simulator).

XML Setup Import / Export

Overview

For external editing of setup files in a text editor or comparison using a merge tool, setups can be converted to an XML based format.

Use the File | Export Setup to XML... and File | Import Setup from XML... menu actions to export / import XML based setups.

XML Format

The best way to get a feel for the XML format is to export a setup and look at the generated XML in a text editor such as VS Code.

Tip

Use a tool such as WinMerge to compare the XML files to see what has changed between versions of the file.

  • display_setup - the root node defines the display type and screen size.
    • notes - Includes any notes from the setup file entered in the ‘save setup’ dialog.
    • can_ports - groups can_port nodes.
      • can_port - describes a single CAN Port.
        • index - The CAN port number, starting at 0.
        • bitrate - The CAN port speed setting.
        • termination_resistor - Enable / Disable software selectable CAN bus termination resistor.
        • can_channels - groups can_channel nodes.
          • can_channel - describes a single CAN channel.
            • name - The name of the CAN channel.
            • id - The CAN ID.
            • bit - The bit position of the data in the CAN message.
            • length - The length of the data in bits.
            • dbc_type - The data type of the data.
            • endian - The byte order of the data.
            • canmask - The mask to apply to the CAN ID.
            • comcodex - The COM codex to use.
            • output - describes the output of the CAN channel.
              • name - The name of the output.
              • sensor - describes the sensor used by the output.
                • shared - The name of the shared sensor, if not supplying sensor values in-line. See shared_sensors node.
                • type - The type of the sensor.
                • name - The name of the sensor.
                • factor - The factor to apply to the sensor value.
                • offset - The offset to apply to the sensor value.
    • channels - groups channel nodes.
      • channel - describes a single channel.
        • type - The type of the channel.
        • output_type - The output type of the channel.
        • predefined - Indicates if the channel is predefined.
        • name - The name of the channel.
        • inputs - groups input nodes.
          • input - describes a single input.
            • id - The ID of the input.
        • sensor - describes the sensor used by the channel. The properties vary depending on the sensor type.
          • shared - The name of the shared sensor, if not supplying sensor values in-line. See shared_sensors node.
          • type - The type of the sensor.
          • name - The name of the sensor.
          • factor - The factor to apply to the sensor value.
          • offset - The offset to apply to the sensor value.
          • pre_delay - The pre-delay to apply to the sensor value.
          • retrigger_time - The retrigger time to apply to the sensor value.
          • conditions - groups condition nodes.
            • condition - describes a single condition.
              • comparator - The comparator to use.
              • limit - The limit to compare against.
              • logic - The logic to apply to the condition.
        • items - groups item nodes.
          • item - describes a single item.
            • value - The value of the item.
            • on_time - The on time of the item.
            • off_time - The off time of the item.
            • max_duration - The max duration of the item.
            • graphic - The graphic to use for the item.
    • pages - groups page nodes.
      • page - describes a single page.
        • properties - properties of the page.
          • screenId - The screen ID of the page.
          • name - The name of the page.
          • colour - The colour of the page.
          • tags - groups item nodes.
            • item - describes a single item.
          • favourite - The favourite setting of the page.
          • defaultBgColour - The default background colour of the page.
          • defaultLineColour - The default line colour of the page.
          • defaultFillColour - The default fill colour of the page.
          • defaultTextColour - The default text colour of the page.
          • defaultWarningColour - The default warning colour of the page.
          • defaultFont - groups name and size nodes.
            • name - The name of the font.
            • size - The size of the font.
        • keypad_events - groups keypad_event nodes.
          • keypad_event - describes a single keypad event.
            • key_id - The ID of the key.
            • event_type - The type of the event.
            • key_type - The type of the key.
            • priority - The priority of the event.
            • output - The output of the event.
        • events - groups event nodes.
          • event - describes a single event.
        • gauges - groups gauge nodes.
          • gauge - describes a single gauge.
            • type - The type of the gauge.
            • properties - groups properties nodes.
              • name - The name of the gauge.
              • input - The input of the gauge.
              • left - The left position of the gauge.
              • top - The top position of the gauge.
              • width - The width of the gauge.
              • height - The height of the gauge.
              • lineColour - The line colour of the gauge.
              • backgroundColour - The background colour of the gauge.
              • fillColour - The fill colour of the gauge.
              • startValue - The start value of the gauge.
              • endValue - The end value of the gauge.
              • segmentSize - The segment size of the gauge.
              • labelColour - The label colour of the gauge.
              • labelFont - groups name and size nodes.
                • name - The name of the font.
                • size - The size of the font.
              • barTachoRectangular - The bar tacho rectangular setting of the gauge.
              • separatorsBetweenBars - The separators between bars setting of the gauge.
              • smoothEdges - The smooth edges setting of the gauge.
              • formatString - The format string of the gauge.
              • labelFrequency - The label frequency of the gauge.
              • labelDivisor - The label divisor of the gauge.
              • lowerLimitEnabled - The lower limit enabled setting of the gauge.
              • lowerLimitEnd - The lower limit end of the gauge.
              • lowerLimitColour - The lower limit colour of the gauge.
              • upperLimitEnabled - The upper limit enabled setting of the gauge.
              • upperLimitStart - The upper limit start of the gauge.
              • upperLimitColour - The upper limit colour of the gauge.
              • lowerLimitFlash - The lower limit flash setting of the gauge.
              • upperLimitFlash - The upper limit flash setting of the gauge.
              • flashAllEnabled - The flash all enabled setting of the gauge.
              • flashAllStart - The flash all start of the gauge.
              • flashRate - The flash rate of the gauge.
              • caption - The caption of the gauge.
              • textColour - The text colour of the gauge.
              • font - groups name and size nodes.
                • name - The name of the font.
                • size - The size of the font.
              • textJustify - The text justify setting of the gauge.
              • backgroundColour - The background colour of the gauge.
              • formatString - The format string of the gauge.
              • specialFormat - The special format of the gauge.
              • colourMode - The colour mode of the gauge.
              • graphicInput - The graphic input of the gauge.
              • graphic - The graphic of the gauge.
    • shared_sensors - groups sensor nodes. Shared sensors are referenced by channels.
      • sensor - describes a single sensor. The properties vary depending on the sensor type.
        • name - The name of the sensor.
        • type - The type of the sensor.
        • factor - The factor to apply to the sensor value.
        • offset - The offset to apply to the sensor value.
        • pre_delay - The pre-delay to apply to the sensor value.
        • retrigger_time - The retrigger time to apply to the sensor value.
        • conditions - groups condition nodes.
          • condition - describes a single condition.
            • comparator - The comparator to use.
            • limit - The limit to compare against.
            • logic - The logic to apply to the condition.
    • graphics - groups graphic nodes.
      • graphic - describes a single graphic.
        • filename - The file name of the graphic, used by references in the setup.
        • width - The width of the graphic.
        • height - The height of the graphic.
        • size_bytes - The total number of bytes in the image data.
        • data - The data of the graphic, base-64 encoded.
    • led_rules - For display with rule-based LED setup, defines the LED configuration.
      • group - LED group definition.
        • name - The name of the LED group.
        • leds - groups led nodes. The “All Screens” group is special and should not be moved/removed.
          • led - describes a single LED.
            • name - The name of the LED.
            • pages - JSON object containing array of page IDs that the LED group is active on.
            • rule - Set of conditions and LED patterns.
              • conditions - JSON object containing array of conditions.
                • condition - JSON object containing condition details.
                  • channel_a - The first channel to use for the condition.
                  • comparator_a - Comparison operator to use for the first channel.
                  • value_a - The value to compare against for the first channel.
                  • channel_b - The second channel to use for the condition.
                  • comparator_b - Comparison operator to use for the second channel.
                  • value_b - The value to compare against for the second channel.
                  • leds - groups led nodes.
                    • led - describes a single LED.
                      • id - The ID of the LED.
                      • colour - Colour to use (or OFF)
                      • flash_colour - Flash colour to use (or OFF)
                      • flash_rate - The flash rate of the LED.
                  • pattern_mode - The pattern mode setting (None / Interpolate / Bit Pattern)
                  • right_to_left - The right to left pattern setting.
                  • interpolation_channel - The interpolation channel setting.
                  • from - Interpolate from this value.
                  • to - Interpolate to this value.

Channel Types

Type Name Description
EventManager Event Manager Special channel type used by the display event system. Should not be used by any user-defined channels.
Scalar Linear A simple numeric value with linear scaling of the form Y = mX + b.
FunctionTable Function A table of values used to map input values to output values.
Bitmask Bitmask A channel that extracts a bitfield from a numeric value.
Logic Logic A channel that performs logical operations on input values to produce a boolean result. See Logic Channels Tab .
BitString Text A channel that maps input values to strings based on bitmasks and priorities. See Text Channel .
Text Text A channel that formats input values as text. Similar to BitString but matches exact values instead of prioritized bitmasks.
ComString ECU Text A channel that reads text from external input (e.g. CAN message). See ECU Text Channel .
Notification Notification Formats input value(s) as text. See Notifications Tab .
BitmapSelector Bitmap Selector A channel that selects a bitmap based on input values. See Image Selectors Tab .
ColourGradient Colour Gradient A channel that maps input values to colours, used as a filter for some gauge types that use a colour map.
Minimum Minimum Since Reset A filter that outputs the minimum value of the input since it was reset by an external event. See Filter Channel
Maximum Maximum Since Reset A filter that outputs the maximum value of the input since it was reset by an external event. See Filter Channel
Limit Value Reject A filter that rejects out-of limits values. See Filter Channel
RateFilter Rate Reject A filter that rejects values that change too quickly. See Filter Channel
TimeFilter Rolling Minimum / Maximum / Average A filter that calculates a statistic over a rolling time period. See Filter Channel
Average Average Since Reset A filter that outputs the average of its input values since the last reset event. See Filter Channel
ETA Estimated Time of Arrival Channel that calculates the time remaining to reach destination. See ETA Channel
Freeze Freeze A filter that holds the last value when in the frozen state (controlled by events). See Freeze Channel
Timeout Input Timeout Fallback A filter that provides a fallback value when its input times-out. See Filter Channel
ErrorText Error Text A filter that outputs a text message when its input is out of range. See Filter Channel
CalibrationFactor Calibration Factor A channel that applies a factor to its input value. See Calibration Factor Channel
DistanceCountdown Distance Countdown A channel that counts down from a distance value. See Distance Countdown Channel
Distance Distance Trip A channel that accumulates distance travelled. See Distance Trip Channel
Time Time of Day A channel that outputs the current time of day.
Fuel Fuel Level A channel that outputs the current fuel level. See Fuel Channel
Integrator Integrator A channel that integrates its input value over time. See Integrator Channel
Differentiator Differentiator A channel that differentiates its input value over time. See Differentiator Channel
Maths Maths A channel that performs mathematical operations on its input values. See Maths Channel
CDTimer Countdown Timer A channel that counts down from a time value. See Timers Tab
Stopwatch Stopwatch A channel that counts up from a time value. See Timers Tab
PerformanceTimer Performance Timer A channel that measures the time between two events. See Timers Tab
CanOutput CAN Output A channel that outputs its input value to a CAN message. See CAN Transmit
AudioControl Audio Control A channel that controls audio output. See
LapTime Lap Time A channel that outputs a lap timing related quantity. See Lap Timing Channels
Toggle Toggle A channel that toggles between two states, based upon an event. See
Case Case A channel that outputs a value depending on which input value is ’true’. See Case Channel
If If A channel that outputs a value depending on the value of its input. See If Channel
OnChange On Change A channel that outputs a value when its input changes. See On Change Channel

Example XML Structure

This example covers most of the node types that can be exported. The structure differs considerably from version 1 of Dash Design.

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<display_setup type="CD6-43" OriginalFilename="{path}/CD6-43 Setup.cd6-43.gdd" XMLFilename="{path}/CD6-43 Setup.xml" screen_width="800" screen_height="480">
    <notes>Added air temperature sensing.</notes>
    <can_ports>
        <can_port>
            <index>0</index>
            <bitrate>1M</bitrate>
            <termination_resistor>0</termination_resistor>
            <can_channels>
                <can_channel>
                    <name>RPM CAN</name>
                    <id>#4A9</id>
                    <bit>8</bit>
                    <length>16</length>
                    <dbc_type>unsigned</dbc_type>
                    <endian>msb_first</endian>
                    <canmask>3</canmask>
                    <comcodex>0</comcodex>
                    <output type="Scalar" output_type="1">
                        <name>RPM</name>
                        <sensor shared="x1 scalar" type="Scalar"/>
                    </output>
                </can_channel>
                <can_channel>
                    <name>AIR TEMP CAN</name>
                    <id>#4A9</id>
                    <bit>24</bit>
                    <length>8</length>
                    <dbc_type>unsigned</dbc_type>
                    <canmask>8</canmask>
                    <output type="Scalar" output_type="1">
                        <name>AIR TEMP CAN</name>
                        <sensor type="Scalar" name="AIR TEMP CAN_scalar">
                            <factor>1.0</factor>
                            <offset>0.0</offset>
                        </sensor>
                    </output>
                </can_channel>
            </can_channels>
        </can_port>
        <can_port>
            <index>1</index>
            <bitrate>1M</bitrate>
            <termination_resistor>0</termination_resistor>
            <can_channels/>
        </can_port>
    </can_ports>
    <channels>
        <channel type="EventManager" output_type="1" predefined="1">
            <name>EVENT MGR</name>
            <inputs>
                <input id="1">Page Select</input>
                <input id="3">Brightness</input>
                <input id="4">Page Select</input>
            </inputs>
            <sensor shared="EVENT MGR" type="EventManager"/>
        </channel>
        <channel type="Scalar" output_type="1" predefined="1">
            <name>A00 Raw</name>
            <inputs>
                <input id="1">A00 A/D</input>
            </inputs>
        </channel>
        <channel type="Scalar" output_type="1">
            <name>Internal status</name>
            <sensor type="Scalar" name="Internal status:Value_scalar">
                <factor>1.0</factor>
                <offset>0.0</offset>
            </sensor>
        </channel>
        
        <channel type="Logic" output_type="1">
            <name>FuelAlarm</name>
            <inputs>
                <input id="1">Fuel</input>
            </inputs>
            <sensor type="Logic" name="FuelAlarm_Alarm_">
                <pre_delay>0</pre_delay>
                <retrigger_time>0</retrigger_time>
                <conditions>
                    <condition>
                        <comparator>Less</comparator>
                        <limit>0.25</limit>
                        <logic>None</logic>
                    </condition>
                </conditions>
            </sensor>
        </channel>

        <channel type="BitmapSelector" output_type="2">
            <name>FuelBitmaps</name>
            <inputs>
                <input id="1">FuelAlarm</input>
            </inputs>
            <items>
                <item>
                    <value>0.0</value>
                    <on_time>0.0</on_time>
                    <off_time>0.0</off_time>
                    <max_duration>0.0</max_duration>
                    <graphic>C:/Graphics/FuelIconGrey.bmp</graphic>
                </item>
                <item>
                    <value>1.0</value>
                    <on_time>0.0</on_time>
                    <off_time>0.0</off_time>
                    <max_duration>0.0</max_duration>
                    <graphic>C:/Graphics/FuelIconRed.bmp</graphic>
                </item>
            </items>
            <sensor shared="Bitmap Sel" type="BitmapSelector"/>
        </channel>


        <channel type="Notification" output_type="2">
            <name>Warning Message</name>
            <items>
                <item>
                    <message>Low Battery @</message>
                    <format>##.#</format>
                    <input>Bat Alarm</input>
                    <label_input>Batt Volts</label_input>
                </item>
                <item>
                    <message>Coolant High @</message>
                    <format>###</format>
                    <input>Coolant Alarm</input>
                    <label_input>Coolant T</label_input>
                </item>
            </items>
            <sensor shared="Warning Message" type="Notification"/>
        </channel>

        
    <pages>
        <page id="0">
            <properties>
                <screenId value="All Screens"/>
                <name value=""/>
                <colour>#000000</colour>
                <tags/>
                <favourite value="0"/>
                <defaultBgColour>#161D1F</defaultBgColour>
                <defaultLineColour>#C0C0C0</defaultLineColour>
                <defaultFillColour>#FDB813</defaultFillColour>
                <defaultTextColour>#C0C0C0</defaultTextColour>
                <defaultWarningColour>#FF0000</defaultWarningColour>
                <defaultFont>
                    <name></name>
                    <size>18</size>
                </defaultFont>
            </properties>
            <keypad_events>
                <keypad_event>
                    <key_id>1</key_id>
                    <event_type>2</event_type>
                    <key_type>0</key_type>
                    <priority>1</priority>
                    <output>Distance Trip</output>
                </keypad_event>
                <keypad_event>
                    <key_id>1</key_id>
                    <event_type>2</event_type>
                    <key_type>1</key_type>
                    <priority>1</priority>
                    <output>Distance Trip</output>
                </keypad_event>
                <keypad_event>
                    <key_id>1</key_id>
                    <event_type>2</event_type>
                    <key_type>2</key_type>
                    <priority>1</priority>
                    <output>Distance Trip</output>
                </keypad_event>
            </keypad_events>
            <events/>
            <gauges/>
        </page>
        <page id="1">
            <properties>
                <screenId value="1"/>
                <name value=""/>
                <colour>#000000</colour>
                <enabled value="1"/>
                <tags/>
                <favourite value="0"/>
                <defaultBgColour>#008001</defaultBgColour>
                <defaultLineColour>#000001</defaultLineColour>
                <defaultFillColour>#00FF01</defaultFillColour>
                <defaultTextColour>#00FF01</defaultTextColour>
                <defaultWarningColour>#FF0001</defaultWarningColour>
                <defaultFont>
                    <name>Arial</name>
                    <size>18</size>
                </defaultFont>
            </properties>
            <events/>
            <gauges>
                <gauge type="TEXT_INPUT">
                    <properties>
                        <name value="Value Text: Gear Posn"/>
                        <input value="Gear Posn"/>
                        <left value="337"/>
                        <top value="180"/>
                        <textColour>#00FFFF</textColour>
                        <backgroundColour>#000001</backgroundColour>
                        <font>
                            <name>Open 24 Display St</name>
                            <size>300</size>
                        </font>
                        <textJustify value="Left"/>
                        <colourMode value="Normal"/>
                    </properties>
                </gauge>
                <gauge type="BAR_TACHO">
                    <properties>
                        <name value="Bar Tacho: RPM"/>
                        <input value="RPM"/>
                        <left value="6"/>
                        <top value="3"/>
                        <width value="785"/>
                        <height value="289"/>
                        <lineColour>#1A1A1A</lineColour>
                        <backgroundColour>#252525</backgroundColour>
                        <fillColour>#FFA500</fillColour>
                        <startValue value="0"/>
                        <endValue value="9000"/>
                        <segmentSize value="500"/>
                        <labelColour>#A9A9A9</labelColour>
                        <labelFont>
                            <name>Open 24 Display St</name>
                            <size>30</size>
                        </labelFont>
                        <barTachoRectangular value="0"/>
                        <separatorsBetweenBars value="1"/>
                        <smoothEdges value="0"/>
                        <formatString value="#"/>
                        <labelFrequency value="2"/>
                        <labelDivisor value="1000"/>
                        <lowerLimitEnabled value="0"/>
                        <lowerLimitEnd value="0"/>
                        <lowerLimitColour>#008000</lowerLimitColour>
                        <upperLimitEnabled value="1"/>
                        <upperLimitStart value="8500"/>
                        <upperLimitColour>#FF0000</upperLimitColour>
                        <lowerLimitFlash value="0"/>
                        <upperLimitFlash value="1"/>
                        <flashAllEnabled value="1"/>
                        <flashAllStart value="8500"/>
                        <flashRate value="100"/>
                    </properties>
                </gauge>
                <gauge type="VALUE">
                    <properties>
                        <name value="Value: Road Speed"/>
                        <input value="Road Speed"/>
                        <left value="163"/>
                        <top value="0"/>
                        <textColour>#FFA500</textColour>
                        <font>
                            <name>Open 24 Display St</name>
                            <size>100</size>
                        </font>
                        <textJustify value="Right"/>
                        <backgroundColour>#008001</backgroundColour>
                        <formatString value="#"/>
                        <specialFormat value="None"/>
                        <colourMode value="Normal"/>
                    </properties>
                </gauge>
                <gauge type="TEXT">
                    <properties>
                        <name value="Text: KPH"/>
                        <caption value="KPH"/>
                        <left value="171"/>
                        <top value="19"/>
                        <textColour>#6E6E6E</textColour>
                        <font>
                            <name>Open 24 Display St</name>
                            <size>30</size>
                        </font>
                        <textDirection value="Right"/>
                        <textJustify value="Left"/>
                        <colourMode value="Normal"/>
                    </properties>
                </gauge>
                <gauge type="VALUE">
                    <properties>
                        <name value="Value: Fastest Lap Time Delta"/>
                        <input value=""/>
                        <left value="600"/>
                        <top value="240"/>
                        <textColour>#FF1493</textColour>
                        <font>
                            <name>Open 24 Display St</name>
                            <size>56</size>
                        </font>
                        <textJustify value="Left"/>
                        <backgroundColour>#008001</backgroundColour>
                        <formatString value="msff"/>
                        <specialFormat value=""/>
                        <colourMode value="Normal"/>
                    </properties>
                </gauge>
                <gauge type="TEXT">
                    <properties>
                        <name value="Text: Δ"/>
                        <caption value="Δ"/>
                        <left value="520"/>
                        <top value="260"/>
                        <textColour>#FF1493</textColour>
                        <font>
                            <name>Open 24 Display St</name>
                            <size>30</size>
                        </font>
                        <textDirection value="Right"/>
                        <textJustify value="Left"/>
                        <colourMode value="Normal"/>
                    </properties>
                </gauge>
                <gauge type="VALUE">
                    <properties>
                        <name value="Value: Last Lap Time"/>
                        <input value=""/>
                        <left value="600"/>
                        <top value="360"/>
                        <textColour>#C0C0C0</textColour>
                        <font>
                            <name>Open 24 Display St</name>
                            <size>56</size>
                        </font>
                        <textJustify value="Left"/>
                        <backgroundColour>#008001</backgroundColour>
                        <formatString value="msff"/>
                        <specialFormat value=""/>
                        <colourMode value="Normal"/>
                    </properties>
                </gauge>
                <gauge type="TEXT">
                    <properties>
                        <name value="Text: Last"/>
                        <caption value="Last"/>
                        <left value="520"/>
                        <top value="380"/>
                        <textColour>#C0C0C0</textColour>
                        <font>
                            <name>Open 24 Display St</name>
                            <size>30</size>
                        </font>
                        <textDirection value="Right"/>
                        <textJustify value="Left"/>
                        <colourMode value="Normal"/>
                    </properties>
                </gauge>
                <gauge type="VALUE">
                    <properties>
                        <name value="Value: Fastest Lap Time"/>
                        <input value=""/>
                        <left value="600"/>
                        <top value="420"/>
                        <textColour>#00FF00</textColour>
                        <font>
                            <name>Open 24 Display St</name>
                            <size>56</size>
                        </font>
                        <textJustify value="Left"/>
                        <backgroundColour>#008001</backgroundColour>
                        <formatString value="msff"/>
                        <specialFormat value=""/>
                        <colourMode value="Normal"/>
                    </properties>
                </gauge>
                <gauge type="TEXT">
                    <properties>
                        <name value="Text: Best"/>
                        <caption value="Best"/>
                        <left value="520"/>
                        <top value="440"/>
                        <textColour>#00FF00</textColour>
                        <font>
                            <name>Open 24 Display St</name>
                            <size>30</size>
                        </font>
                        <textDirection value="Right"/>
                        <textJustify value="Left"/>
                        <colourMode value="Normal"/>
                    </properties>
                </gauge>
                <gauge type="HS_BAR">
                    <properties>
                        <name value="HS Bar: Fuel"/>
                        <input value="Fuel"/>
                        <left value="10"/>
                        <top value="315"/>
                        <width value="250"/>
                        <height value="49"/>
                        <lineColour>#121212</lineColour>
                        <backgroundColour>#1F1F1F</backgroundColour>
                        <fillColour>#FF8C00</fillColour>
                        <startValue value="0"/>
                        <endValue value="1"/>
                        <segmentSize value="0.1"/>
                        <fillBarFromCenterHorizontal value="0"/>
                        <singleLineMode value="0"/>
                        <separatorsBetweenBars value="1"/>
                        <squareMode value="0"/>
                        <cornerRadius value="0"/>
                    </properties>
                </gauge>
                <gauge type="HS_BAR">
                    <properties>
                        <name value="HS Bar: Coolant T"/>
                        <input value="Coolant T"/>
                        <left value="10"/>
                        <top value="370"/>
                        <width value="250"/>
                        <height value="49"/>
                        <lineColour>#121212</lineColour>
                        <backgroundColour>#1F1F1F</backgroundColour>
                        <fillColour>#FF8C00</fillColour>
                        <startValue value="0"/>
                        <endValue value="150"/>
                        <segmentSize value="15"/>
                        <fillBarFromCenterHorizontal value="0"/>
                        <singleLineMode value="0"/>
                        <separatorsBetweenBars value="1"/>
                        <squareMode value="0"/>
                        <cornerRadius value="0"/>
                    </properties>
                </gauge>
                <gauge type="HS_BAR">
                    <properties>
                        <name value="HS Bar: Batt Volts"/>
                        <input value="Batt Volts"/>
                        <left value="10"/>
                        <top value="425"/>
                        <width value="250"/>
                        <height value="49"/>
                        <lineColour>#121212</lineColour>
                        <backgroundColour>#1F1F1F</backgroundColour>
                        <fillColour>#FF8C00</fillColour>
                        <startValue value="0"/>
                        <endValue value="15"/>
                        <segmentSize value="1.5"/>
                        <fillBarFromCenterHorizontal value="0"/>
                        <singleLineMode value="0"/>
                        <separatorsBetweenBars value="1"/>
                        <squareMode value="0"/>
                        <cornerRadius value="0"/>
                    </properties>
                </gauge>
                <gauge type="BITMAP">
                    <properties>
                        <name value="Image: charging_malf.bmp"/>
                        <graphicInput value="{path}/charging_malf.bmp"/>
                        <left value="265"/>
                        <top value="428"/>
                    </properties>
                </gauge>
                <gauge type="VALUE">
                    <properties>
                        <name value="Value: Current Lap Time"/>
                        <input value=""/>
                        <left value="600"/>
                        <top value="300"/>
                        <textColour>#FFFFFF</textColour>
                        <font>
                            <name>Open 24 Display St</name>
                            <size>56</size>
                        </font>
                        <textJustify value="Left"/>
                        <backgroundColour>#008001</backgroundColour>
                        <formatString value="msff"/>
                        <specialFormat value=""/>
                        <colourMode value="Normal"/>
                    </properties>
                </gauge>
                <gauge type="TEXT">
                    <properties>
                        <name value="Text: Lap"/>
                        <caption value="Lap"/>
                        <left value="520"/>
                        <top value="320"/>
                        <textColour>#FFFFFF</textColour>
                        <font>
                            <name>Open 24 Display St</name>
                            <size>30</size>
                        </font>
                        <textDirection value="Right"/>
                        <textJustify value="Left"/>
                        <colourMode value="Normal"/>
                    </properties>
                </gauge>
                <gauge type="BITMAP">
                    <properties>
                        <name value="Image: fuel_level.bmp"/>
                        <graphicInput value="{path}/fuel_level.bmp"/>
                        <left value="265"/>
                        <top value="318"/>
                    </properties>
                </gauge>
                <gauge type="BITMAP">
                    <properties>
                        <name value="Image: oil_pressure.bmp"/>
                        <graphicInput value="{path}/oil_pressure.bmp"/>
                        <left value="265"/>
                        <top value="373"/>
                    </properties>
                </gauge>
                <gauge type="HS_BAR">
                    <properties>
                        <name value="HS Bar: FakeLatG"/>
                        <input value="FakeLatG"/>
                        <left value="518"/>
                        <top value="191"/>
                        <width value="280"/>
                        <height value="49"/>
                        <lineColour>#282828</lineColour>
                        <backgroundColour>#000000</backgroundColour>
                        <fillColour>#FF0000</fillColour>
                        <startValue value="-1"/>
                        <endValue value="1"/>
                        <segmentSize value="0.1"/>
                        <fillBarFromCenterHorizontal value="1"/>
                        <singleLineMode value="0"/>
                        <separatorsBetweenBars value="1"/>
                        <squareMode value="0"/>
                        <cornerRadius value="0"/>
                    </properties>
                </gauge>
            </gauges>
        </page>
        <page id="2">
            <properties>
                <screenId value="2"/>
                <name value=""/>
                <colour>#000001</colour>
                <enabled value="1"/>
                <tags length="1">
                    <item>tacho</item>
                </tags>
                <favourite value="0"/>
                <defaultBgColour>#008001</defaultBgColour>
                <defaultLineColour>#000001</defaultLineColour>
                <defaultFillColour>#00FF01</defaultFillColour>
                <defaultTextColour>#00FF01</defaultTextColour>
                <defaultWarningColour>#FF0001</defaultWarningColour>
                <defaultFont>
                    <name>Arial</name>
                    <size>18</size>
                </defaultFont>
            </properties>
            <events/>
            <gauges>
                <gauge type="RTACHO_BMP">
                    <properties>
                        <name value="Needle: Road Speed"/>
                        <input value="Road Speed"/>
                        <left value="175"/>
                        <top value="29"/>
                        <width value="451"/>
                        <height value="451"/>
                        <lineColour>#1E90FF</lineColour>
                        <backgroundImage value="{path}/speed-tacho-270.png"/>
                        <transparentColour>#000000</transparentColour>
                        <transparent value="0"/>
                        <Needle_centreX value="225"/>
                        <Needle_centreY value="225"/>
                        <Needle_centreOffset value="56"/>
                        <Needle_needleLength value="183"/>
                        <Needle_startAngle value="30"/>
                        <Needle_endAngle value="330"/>
                        <Needle_baseWidth value="3"/>
                        <Needle_drawCentre value="0"/>
                        <startValue value="0"/>
                        <endValue value="200"/>
                    </properties>
                </gauge>
            </gauges>
        </page>
    </pages>
    <shared_sensors>
        <sensor type="Scalar" name="x1 scalar">
            <factor>1.0</factor>
            <signed>0</signed>
        </sensor>
        <sensor type="BitString" name="Gear String">
            <bitstrings match_on_value="0" mask="0">
                <items length="9">
                    <item priority="1" mask="8" string="7"/>
                    <item priority="2" mask="7" string="6"/>
                    <item priority="3" mask="6" string="5"/>
                    <item priority="4" mask="5" string="4"/>
                    <item priority="5" mask="4" string="3"/>
                    <item priority="6" mask="3" string="2"/>
                    <item priority="7" mask="2" string="1"/>
                    <item priority="8" mask="1" string="N"/>
                    <item priority="9" mask="0" string="R"/>
                </items>
            </bitstrings>
        </sensor>
        <sensor type="Logic" name="Warning Trigger">
            <conditions>
                <condition>
                    <comparator>Greater</comparator>
                    <limit>0.0</limit>
                    <logic>Or</logic>
                </condition>
                <condition>
                    <comparator>Greater</comparator>
                    <limit>0.0</limit>
                    <logic>None</logic>
                </condition>
            </conditions>
        </sensor>
        <sensor type="Notification" name="Warning Message"/>
        <sensor type="BitmapSelector" name="Bitmap Sel"/>
        <sensor type="FunctionTable" name="Contrast">
            <table lowreal_t="2" lowreal="0" highreal_t="2" highreal="2500" lowraw_t="72" lowraw="0.0" highraw_t="72" highraw="63.0" interpolate="1" signed="0">
                <map raw_t="2" raw="0" real_t="72" real="0.0"/>
                <map raw_t="2" raw="300" real_t="72" real="10.0"/>
                <map raw_t="2" raw="2500" real_t="72" real="63.0"/>
            </table>
        </sensor>
    </shared_sensors>
    <graphics>
        <graphic>
            <filename>{path}/Small Warning Black.bmp</filename>
            <width>83</width>
            <height>73</height>
            <size_bytes>113</size_bytes>
            <data>{base-64 data}</data>
        </graphic>
        <graphic>
            <filename>{path}/Small Warning Triangle.bmp</filename>
            <width>83</width>
            <height>73</height>
            <size_bytes>4416</size_bytes>
            <data>{base-64 data}</data>
        </graphic>
    </graphics>
    <led_rules>
        <group name="All Screens" predefined="1">
            <pages>{pages:[0]}</pages>
            <rule name="marshal" priority="1" bitmask="229376">
                <conditions>
                    <condition>
                        <channel_a value="A08 Raw"/>
                        <comparator_a value="="/>
                        <value_a value="1"/>
                        <channel_b value=""/>
                        <value_b value="0"/>
                        <leds>
                            <led id="15">
                                <colour value="ON"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                        </leds>
                        <right_to_left value="0"/>
                        <interpolation_channel value=""/>
                        <from value="0"/>
                        <to value="0"/>
                    </condition>
                    <condition>
                        <channel_a value="A08 Raw"/>
                        <comparator_a value="="/>
                        <value_a value="2"/>
                        <channel_b value=""/>
                        <value_b value="0"/>
                        <leds>
                            <led id="15">
                                <colour value="OFF"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                            <led id="16">
                                <colour value="ON"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                        </leds>
                        <right_to_left value="0"/>
                        <interpolation_channel value=""/>
                        <from value="0"/>
                        <to value="0"/>
                    </condition>
                    <condition>
                        <channel_a value="A08 Raw"/>
                        <comparator_a value="="/>
                        <value_a value="3"/>
                        <channel_b value=""/>
                        <value_b value="0"/>
                        <leds>
                            <led id="15">
                                <colour value="OFF"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                            <led id="16">
                                <colour value="OFF"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                            <led id="17">
                                <colour value="ON"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                        </leds>
                        <right_to_left value="0"/>
                        <interpolation_channel value=""/>
                        <from value="0"/>
                        <to value="0"/>
                    </condition>
                </conditions>
            </rule>
        </group>
        <group name="Driver">
            <pages>{pages: [1,2,3,4,5,7]}</pages>
            <rule name="Shift Lights" priority="0" bitmask="32767">
                <conditions>
                    <condition>
                        <channel_a value=""/>
                        <comparator_a value="&lt;&gt;"/>
                        <value_a value="0"/>
                        <channel_b value=""/>
                        <value_b value="0"/>
                        <leds>
                            <led id="0">
                                <colour value="Green"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                            <led id="1">
                                <colour value="Green"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                            <led id="2">
                                <colour value="Green"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                            <led id="3">
                                <colour value="Green"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                            <led id="4">
                                <colour value="Green"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                            <led id="5">
                                <colour value="Green"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                            <led id="6">
                                <colour value="Green"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                            <led id="7">
                                <colour value="Green"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                            <led id="8">
                                <colour value="Green"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                            <led id="9">
                                <colour value="Green"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                            <led id="10">
                                <colour value="Green"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                            <led id="11">
                                <colour value="Green"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                            <led id="12">
                                <colour value="Green"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                            <led id="13">
                                <colour value="Green"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                            <led id="14">
                                <colour value="Green"/>
                                <channel value=""/>
                                <flash_colour value="OFF"/>
                                <flash_rate value="0"/>
                            </led>
                        </leds>
                        <pattern_mode value="Interpolate"/>
                        <right_to_left value="0"/>
                        <interpolation_channel value="RPM"/>
                        <from value="0"/>
                        <to value="10000"/>
                    </condition>
                </conditions>
            </rule>
        </group>
    </led_rules>
</display_setup>