summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2020-01-03 18:13:33 -0500
committerScott Murray <scott.murray@konsulko.com>2020-01-03 23:07:34 +0000
commitfaa6ebce32c5875687f028a4d6c990e33cf260d5 (patch)
tree5e8f51a6107dbbdb42fa63ad4a88ea6e491d2065 /app
parent6b250497f27c37cae1d005f06158146e47ec8800 (diff)
Add signal-composer speed and steering wheel event supporticefish_8.99.5icefish/8.99.58.99.5
Changes include: - Pull in signal-composer support from libqtappfw - Add a configuration file that controls whether the existing canned animation behavior should be used, or events from signal-composer should drive speeds and indicators. - Add new icons provided by LF graphics team for cruise control and lane departure warning, and drive their state based on appropriate steering wheel events. - Hide/show the digital vehicle/engine speed values in the gauges based on the steering wheel info event. This is intended to work in sync with changes to tbtnavi to have it display larger speed indicators via an alternate page. Bug-AGL: SPEC-3045, SPEC-3049 Change-Id: I77249f65b80596fe7f2af9fe29b3ed86b63a8a45 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Diffstat (limited to 'app')
-rw-r--r--app/CMakeLists.txt13
-rw-r--r--app/DashboardGaugeStyle.qml1
-rw-r--r--app/TachometerStyle.qml1
-rw-r--r--app/ValueSource.qml54
-rw-r--r--app/cluster-gauges.qml52
-rw-r--r--app/images/AGL_Icons_CruiseControl.svg69
-rw-r--r--app/images/AGL_Icons_CruiseControl_green.svg70
-rw-r--r--app/images/AGL_Icons_CruiseControl_white.svg70
-rw-r--r--app/images/AGL_Icons_CruiseControl_yellow.svg70
-rw-r--r--app/images/AGL_Icons_LaneDeparture.svg89
-rw-r--r--app/images/AGL_Icons_LaneDeparture_green.svg90
-rw-r--r--app/images/AGL_Icons_LaneDeparture_red.svg90
-rw-r--r--app/images/AGL_Icons_LaneDeparture_white.svg90
-rw-r--r--app/images/AGL_Icons_LaneDeparture_yellow.svg90
-rw-r--r--app/images/images.qrc8
-rw-r--r--app/main.cpp43
16 files changed, 887 insertions, 13 deletions
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index 9547426..a09fd1d 100644
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -23,7 +23,7 @@ set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(OE_QMAKE_PATH_EXTERNAL_HOST_BINS $ENV{OE_QMAKE_PATH_HOST_BINS})
-find_package(Qt5 COMPONENTS Core Gui QuickControls2 WebSockets QuickWidgets REQUIRED)
+find_package(Qt5 COMPONENTS Core Gui QuickControls2 QuickWidgets REQUIRED)
find_package(PkgConfig REQUIRED)
qt5_add_resources(RESOURCES cluster-gauges.qrc images/images.qrc)
@@ -36,11 +36,18 @@ add_executable(${TARGET_NAME}
)
pkg_check_modules(QLIBWINMGR REQUIRED qlibwindowmanager)
+pkg_check_modules(QTAPPFW REQUIRED qtappfw)
+pkg_check_modules(GLIB REQUIRED glib-2.0)
+
+include_directories(
+ ${QTAPPFW_INCLUDE_DIRS}
+ ${GLIB_INCLUDE_DIRS}
+)
set_target_properties(${TARGET_NAME} PROPERTIES
LABELS "EXECUTABLE"
PREFIX ""
- COMPILE_FLAGS "${QLIBWINMGR_FLAGS} ${EXTRAS_CFLAGS} -DFOR_AFB_BINDING"
+ COMPILE_FLAGS "${QLIBWINMGR_FLAGS} ${QTAPPFW_FLAGS} ${GLIB_FLAGS} ${EXTRAS_CFLAGS} -DFOR_AFB_BINDING"
LINK_FLAGS "${BINDINGS_LINK_FLAG}"
LINK_LIBRARIES "${EXTRAS_LIBRARIES}"
OUTPUT_NAME "${TARGET_NAME}"
@@ -50,4 +57,6 @@ target_link_libraries(${TARGET_NAME}
Qt5::QuickControls2
Qt5::QuickWidgets
${QLIBWINMGR_LIBRARIES}
+ ${QTAPPFW_LIBRARIES}
+ ${GLIB_LDFLAGS}
)
diff --git a/app/DashboardGaugeStyle.qml b/app/DashboardGaugeStyle.qml
index aafe50f..8615790 100644
--- a/app/DashboardGaugeStyle.qml
+++ b/app/DashboardGaugeStyle.qml
@@ -127,6 +127,7 @@ CircularGaugeStyle {
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: parent.verticalCenter
anchors.topMargin: toPixels(0.1)
+ visible: valueSource.displayNumericSpeeds === true
readonly property int kphInt: control.value
}
diff --git a/app/TachometerStyle.qml b/app/TachometerStyle.qml
index a632eab..03dfbd7 100644
--- a/app/TachometerStyle.qml
+++ b/app/TachometerStyle.qml
@@ -105,6 +105,7 @@ DashboardGaugeStyle {
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: parent.verticalCenter
anchors.topMargin: 20
+ visible: valueSource.displayNumericSpeeds === true
readonly property int rpmInt: valueSource.rpm
}
diff --git a/app/ValueSource.qml b/app/ValueSource.qml
index 48e5cf6..80ef95c 100644
--- a/app/ValueSource.qml
+++ b/app/ValueSource.qml
@@ -1,7 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
-** Copyright (C) 2018 Konsulko Group
+** Copyright (C) 2018, 2019 Konsulko Group
** Contact: https://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
@@ -54,7 +54,7 @@ Item {
id: valueSource
property real kph: 0
property bool mphDisplay: true
- property real speedScaling: mphDisplay == true ? 0.621 : 1.0
+ property real speedScaling: mphDisplay == true ? 0.621504 : 1.0
property real rpm: 1
property real fuel: 0.85
property string gear: {
@@ -87,13 +87,61 @@ Item {
property int turnSignal: -1
property bool startUp: false
property real temperature: 0.6
+ property bool cruiseEnabled: false
+ property bool cruiseSet: false
+ property bool laneDepartureWarnEnabled: false
+ property bool displayNumericSpeeds: true
function randomDirection() {
return Math.random() > 0.5 ? Qt.LeftArrow : Qt.RightArrow;
}
+ Connections {
+ target: SignalComposer
+
+ onSignalEvent: {
+ if (uid === "event.vehicle.speed") {
+ var speed_tmp = parseFloat(value)
+ if(units == "mph") {
+ speed_tmp *= 1.609
+ }
+ if(!runAnimation) {
+ valueSource.kph = speed_tmp
+ }
+ }
+ else if (uid === "event.engine.speed") {
+ if(!runAnimation) {
+ valueSource.rpm = parseFloat(value) / 1000
+ }
+ }
+ else if (uid === "event.cruise.enable" && value === "true") {
+ if(valueSource.cruiseEnabled) {
+ valueSource.cruiseEnabled = false
+ valueSource.cruiseSet = false
+ } else {
+ valueSource.cruiseEnabled = true
+ }
+ }
+ else if ((uid === "event.cruise.set" || uid === "event.cruise.resume") &&
+ value === "true") {
+ if(valueSource.cruiseEnabled) {
+ valueSource.cruiseSet = true
+ }
+ }
+ else if (uid === "event.cruise.cancel" && value === "true") {
+ valueSource.cruiseSet = false
+ }
+ else if (uid === "event.lane_departure_warning.enable" && value === "true") {
+ valueSource.laneDepartureWarnEnabled = !valueSource.laneDepartureWarnEnabled
+ }
+ else if (uid === "event.info" && value === "true") {
+ valueSource.displayNumericSpeeds = !valueSource.displayNumericSpeeds
+ }
+ }
+ }
+
SequentialAnimation {
- running: true
+ running: runAnimation
loops: 1
// We want a small pause at the beginning, but we only want it to happen once.
diff --git a/app/cluster-gauges.qml b/app/cluster-gauges.qml
index 76f5027..e4c299b 100644
--- a/app/cluster-gauges.qml
+++ b/app/cluster-gauges.qml
@@ -1,7 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
-** Copyright (C) 2018 Konsulko Group
+** Copyright (C) 2018, 2019 Konsulko Group
** Contact: https://www.qt.io/licensing/
**
** This file is part of the examples of the Qt Toolkit.
@@ -81,7 +81,7 @@ ApplicationWindow {
id: statusFrame
x: (parent.width - width) / 2
y: 40
- width: 1152
+ width: 1280
height: 96
radius: height / 5
@@ -92,13 +92,13 @@ ApplicationWindow {
Row {
width: parent.width
height: parent.height * 0.75
- spacing: (parent.width - (12 * parent.height * 0.75)) / 13
+ spacing: (parent.width - (14 * parent.height * 0.75)) / 15
anchors.fill: parent
anchors.topMargin: (parent.height - height) /2
anchors.bottomMargin: (parent.height - height) /2
- anchors.leftMargin: (parent.width - (12 * parent.height * 0.75)) / 13
- anchors.rightMargin: (parent.width - (12 * parent.height * 0.75)) / 13
+ anchors.leftMargin: (parent.width - (14 * parent.height * 0.75)) / 15
+ anchors.rightMargin: (parent.width - (14 * parent.height * 0.75)) / 15
Rectangle {
width: height
@@ -169,6 +169,25 @@ ApplicationWindow {
border.color: "grey"
Image {
+ source: valueSource.startUp ? './images/AGL_Icons_Battery_red.svg' : './images/AGL_Icons_Battery.svg'
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: height
+ height: parent.height * 0.75
+ fillMode: Image.PreserveAspectFit
+ }
+ }
+
+ Rectangle {
+ width: height
+ height: parent.height
+ radius: height / 5
+
+ color: "black"
+ border.width: 2
+ border.color: "grey"
+
+ Image {
source: valueSource.startUp ? './images/AGL_Icons_ABS_red.svg' : './images/AGL_Icons_ABS.svg'
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
@@ -188,7 +207,7 @@ ApplicationWindow {
border.color: "grey"
Image {
- source: valueSource.startUp ? './images/AGL_Icons_Battery_red.svg' : './images/AGL_Icons_Battery.svg'
+ source: valueSource.startUp ? './images/AGL_Icons_ParkingBrake_red.svg' : './images/AGL_Icons_ParkingBrake.svg'
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
width: height
@@ -307,7 +326,26 @@ ApplicationWindow {
border.color: "grey"
Image {
- source: valueSource.startUp ? './images/AGL_Icons_ParkingBrake_red.svg' : './images/AGL_Icons_ParkingBrake.svg'
+ source: valueSource.cruiseEnabled ? (valueSource.cruiseSet ? './images/AGL_Icons_CruiseControl_green.svg' : './images/AGL_Icons_CruiseControl_yellow.svg') : './images/AGL_Icons_CruiseControl.svg'
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: height
+ height: parent.height * 0.75
+ fillMode: Image.PreserveAspectFit
+ }
+ }
+
+ Rectangle {
+ width: height
+ height: parent.height
+ radius: height / 5
+
+ color: "black"
+ border.width: 2
+ border.color: "grey"
+
+ Image {
+ source: valueSource.laneDepartureWarnEnabled ? './images/AGL_Icons_LaneDeparture_green.svg' : './images/AGL_Icons_LaneDeparture.svg'
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
width: height
diff --git a/app/images/AGL_Icons_CruiseControl.svg b/app/images/AGL_Icons_CruiseControl.svg
new file mode 100644
index 0000000..6621e9e
--- /dev/null
+++ b/app/images/AGL_Icons_CruiseControl.svg
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="Layer_1"
+ data-name="Layer 1"
+ viewBox="0 0 64 64"
+ version="1.1"
+ sodipodi:docname="AGL_Icons_CruiseControl.svg"
+ inkscape:version="0.92.4 (unknown)">
+ <metadata
+ id="metadata17">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1349"
+ inkscape:window-height="832"
+ id="namedview15"
+ showgrid="false"
+ inkscape:zoom="3.6875"
+ inkscape:cx="32.542373"
+ inkscape:cy="32"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="Layer_1" />
+ <defs
+ id="defs4">
+ <style
+ id="style2">.cls-1{fill:#666;}.cls-2{fill:#fff;}</style>
+ </defs>
+ <title
+ id="title6">AGL-new-icons-2</title>
+ <path
+ class="cls-1"
+ d="M35.05031,43.25743a4.86566,4.86566,0,0,0,4.9216-4.8792,4.89193,4.89193,0,1,0-9.78384-.02387A4.87784,4.87784,0,0,0,35.05031,43.25743Z"
+ id="path8"
+ style="fill:#b9b9b9;fill-opacity:1" />
+ <path
+ class="cls-2"
+ d="M35.05031,43.25743a4.86566,4.86566,0,0,0,4.9216-4.8792,4.89193,4.89193,0,1,0-9.78384-.02387A4.87784,4.87784,0,0,0,35.05031,43.25743Z"
+ id="path10"
+ style="fill:#b9b9b9;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M27.87548,33.70618c.13343.14052.11688.25454.01746.42343a8.06825,8.06825,0,0,0-1.12477,3.39684,8.17582,8.17582,0,0,0,2.00677,6.32238,8.37807,8.37807,0,0,0,4.35395,2.65547,7.82029,7.82029,0,0,0,3.155.12031,8.33976,8.33976,0,0,0,5.28357-13.43835,8.42189,8.42189,0,0,0-2.74735-2.23677,7.46105,7.46105,0,0,0-2.81734-.85166,7.82757,7.82757,0,0,0-5.15033,1.12191.43962.43962,0,0,1-.664-.0995c-.15116-.18584-.33018-.34916-.49823-.5211q-1.41491-1.44748-2.83-2.8948c-.63528-.65209-1.2624-1.31211-1.89931-1.96259-.99161-1.01266-1.99023-2.01837-2.98238-3.03049-.78757-.80339-1.556-1.62627-2.36322-2.40927-.234-.227-.20739-.37505-.00782-.542a22.63476,22.63476,0,0,1,3.497-2.419,25.79691,25.79691,0,0,1,2.85593-1.374A23.451,23.451,0,0,1,32.4996,14.38c.32107-.03221.46171.06283.45122.41425-.02241.75071-.01185,1.50256-.00736,2.25392a1.58217,1.58217,0,0,0,.43933,1.0926,1.81759,1.81759,0,0,0,1.95169.46845,1.74,1.74,0,0,0,1.07841-1.64526c.00385-.73794.00523-1.476-.00793-2.21378-.00491-.27494.08864-.4049.37265-.37246.1064.01216.215.005.32141.017a23.21351,23.21351,0,0,1,9.877,3.37847,24.63078,24.63078,0,0,1,2.67884,1.913c.24647.20465.28352.356.02074.59765-.52285.48088-1.02134.98951-1.51251,1.50329a1.7268,1.7268,0,0,0,.10636,2.62589,1.76026,1.76026,0,0,0,2.46265-.2481c.48739-.47909.96526-.9679,1.44549-1.45423.14144-.14322.27693-.286.44752-.03637l1.66234,2.25908-.00126-.00042.08418.164-.00679-.00576.0716.06211.0974.142.05631.10179.035.09717a.14307.14307,0,0,1,.10262.1443l.04606.10937a.47152.47152,0,0,1,.21295.31169.03358.03358,0,0,1,.0263.0358l.06031.109.02261.08837.09881.14708a18.19777,18.19777,0,0,1,1.6612,3.637A23.49559,23.49559,0,0,1,58.05005,35.557c.03317.3184-.05413.44283-.377.437-.69673-.0127-1.3938-.00846-2.09076-.00728a1.755,1.755,0,1,0-.10332,3.50549c.71008.013,1.42065-.003,2.131-.002.18181.00027.43037-.02981.42229.23373a7.63647,7.63647,0,0,1-.29156,2.12633,14.05945,14.05945,0,0,1-.86916,3.39223l-.01415.08276a13.17565,13.17565,0,0,1-1.18367,2.78738,2.03425,2.03425,0,0,1-.353.7554,22.85421,22.85421,0,0,1-2.58689,3.84143c-.22184.2688-.38188.24856-.60551.01182-.42121-.446-.87945-.85761-1.29087-1.312a2.07186,2.07186,0,0,0-1.61842-.74217l-.78338.27654a1.75,1.75,0,0,0-.30216,2.68764c1.16831,1.183,2.35114,2.35152,3.52345,3.53051a1.87872,1.87872,0,0,0,2.94993-.03687,28.13123,28.13123,0,0,0,3.86842-4.962A27.57384,27.57384,0,0,0,61.041,46.63479a28.38262,28.38262,0,0,0,1.24463-12.45,27.29151,27.29151,0,0,0-1.80156-6.856A29.60616,29.60616,0,0,0,57.953,22.50037c-.51294-.79882-1.13026-1.52155-1.63066-2.32731-.128-.137-.26072-.27-.38336-.41169a28.32566,28.32566,0,0,0-6.32108-5.49355A27.86082,27.86082,0,0,0,24.77675,11.743c-1.20563.45538-2.3498,1.04075-3.50945,1.59456-.73162.46254-1.47066.91388-2.19324,1.3901a24.21179,24.21179,0,0,0-3.46016,2.78322c-.091.0875-.16973.21143-.35733.21894a5.57224,5.57224,0,0,0,.09706-1.94387c-.00995-2.33151-.02661-4.663-.03065-6.99448a6.03992,6.03992,0,0,1-.01452-1.35278c-.25077-.34677-.47615-.36457-.81041-.04567-.29061.27726-.56864.56772-.85315.85139a1.12665,1.12665,0,0,1-1.86435.01994Q9.92642,6.42125,8.07487,4.57555a.9829.9829,0,0,0-1.40108-.14814,4.77373,4.77373,0,0,0-.79463.73413c-1.32987,1.32182-2.64377,2.66-3.98748,3.9675a1.24555,1.24555,0,0,0-.00739,1.80629C3.14062,12.12315,4.324,13.388,5.57635,14.5802a1.136,1.136,0,0,1,.02593,1.69207c-.34242.33956-.67283.69143-1.00373,1.04239-.28268.29972-.26168.48335.07418.7549q1.58561.01881,3.1712.03767c1.82291.02154,3.64582.05173,5.46881.05913a3.45561,3.45561,0,0,0,1.61461-.148c.03652.18066-.067.24193-.13839.31314a27.06844,27.06844,0,0,0-4.05762,5.26874c-.0687.11418-.14895.22142-.22359.33125-.05581.12-.10473.24444-.169.36041A26.9253,26.9253,0,0,0,8.88769,27.3392,27.73505,27.73505,0,0,0,13.154,55.32546a12.98283,12.98283,0,0,0,2.4832,2.55765,2.12269,2.12269,0,0,0,1.56981-.31592,14.07163,14.07163,0,0,0,1.72963-1.61229c.15634-.14383.00461-.26521-.0891-.375-.66851-.78331-1.3328-1.57031-2.00773-2.34805a22.98006,22.98006,0,0,1-4.66278-8.71141,26.20353,26.20353,0,0,1-.87038-4.65462c-.03068-.289.065-.37757.35035-.37349.73733.01052,1.47508-.00179,2.21256-.01262a1.74435,1.74435,0,1,0-.04769-3.48536q-1.08621-.01573-2.17272-.0021c-.28958.004-.37555-.11749-.34513-.39022a26.118,26.118,0,0,1,.575-3.405,23.29036,23.29036,0,0,1,4.77429-9.46251c.18173-.21729.24951-.16568.41069.00241.90675.94555,1.8249,1.88021,2.74144,2.81635m4.78222,4.46938,10.545,3.45006a4.92774,4.92774,0,0,1,4.83921,4.90548,4.89193,4.89193,0,0,1-9.78384-.02387A4.91464,4.91464,0,0,1,35.1327,33.47275Z"
+ id="path12"
+ style="fill:#b9b9b9;fill-opacity:1" />
+</svg>
diff --git a/app/images/AGL_Icons_CruiseControl_green.svg b/app/images/AGL_Icons_CruiseControl_green.svg
new file mode 100644
index 0000000..b229909
--- /dev/null
+++ b/app/images/AGL_Icons_CruiseControl_green.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="Layer_1"
+ data-name="Layer 1"
+ viewBox="0 0 64 64"
+ version="1.1"
+ sodipodi:docname="AGL_Icons_CruiseControl_green.svg"
+ inkscape:version="0.92.4 (unknown)">
+ <metadata
+ id="metadata17">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>AGL-new-icons-2</dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1349"
+ inkscape:window-height="832"
+ id="namedview15"
+ showgrid="false"
+ inkscape:zoom="3.6875"
+ inkscape:cx="32.542373"
+ inkscape:cy="32"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="Layer_1" />
+ <defs
+ id="defs4">
+ <style
+ id="style2">.cls-1{fill:#666;}.cls-2{fill:#fff;}</style>
+ </defs>
+ <title
+ id="title6">AGL-new-icons-2</title>
+ <path
+ class="cls-1"
+ d="M35.05031,43.25743a4.86566,4.86566,0,0,0,4.9216-4.8792,4.89193,4.89193,0,1,0-9.78384-.02387A4.87784,4.87784,0,0,0,35.05031,43.25743Z"
+ id="path8"
+ style="fill:#00ff00;fill-opacity:1" />
+ <path
+ class="cls-2"
+ d="M35.05031,43.25743a4.86566,4.86566,0,0,0,4.9216-4.8792,4.89193,4.89193,0,1,0-9.78384-.02387A4.87784,4.87784,0,0,0,35.05031,43.25743Z"
+ id="path10"
+ style="fill:#00ff00;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M27.87548,33.70618c.13343.14052.11688.25454.01746.42343a8.06825,8.06825,0,0,0-1.12477,3.39684,8.17582,8.17582,0,0,0,2.00677,6.32238,8.37807,8.37807,0,0,0,4.35395,2.65547,7.82029,7.82029,0,0,0,3.155.12031,8.33976,8.33976,0,0,0,5.28357-13.43835,8.42189,8.42189,0,0,0-2.74735-2.23677,7.46105,7.46105,0,0,0-2.81734-.85166,7.82757,7.82757,0,0,0-5.15033,1.12191.43962.43962,0,0,1-.664-.0995c-.15116-.18584-.33018-.34916-.49823-.5211q-1.41491-1.44748-2.83-2.8948c-.63528-.65209-1.2624-1.31211-1.89931-1.96259-.99161-1.01266-1.99023-2.01837-2.98238-3.03049-.78757-.80339-1.556-1.62627-2.36322-2.40927-.234-.227-.20739-.37505-.00782-.542a22.63476,22.63476,0,0,1,3.497-2.419,25.79691,25.79691,0,0,1,2.85593-1.374A23.451,23.451,0,0,1,32.4996,14.38c.32107-.03221.46171.06283.45122.41425-.02241.75071-.01185,1.50256-.00736,2.25392a1.58217,1.58217,0,0,0,.43933,1.0926,1.81759,1.81759,0,0,0,1.95169.46845,1.74,1.74,0,0,0,1.07841-1.64526c.00385-.73794.00523-1.476-.00793-2.21378-.00491-.27494.08864-.4049.37265-.37246.1064.01216.215.005.32141.017a23.21351,23.21351,0,0,1,9.877,3.37847,24.63078,24.63078,0,0,1,2.67884,1.913c.24647.20465.28352.356.02074.59765-.52285.48088-1.02134.98951-1.51251,1.50329a1.7268,1.7268,0,0,0,.10636,2.62589,1.76026,1.76026,0,0,0,2.46265-.2481c.48739-.47909.96526-.9679,1.44549-1.45423.14144-.14322.27693-.286.44752-.03637l1.66234,2.25908-.00126-.00042.08418.164-.00679-.00576.0716.06211.0974.142.05631.10179.035.09717a.14307.14307,0,0,1,.10262.1443l.04606.10937a.47152.47152,0,0,1,.21295.31169.03358.03358,0,0,1,.0263.0358l.06031.109.02261.08837.09881.14708a18.19777,18.19777,0,0,1,1.6612,3.637A23.49559,23.49559,0,0,1,58.05005,35.557c.03317.3184-.05413.44283-.377.437-.69673-.0127-1.3938-.00846-2.09076-.00728a1.755,1.755,0,1,0-.10332,3.50549c.71008.013,1.42065-.003,2.131-.002.18181.00027.43037-.02981.42229.23373a7.63647,7.63647,0,0,1-.29156,2.12633,14.05945,14.05945,0,0,1-.86916,3.39223l-.01415.08276a13.17565,13.17565,0,0,1-1.18367,2.78738,2.03425,2.03425,0,0,1-.353.7554,22.85421,22.85421,0,0,1-2.58689,3.84143c-.22184.2688-.38188.24856-.60551.01182-.42121-.446-.87945-.85761-1.29087-1.312a2.07186,2.07186,0,0,0-1.61842-.74217l-.78338.27654a1.75,1.75,0,0,0-.30216,2.68764c1.16831,1.183,2.35114,2.35152,3.52345,3.53051a1.87872,1.87872,0,0,0,2.94993-.03687,28.13123,28.13123,0,0,0,3.86842-4.962A27.57384,27.57384,0,0,0,61.041,46.63479a28.38262,28.38262,0,0,0,1.24463-12.45,27.29151,27.29151,0,0,0-1.80156-6.856A29.60616,29.60616,0,0,0,57.953,22.50037c-.51294-.79882-1.13026-1.52155-1.63066-2.32731-.128-.137-.26072-.27-.38336-.41169a28.32566,28.32566,0,0,0-6.32108-5.49355A27.86082,27.86082,0,0,0,24.77675,11.743c-1.20563.45538-2.3498,1.04075-3.50945,1.59456-.73162.46254-1.47066.91388-2.19324,1.3901a24.21179,24.21179,0,0,0-3.46016,2.78322c-.091.0875-.16973.21143-.35733.21894a5.57224,5.57224,0,0,0,.09706-1.94387c-.00995-2.33151-.02661-4.663-.03065-6.99448a6.03992,6.03992,0,0,1-.01452-1.35278c-.25077-.34677-.47615-.36457-.81041-.04567-.29061.27726-.56864.56772-.85315.85139a1.12665,1.12665,0,0,1-1.86435.01994Q9.92642,6.42125,8.07487,4.57555a.9829.9829,0,0,0-1.40108-.14814,4.77373,4.77373,0,0,0-.79463.73413c-1.32987,1.32182-2.64377,2.66-3.98748,3.9675a1.24555,1.24555,0,0,0-.00739,1.80629C3.14062,12.12315,4.324,13.388,5.57635,14.5802a1.136,1.136,0,0,1,.02593,1.69207c-.34242.33956-.67283.69143-1.00373,1.04239-.28268.29972-.26168.48335.07418.7549q1.58561.01881,3.1712.03767c1.82291.02154,3.64582.05173,5.46881.05913a3.45561,3.45561,0,0,0,1.61461-.148c.03652.18066-.067.24193-.13839.31314a27.06844,27.06844,0,0,0-4.05762,5.26874c-.0687.11418-.14895.22142-.22359.33125-.05581.12-.10473.24444-.169.36041A26.9253,26.9253,0,0,0,8.88769,27.3392,27.73505,27.73505,0,0,0,13.154,55.32546a12.98283,12.98283,0,0,0,2.4832,2.55765,2.12269,2.12269,0,0,0,1.56981-.31592,14.07163,14.07163,0,0,0,1.72963-1.61229c.15634-.14383.00461-.26521-.0891-.375-.66851-.78331-1.3328-1.57031-2.00773-2.34805a22.98006,22.98006,0,0,1-4.66278-8.71141,26.20353,26.20353,0,0,1-.87038-4.65462c-.03068-.289.065-.37757.35035-.37349.73733.01052,1.47508-.00179,2.21256-.01262a1.74435,1.74435,0,1,0-.04769-3.48536q-1.08621-.01573-2.17272-.0021c-.28958.004-.37555-.11749-.34513-.39022a26.118,26.118,0,0,1,.575-3.405,23.29036,23.29036,0,0,1,4.77429-9.46251c.18173-.21729.24951-.16568.41069.00241.90675.94555,1.8249,1.88021,2.74144,2.81635m4.78222,4.46938,10.545,3.45006a4.92774,4.92774,0,0,1,4.83921,4.90548,4.89193,4.89193,0,0,1-9.78384-.02387A4.91464,4.91464,0,0,1,35.1327,33.47275Z"
+ id="path12"
+ style="fill:#00ff00;fill-opacity:1" />
+</svg>
diff --git a/app/images/AGL_Icons_CruiseControl_white.svg b/app/images/AGL_Icons_CruiseControl_white.svg
new file mode 100644
index 0000000..8c2ab25
--- /dev/null
+++ b/app/images/AGL_Icons_CruiseControl_white.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="Layer_1"
+ data-name="Layer 1"
+ viewBox="0 0 64 64"
+ version="1.1"
+ sodipodi:docname="AGL_Icons_CruiseControl_white.svg"
+ inkscape:version="0.92.4 (unknown)">
+ <metadata
+ id="metadata17">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>AGL-new-icons-2</dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1349"
+ inkscape:window-height="832"
+ id="namedview15"
+ showgrid="false"
+ inkscape:zoom="3.6875"
+ inkscape:cx="32.542373"
+ inkscape:cy="32"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="Layer_1" />
+ <defs
+ id="defs4">
+ <style
+ id="style2">.cls-1{fill:#666;}.cls-2{fill:#fff;}</style>
+ </defs>
+ <title
+ id="title6">AGL-new-icons-2</title>
+ <path
+ class="cls-1"
+ d="M35.05031,43.25743a4.86566,4.86566,0,0,0,4.9216-4.8792,4.89193,4.89193,0,1,0-9.78384-.02387A4.87784,4.87784,0,0,0,35.05031,43.25743Z"
+ id="path8"
+ style="fill:#ffffff;fill-opacity:1" />
+ <path
+ class="cls-2"
+ d="M35.05031,43.25743a4.86566,4.86566,0,0,0,4.9216-4.8792,4.89193,4.89193,0,1,0-9.78384-.02387A4.87784,4.87784,0,0,0,35.05031,43.25743Z"
+ id="path10"
+ style="fill:#ffffff;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M27.87548,33.70618c.13343.14052.11688.25454.01746.42343a8.06825,8.06825,0,0,0-1.12477,3.39684,8.17582,8.17582,0,0,0,2.00677,6.32238,8.37807,8.37807,0,0,0,4.35395,2.65547,7.82029,7.82029,0,0,0,3.155.12031,8.33976,8.33976,0,0,0,5.28357-13.43835,8.42189,8.42189,0,0,0-2.74735-2.23677,7.46105,7.46105,0,0,0-2.81734-.85166,7.82757,7.82757,0,0,0-5.15033,1.12191.43962.43962,0,0,1-.664-.0995c-.15116-.18584-.33018-.34916-.49823-.5211q-1.41491-1.44748-2.83-2.8948c-.63528-.65209-1.2624-1.31211-1.89931-1.96259-.99161-1.01266-1.99023-2.01837-2.98238-3.03049-.78757-.80339-1.556-1.62627-2.36322-2.40927-.234-.227-.20739-.37505-.00782-.542a22.63476,22.63476,0,0,1,3.497-2.419,25.79691,25.79691,0,0,1,2.85593-1.374A23.451,23.451,0,0,1,32.4996,14.38c.32107-.03221.46171.06283.45122.41425-.02241.75071-.01185,1.50256-.00736,2.25392a1.58217,1.58217,0,0,0,.43933,1.0926,1.81759,1.81759,0,0,0,1.95169.46845,1.74,1.74,0,0,0,1.07841-1.64526c.00385-.73794.00523-1.476-.00793-2.21378-.00491-.27494.08864-.4049.37265-.37246.1064.01216.215.005.32141.017a23.21351,23.21351,0,0,1,9.877,3.37847,24.63078,24.63078,0,0,1,2.67884,1.913c.24647.20465.28352.356.02074.59765-.52285.48088-1.02134.98951-1.51251,1.50329a1.7268,1.7268,0,0,0,.10636,2.62589,1.76026,1.76026,0,0,0,2.46265-.2481c.48739-.47909.96526-.9679,1.44549-1.45423.14144-.14322.27693-.286.44752-.03637l1.66234,2.25908-.00126-.00042.08418.164-.00679-.00576.0716.06211.0974.142.05631.10179.035.09717a.14307.14307,0,0,1,.10262.1443l.04606.10937a.47152.47152,0,0,1,.21295.31169.03358.03358,0,0,1,.0263.0358l.06031.109.02261.08837.09881.14708a18.19777,18.19777,0,0,1,1.6612,3.637A23.49559,23.49559,0,0,1,58.05005,35.557c.03317.3184-.05413.44283-.377.437-.69673-.0127-1.3938-.00846-2.09076-.00728a1.755,1.755,0,1,0-.10332,3.50549c.71008.013,1.42065-.003,2.131-.002.18181.00027.43037-.02981.42229.23373a7.63647,7.63647,0,0,1-.29156,2.12633,14.05945,14.05945,0,0,1-.86916,3.39223l-.01415.08276a13.17565,13.17565,0,0,1-1.18367,2.78738,2.03425,2.03425,0,0,1-.353.7554,22.85421,22.85421,0,0,1-2.58689,3.84143c-.22184.2688-.38188.24856-.60551.01182-.42121-.446-.87945-.85761-1.29087-1.312a2.07186,2.07186,0,0,0-1.61842-.74217l-.78338.27654a1.75,1.75,0,0,0-.30216,2.68764c1.16831,1.183,2.35114,2.35152,3.52345,3.53051a1.87872,1.87872,0,0,0,2.94993-.03687,28.13123,28.13123,0,0,0,3.86842-4.962A27.57384,27.57384,0,0,0,61.041,46.63479a28.38262,28.38262,0,0,0,1.24463-12.45,27.29151,27.29151,0,0,0-1.80156-6.856A29.60616,29.60616,0,0,0,57.953,22.50037c-.51294-.79882-1.13026-1.52155-1.63066-2.32731-.128-.137-.26072-.27-.38336-.41169a28.32566,28.32566,0,0,0-6.32108-5.49355A27.86082,27.86082,0,0,0,24.77675,11.743c-1.20563.45538-2.3498,1.04075-3.50945,1.59456-.73162.46254-1.47066.91388-2.19324,1.3901a24.21179,24.21179,0,0,0-3.46016,2.78322c-.091.0875-.16973.21143-.35733.21894a5.57224,5.57224,0,0,0,.09706-1.94387c-.00995-2.33151-.02661-4.663-.03065-6.99448a6.03992,6.03992,0,0,1-.01452-1.35278c-.25077-.34677-.47615-.36457-.81041-.04567-.29061.27726-.56864.56772-.85315.85139a1.12665,1.12665,0,0,1-1.86435.01994Q9.92642,6.42125,8.07487,4.57555a.9829.9829,0,0,0-1.40108-.14814,4.77373,4.77373,0,0,0-.79463.73413c-1.32987,1.32182-2.64377,2.66-3.98748,3.9675a1.24555,1.24555,0,0,0-.00739,1.80629C3.14062,12.12315,4.324,13.388,5.57635,14.5802a1.136,1.136,0,0,1,.02593,1.69207c-.34242.33956-.67283.69143-1.00373,1.04239-.28268.29972-.26168.48335.07418.7549q1.58561.01881,3.1712.03767c1.82291.02154,3.64582.05173,5.46881.05913a3.45561,3.45561,0,0,0,1.61461-.148c.03652.18066-.067.24193-.13839.31314a27.06844,27.06844,0,0,0-4.05762,5.26874c-.0687.11418-.14895.22142-.22359.33125-.05581.12-.10473.24444-.169.36041A26.9253,26.9253,0,0,0,8.88769,27.3392,27.73505,27.73505,0,0,0,13.154,55.32546a12.98283,12.98283,0,0,0,2.4832,2.55765,2.12269,2.12269,0,0,0,1.56981-.31592,14.07163,14.07163,0,0,0,1.72963-1.61229c.15634-.14383.00461-.26521-.0891-.375-.66851-.78331-1.3328-1.57031-2.00773-2.34805a22.98006,22.98006,0,0,1-4.66278-8.71141,26.20353,26.20353,0,0,1-.87038-4.65462c-.03068-.289.065-.37757.35035-.37349.73733.01052,1.47508-.00179,2.21256-.01262a1.74435,1.74435,0,1,0-.04769-3.48536q-1.08621-.01573-2.17272-.0021c-.28958.004-.37555-.11749-.34513-.39022a26.118,26.118,0,0,1,.575-3.405,23.29036,23.29036,0,0,1,4.77429-9.46251c.18173-.21729.24951-.16568.41069.00241.90675.94555,1.8249,1.88021,2.74144,2.81635m4.78222,4.46938,10.545,3.45006a4.92774,4.92774,0,0,1,4.83921,4.90548,4.89193,4.89193,0,0,1-9.78384-.02387A4.91464,4.91464,0,0,1,35.1327,33.47275Z"
+ id="path12"
+ style="fill:#ffffff;fill-opacity:1" />
+</svg>
diff --git a/app/images/AGL_Icons_CruiseControl_yellow.svg b/app/images/AGL_Icons_CruiseControl_yellow.svg
new file mode 100644
index 0000000..4712a19
--- /dev/null
+++ b/app/images/AGL_Icons_CruiseControl_yellow.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="Layer_1"
+ data-name="Layer 1"
+ viewBox="0 0 64 64"
+ version="1.1"
+ sodipodi:docname="AGL_Icons_CruiseControl_yellow.svg"
+ inkscape:version="0.92.4 (unknown)">
+ <metadata
+ id="metadata17">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>AGL-new-icons-2</dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1349"
+ inkscape:window-height="832"
+ id="namedview15"
+ showgrid="false"
+ inkscape:zoom="3.6875"
+ inkscape:cx="-7.1864406"
+ inkscape:cy="32"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="Layer_1" />
+ <defs
+ id="defs4">
+ <style
+ id="style2">.cls-1{fill:#666;}.cls-2{fill:#fff;}</style>
+ </defs>
+ <title
+ id="title6">AGL-new-icons-2</title>
+ <path
+ class="cls-1"
+ d="M35.05031,43.25743a4.86566,4.86566,0,0,0,4.9216-4.8792,4.89193,4.89193,0,1,0-9.78384-.02387A4.87784,4.87784,0,0,0,35.05031,43.25743Z"
+ id="path8"
+ style="fill:#ffff00;fill-opacity:1" />
+ <path
+ class="cls-2"
+ d="M35.05031,43.25743a4.86566,4.86566,0,0,0,4.9216-4.8792,4.89193,4.89193,0,1,0-9.78384-.02387A4.87784,4.87784,0,0,0,35.05031,43.25743Z"
+ id="path10"
+ style="fill:#ffff00;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M27.87548,33.70618c.13343.14052.11688.25454.01746.42343a8.06825,8.06825,0,0,0-1.12477,3.39684,8.17582,8.17582,0,0,0,2.00677,6.32238,8.37807,8.37807,0,0,0,4.35395,2.65547,7.82029,7.82029,0,0,0,3.155.12031,8.33976,8.33976,0,0,0,5.28357-13.43835,8.42189,8.42189,0,0,0-2.74735-2.23677,7.46105,7.46105,0,0,0-2.81734-.85166,7.82757,7.82757,0,0,0-5.15033,1.12191.43962.43962,0,0,1-.664-.0995c-.15116-.18584-.33018-.34916-.49823-.5211q-1.41491-1.44748-2.83-2.8948c-.63528-.65209-1.2624-1.31211-1.89931-1.96259-.99161-1.01266-1.99023-2.01837-2.98238-3.03049-.78757-.80339-1.556-1.62627-2.36322-2.40927-.234-.227-.20739-.37505-.00782-.542a22.63476,22.63476,0,0,1,3.497-2.419,25.79691,25.79691,0,0,1,2.85593-1.374A23.451,23.451,0,0,1,32.4996,14.38c.32107-.03221.46171.06283.45122.41425-.02241.75071-.01185,1.50256-.00736,2.25392a1.58217,1.58217,0,0,0,.43933,1.0926,1.81759,1.81759,0,0,0,1.95169.46845,1.74,1.74,0,0,0,1.07841-1.64526c.00385-.73794.00523-1.476-.00793-2.21378-.00491-.27494.08864-.4049.37265-.37246.1064.01216.215.005.32141.017a23.21351,23.21351,0,0,1,9.877,3.37847,24.63078,24.63078,0,0,1,2.67884,1.913c.24647.20465.28352.356.02074.59765-.52285.48088-1.02134.98951-1.51251,1.50329a1.7268,1.7268,0,0,0,.10636,2.62589,1.76026,1.76026,0,0,0,2.46265-.2481c.48739-.47909.96526-.9679,1.44549-1.45423.14144-.14322.27693-.286.44752-.03637l1.66234,2.25908-.00126-.00042.08418.164-.00679-.00576.0716.06211.0974.142.05631.10179.035.09717a.14307.14307,0,0,1,.10262.1443l.04606.10937a.47152.47152,0,0,1,.21295.31169.03358.03358,0,0,1,.0263.0358l.06031.109.02261.08837.09881.14708a18.19777,18.19777,0,0,1,1.6612,3.637A23.49559,23.49559,0,0,1,58.05005,35.557c.03317.3184-.05413.44283-.377.437-.69673-.0127-1.3938-.00846-2.09076-.00728a1.755,1.755,0,1,0-.10332,3.50549c.71008.013,1.42065-.003,2.131-.002.18181.00027.43037-.02981.42229.23373a7.63647,7.63647,0,0,1-.29156,2.12633,14.05945,14.05945,0,0,1-.86916,3.39223l-.01415.08276a13.17565,13.17565,0,0,1-1.18367,2.78738,2.03425,2.03425,0,0,1-.353.7554,22.85421,22.85421,0,0,1-2.58689,3.84143c-.22184.2688-.38188.24856-.60551.01182-.42121-.446-.87945-.85761-1.29087-1.312a2.07186,2.07186,0,0,0-1.61842-.74217l-.78338.27654a1.75,1.75,0,0,0-.30216,2.68764c1.16831,1.183,2.35114,2.35152,3.52345,3.53051a1.87872,1.87872,0,0,0,2.94993-.03687,28.13123,28.13123,0,0,0,3.86842-4.962A27.57384,27.57384,0,0,0,61.041,46.63479a28.38262,28.38262,0,0,0,1.24463-12.45,27.29151,27.29151,0,0,0-1.80156-6.856A29.60616,29.60616,0,0,0,57.953,22.50037c-.51294-.79882-1.13026-1.52155-1.63066-2.32731-.128-.137-.26072-.27-.38336-.41169a28.32566,28.32566,0,0,0-6.32108-5.49355A27.86082,27.86082,0,0,0,24.77675,11.743c-1.20563.45538-2.3498,1.04075-3.50945,1.59456-.73162.46254-1.47066.91388-2.19324,1.3901a24.21179,24.21179,0,0,0-3.46016,2.78322c-.091.0875-.16973.21143-.35733.21894a5.57224,5.57224,0,0,0,.09706-1.94387c-.00995-2.33151-.02661-4.663-.03065-6.99448a6.03992,6.03992,0,0,1-.01452-1.35278c-.25077-.34677-.47615-.36457-.81041-.04567-.29061.27726-.56864.56772-.85315.85139a1.12665,1.12665,0,0,1-1.86435.01994Q9.92642,6.42125,8.07487,4.57555a.9829.9829,0,0,0-1.40108-.14814,4.77373,4.77373,0,0,0-.79463.73413c-1.32987,1.32182-2.64377,2.66-3.98748,3.9675a1.24555,1.24555,0,0,0-.00739,1.80629C3.14062,12.12315,4.324,13.388,5.57635,14.5802a1.136,1.136,0,0,1,.02593,1.69207c-.34242.33956-.67283.69143-1.00373,1.04239-.28268.29972-.26168.48335.07418.7549q1.58561.01881,3.1712.03767c1.82291.02154,3.64582.05173,5.46881.05913a3.45561,3.45561,0,0,0,1.61461-.148c.03652.18066-.067.24193-.13839.31314a27.06844,27.06844,0,0,0-4.05762,5.26874c-.0687.11418-.14895.22142-.22359.33125-.05581.12-.10473.24444-.169.36041A26.9253,26.9253,0,0,0,8.88769,27.3392,27.73505,27.73505,0,0,0,13.154,55.32546a12.98283,12.98283,0,0,0,2.4832,2.55765,2.12269,2.12269,0,0,0,1.56981-.31592,14.07163,14.07163,0,0,0,1.72963-1.61229c.15634-.14383.00461-.26521-.0891-.375-.66851-.78331-1.3328-1.57031-2.00773-2.34805a22.98006,22.98006,0,0,1-4.66278-8.71141,26.20353,26.20353,0,0,1-.87038-4.65462c-.03068-.289.065-.37757.35035-.37349.73733.01052,1.47508-.00179,2.21256-.01262a1.74435,1.74435,0,1,0-.04769-3.48536q-1.08621-.01573-2.17272-.0021c-.28958.004-.37555-.11749-.34513-.39022a26.118,26.118,0,0,1,.575-3.405,23.29036,23.29036,0,0,1,4.77429-9.46251c.18173-.21729.24951-.16568.41069.00241.90675.94555,1.8249,1.88021,2.74144,2.81635m4.78222,4.46938,10.545,3.45006a4.92774,4.92774,0,0,1,4.83921,4.90548,4.89193,4.89193,0,0,1-9.78384-.02387A4.91464,4.91464,0,0,1,35.1327,33.47275Z"
+ id="path12"
+ style="fill:#ffff00;fill-opacity:1" />
+</svg>
diff --git a/app/images/AGL_Icons_LaneDeparture.svg b/app/images/AGL_Icons_LaneDeparture.svg
new file mode 100644
index 0000000..89b51a8
--- /dev/null
+++ b/app/images/AGL_Icons_LaneDeparture.svg
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="Layer_1"
+ data-name="Layer 1"
+ viewBox="0 0 64 64"
+ version="1.1"
+ sodipodi:docname="AGL_Icons_LaneDeparture.svg"
+ inkscape:version="0.92.4 (unknown)">
+ <metadata
+ id="metadata25">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1343"
+ inkscape:window-height="823"
+ id="namedview23"
+ showgrid="false"
+ inkscape:zoom="3.6875"
+ inkscape:cx="32.542373"
+ inkscape:cy="32"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="Layer_1" />
+ <defs
+ id="defs4">
+ <style
+ id="style2">.cls-1{fill:#666;}</style>
+ </defs>
+ <title
+ id="title6">AGL-new-icons-2</title>
+ <path
+ class="cls-1"
+ d="M44.939,30.57106a3.59,3.59,0,0,0,1.73739-.9482c.32452-.35506.30892-.53367-.06369-.847a4.65066,4.65066,0,0,0-1.72547-.82423,1.18976,1.18976,0,0,0-1.56452.52073c-.624-1.29616-1.27076-2.53741-1.94015-3.769a2.98654,2.98654,0,0,0-2.418-1.6105,49.46189,49.46189,0,0,0-9.25755-.4488,35.4494,35.4494,0,0,0-4.41582.46554,2.24164,2.24164,0,0,0-1.59853,1.01524,19.18645,19.18645,0,0,0-1.03322,1.71659c-.43273.83534-.8557,1.67576-1.294,2.5359a1.09192,1.09192,0,0,0-1.39923-.5627,4.85856,4.85856,0,0,0-1.27314.50789c-.33156.19665-.77.3686-.775.816-.0053.48119.43338.69365.79948.88683.4155.21923.86.38393,1.29373.568.12456.05281.241.08942.21143.271a2.9427,2.9427,0,0,1-.99575,2.02729,2.78619,2.78619,0,0,0-1.122,2.38664c.01928,2.94906.00693,5.89839.00693,8.84756,0,.10485-.00411.21019.00379.3145a.67061.67061,0,0,0,.72594.70812q1.55406.01494,3.10834-.00065a.66748.66748,0,0,0,.71337-.71976,6.56669,6.56669,0,0,0-.00466-.94289c-.045-.3953.11167-.46652.47962-.46582q9.28587.01747,18.57152.00829a.437.437,0,0,0,.07864-.0006c.33134-.06147.40315.10491.38127.39817-.02123.28677-.00617.57641-.00455.86474.0038.63019.22617.85927.847.86144.905.00325,1.81.0013,2.71494.001.78237-.00027.98459-.19746.98492-.96872q.00162-3.55875-.00076-7.11744c-.00119-.78616-.00314-1.5727-.02957-2.35826a2.04205,2.04205,0,0,0-.89945-1.67185,2.8569,2.8569,0,0,1-1.15075-1.934C44.572,30.81109,44.61555,30.66443,44.939,30.57106ZM19.25013,36.00061c.4142-.70118.81865-1.38287,1.2191-2.06694.07506-.12835.19074-.11595.30794-.11595,1.678.00005,3.35606.00569,5.03409-.00552.30393-.002.28346.092.1745.30848-.22952.45585-.44247.92014-.65542,1.38411a.36477.36477,0,0,1-.343.26337c-1.85935.0846-3.71827.1777-5.5774.26684A.84379.84379,0,0,1,19.25013,36.00061Zm4.73406-6.21647c-.33242.00114-.3999-.04679-.2409-.37477q.97614-2.01394,1.89986-4.05318a.77975.77975,0,0,1,.6291-.505,26.80857,26.80857,0,0,1,3.60086-.30248,64.44194,64.44194,0,0,1,7.46546.14184c1.57112.12132,1.57393.09852,2.21722,1.52888.47778,1.06242.94138,2.13144,1.43508,3.18644.15283.32663.07994.38-.25216.37889-2.79238-.0098-5.58477-.00558-8.37726-.00558C29.569,29.77884,26.77657,29.77477,23.98419,29.78414ZM45.506,36.04919c-1.58564-.0782-3.0778-.15159-4.56985-.22557a6.588,6.588,0,0,0-.90292-.0398.65985.65985,0,0,1-.75518-.50687c-.18825-.48179-.43142-.94218-.6734-1.45956,1.149,0,2.23477-.00005,3.32042,0,.65586.00006,1.31182-.0007,1.96756.001.13973.00038.28119-.02843.37629.13583C44.66105,34.631,45.06333,35.30181,45.506,36.04919Z"
+ id="path8"
+ style="fill:#b9b9b9;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M63.26062,45.5394q-2.24376-4.392-4.47778-8.789a.51334.51334,0,0,0-.53443-.33594c-1.587.01527-3.17431.01257-4.76146.00255-.282-.00179-.33415.05123-.217.32348q2.26846,5.2692,4.51375,10.54829a.40042.40042,0,0,0,.44691.27377q1.1802-.01494,2.361-.00162c.96954.01126,1.93961-.0404,2.90839.02789v-1.652A1.02426,1.02426,0,0,1,63.26062,45.5394Z"
+ id="path10"
+ style="fill:#b9b9b9;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M10.35328,36.41665c-1.57372.01089-3.14766.01332-4.72138-.00216a.5381.5381,0,0,0-.56227.35468C3.782,39.31751,2.50709,41.87307,1.16722,44.394a4.56713,4.56713,0,0,0-.63971,2.76363.26831.26831,0,0,1-.00022.07847c-.04755.26965.08362.33085.33058.32722.79992-.0118,1.60005-.00444,2.40007-.00449.78691-.00011,1.574-.00867,2.36063.005a.42382.42382,0,0,0,.468-.30155q2.2371-5.26009,4.49933-10.50957C10.71419,36.45537,10.64313,36.41465,10.35328,36.41665Z"
+ id="path12"
+ style="fill:#b9b9b9;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M56.50972,33.07251c.27556.00395.35073-.04517.20678-.32306q-1.84245-3.55622-3.662-7.12426a.37438.37438,0,0,0-.39026-.23889c-1.32362.0085-2.64724.011-3.97086-.00114-.295-.00265-.28682.08936-.18869.31363q1.55066,3.54251,3.084,7.09258a.40116.40116,0,0,0,.43911.28254c.74684-.01272,1.49389-.00482,2.24095-.00492S55.76278,33.06178,56.50972,33.07251Z"
+ id="path14"
+ style="fill:#b9b9b9;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M15.16478,25.386c-1.32481.01089-2.64973.00731-3.97465.00141a.3497.3497,0,0,0-.36871.21138q-1.833,3.58717-3.68361,7.16531c-.135.26072-.05935.31033.19735.30746.76082-.0084,1.52163-.003,2.28255-.00287.73449.00016,1.4693-.00623,2.20368.00406a.40064.40064,0,0,0,.44724-.27014q1.52937-3.55558,3.08408-7.10011C15.45214,25.4755,15.4594,25.38365,15.16478,25.386Z"
+ id="path16"
+ style="fill:#b9b9b9;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M18.813,17.63272a1.46569,1.46569,0,0,0-.19475-.03255c-1.16689-.00173-2.334.00385-3.50077-.0072-.216-.00206-.28769.11-.36871.27285q-1.26015,2.53158-2.53611,5.05537c-.14059.27653-.10918.3451.20688.34169q1.82881-.0195,3.65816.00037a.42428.42428,0,0,0,.46131-.31211c.50963-1.22023,1.03854-2.43239,1.56008-3.6477C18.33508,18.75363,18.56926,18.20311,18.813,17.63272Z"
+ id="path18"
+ style="fill:#b9b9b9;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M51.52622,23.26055c.23732.00341.26407-.05763.15868-.26608q-1.30336-2.57676-2.58745-5.16315a.374.374,0,0,0-.39275-.23727c-1.11458.008-2.22936.01035-3.34393-.00081-.27058-.00271-.3126.06418-.206.30951q1.10417,2.54,2.1869,5.08912a.3726.3726,0,0,0,.40792.27073c.6161-.014,1.23263-.00487,1.849-.005C50.24105,23.25741,50.8838,23.25139,51.52622,23.26055Z"
+ id="path20"
+ style="fill:#b9b9b9;fill-opacity:1" />
+</svg>
diff --git a/app/images/AGL_Icons_LaneDeparture_green.svg b/app/images/AGL_Icons_LaneDeparture_green.svg
new file mode 100644
index 0000000..fa5d845
--- /dev/null
+++ b/app/images/AGL_Icons_LaneDeparture_green.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="Layer_1"
+ data-name="Layer 1"
+ viewBox="0 0 64 64"
+ version="1.1"
+ sodipodi:docname="AGL_Icons_LaneDeparture_green.svg"
+ inkscape:version="0.92.4 (unknown)">
+ <metadata
+ id="metadata25">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>AGL-new-icons-2</dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1343"
+ inkscape:window-height="823"
+ id="namedview23"
+ showgrid="false"
+ inkscape:zoom="3.6875"
+ inkscape:cx="32.542373"
+ inkscape:cy="32"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="Layer_1" />
+ <defs
+ id="defs4">
+ <style
+ id="style2">.cls-1{fill:#666;}</style>
+ </defs>
+ <title
+ id="title6">AGL-new-icons-2</title>
+ <path
+ class="cls-1"
+ d="M44.939,30.57106a3.59,3.59,0,0,0,1.73739-.9482c.32452-.35506.30892-.53367-.06369-.847a4.65066,4.65066,0,0,0-1.72547-.82423,1.18976,1.18976,0,0,0-1.56452.52073c-.624-1.29616-1.27076-2.53741-1.94015-3.769a2.98654,2.98654,0,0,0-2.418-1.6105,49.46189,49.46189,0,0,0-9.25755-.4488,35.4494,35.4494,0,0,0-4.41582.46554,2.24164,2.24164,0,0,0-1.59853,1.01524,19.18645,19.18645,0,0,0-1.03322,1.71659c-.43273.83534-.8557,1.67576-1.294,2.5359a1.09192,1.09192,0,0,0-1.39923-.5627,4.85856,4.85856,0,0,0-1.27314.50789c-.33156.19665-.77.3686-.775.816-.0053.48119.43338.69365.79948.88683.4155.21923.86.38393,1.29373.568.12456.05281.241.08942.21143.271a2.9427,2.9427,0,0,1-.99575,2.02729,2.78619,2.78619,0,0,0-1.122,2.38664c.01928,2.94906.00693,5.89839.00693,8.84756,0,.10485-.00411.21019.00379.3145a.67061.67061,0,0,0,.72594.70812q1.55406.01494,3.10834-.00065a.66748.66748,0,0,0,.71337-.71976,6.56669,6.56669,0,0,0-.00466-.94289c-.045-.3953.11167-.46652.47962-.46582q9.28587.01747,18.57152.00829a.437.437,0,0,0,.07864-.0006c.33134-.06147.40315.10491.38127.39817-.02123.28677-.00617.57641-.00455.86474.0038.63019.22617.85927.847.86144.905.00325,1.81.0013,2.71494.001.78237-.00027.98459-.19746.98492-.96872q.00162-3.55875-.00076-7.11744c-.00119-.78616-.00314-1.5727-.02957-2.35826a2.04205,2.04205,0,0,0-.89945-1.67185,2.8569,2.8569,0,0,1-1.15075-1.934C44.572,30.81109,44.61555,30.66443,44.939,30.57106ZM19.25013,36.00061c.4142-.70118.81865-1.38287,1.2191-2.06694.07506-.12835.19074-.11595.30794-.11595,1.678.00005,3.35606.00569,5.03409-.00552.30393-.002.28346.092.1745.30848-.22952.45585-.44247.92014-.65542,1.38411a.36477.36477,0,0,1-.343.26337c-1.85935.0846-3.71827.1777-5.5774.26684A.84379.84379,0,0,1,19.25013,36.00061Zm4.73406-6.21647c-.33242.00114-.3999-.04679-.2409-.37477q.97614-2.01394,1.89986-4.05318a.77975.77975,0,0,1,.6291-.505,26.80857,26.80857,0,0,1,3.60086-.30248,64.44194,64.44194,0,0,1,7.46546.14184c1.57112.12132,1.57393.09852,2.21722,1.52888.47778,1.06242.94138,2.13144,1.43508,3.18644.15283.32663.07994.38-.25216.37889-2.79238-.0098-5.58477-.00558-8.37726-.00558C29.569,29.77884,26.77657,29.77477,23.98419,29.78414ZM45.506,36.04919c-1.58564-.0782-3.0778-.15159-4.56985-.22557a6.588,6.588,0,0,0-.90292-.0398.65985.65985,0,0,1-.75518-.50687c-.18825-.48179-.43142-.94218-.6734-1.45956,1.149,0,2.23477-.00005,3.32042,0,.65586.00006,1.31182-.0007,1.96756.001.13973.00038.28119-.02843.37629.13583C44.66105,34.631,45.06333,35.30181,45.506,36.04919Z"
+ id="path8"
+ style="fill:#00ff00;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M63.26062,45.5394q-2.24376-4.392-4.47778-8.789a.51334.51334,0,0,0-.53443-.33594c-1.587.01527-3.17431.01257-4.76146.00255-.282-.00179-.33415.05123-.217.32348q2.26846,5.2692,4.51375,10.54829a.40042.40042,0,0,0,.44691.27377q1.1802-.01494,2.361-.00162c.96954.01126,1.93961-.0404,2.90839.02789v-1.652A1.02426,1.02426,0,0,1,63.26062,45.5394Z"
+ id="path10"
+ style="fill:#00ff00;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M10.35328,36.41665c-1.57372.01089-3.14766.01332-4.72138-.00216a.5381.5381,0,0,0-.56227.35468C3.782,39.31751,2.50709,41.87307,1.16722,44.394a4.56713,4.56713,0,0,0-.63971,2.76363.26831.26831,0,0,1-.00022.07847c-.04755.26965.08362.33085.33058.32722.79992-.0118,1.60005-.00444,2.40007-.00449.78691-.00011,1.574-.00867,2.36063.005a.42382.42382,0,0,0,.468-.30155q2.2371-5.26009,4.49933-10.50957C10.71419,36.45537,10.64313,36.41465,10.35328,36.41665Z"
+ id="path12"
+ style="fill:#00ff00;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M56.50972,33.07251c.27556.00395.35073-.04517.20678-.32306q-1.84245-3.55622-3.662-7.12426a.37438.37438,0,0,0-.39026-.23889c-1.32362.0085-2.64724.011-3.97086-.00114-.295-.00265-.28682.08936-.18869.31363q1.55066,3.54251,3.084,7.09258a.40116.40116,0,0,0,.43911.28254c.74684-.01272,1.49389-.00482,2.24095-.00492S55.76278,33.06178,56.50972,33.07251Z"
+ id="path14"
+ style="fill:#00ff00;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M15.16478,25.386c-1.32481.01089-2.64973.00731-3.97465.00141a.3497.3497,0,0,0-.36871.21138q-1.833,3.58717-3.68361,7.16531c-.135.26072-.05935.31033.19735.30746.76082-.0084,1.52163-.003,2.28255-.00287.73449.00016,1.4693-.00623,2.20368.00406a.40064.40064,0,0,0,.44724-.27014q1.52937-3.55558,3.08408-7.10011C15.45214,25.4755,15.4594,25.38365,15.16478,25.386Z"
+ id="path16"
+ style="fill:#00ff00;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M18.813,17.63272a1.46569,1.46569,0,0,0-.19475-.03255c-1.16689-.00173-2.334.00385-3.50077-.0072-.216-.00206-.28769.11-.36871.27285q-1.26015,2.53158-2.53611,5.05537c-.14059.27653-.10918.3451.20688.34169q1.82881-.0195,3.65816.00037a.42428.42428,0,0,0,.46131-.31211c.50963-1.22023,1.03854-2.43239,1.56008-3.6477C18.33508,18.75363,18.56926,18.20311,18.813,17.63272Z"
+ id="path18"
+ style="fill:#00ff00;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M51.52622,23.26055c.23732.00341.26407-.05763.15868-.26608q-1.30336-2.57676-2.58745-5.16315a.374.374,0,0,0-.39275-.23727c-1.11458.008-2.22936.01035-3.34393-.00081-.27058-.00271-.3126.06418-.206.30951q1.10417,2.54,2.1869,5.08912a.3726.3726,0,0,0,.40792.27073c.6161-.014,1.23263-.00487,1.849-.005C50.24105,23.25741,50.8838,23.25139,51.52622,23.26055Z"
+ id="path20"
+ style="fill:#00ff00;fill-opacity:1" />
+</svg>
diff --git a/app/images/AGL_Icons_LaneDeparture_red.svg b/app/images/AGL_Icons_LaneDeparture_red.svg
new file mode 100644
index 0000000..7ed9204
--- /dev/null
+++ b/app/images/AGL_Icons_LaneDeparture_red.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="Layer_1"
+ data-name="Layer 1"
+ viewBox="0 0 64 64"
+ version="1.1"
+ sodipodi:docname="AGL_Icons_LaneDeparture_red.svg"
+ inkscape:version="0.92.4 (unknown)">
+ <metadata
+ id="metadata25">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>AGL-new-icons-2</dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1343"
+ inkscape:window-height="823"
+ id="namedview23"
+ showgrid="false"
+ inkscape:zoom="3.6875"
+ inkscape:cx="32.542373"
+ inkscape:cy="32"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="Layer_1" />
+ <defs
+ id="defs4">
+ <style
+ id="style2">.cls-1{fill:#666;}</style>
+ </defs>
+ <title
+ id="title6">AGL-new-icons-2</title>
+ <path
+ class="cls-1"
+ d="M44.939,30.57106a3.59,3.59,0,0,0,1.73739-.9482c.32452-.35506.30892-.53367-.06369-.847a4.65066,4.65066,0,0,0-1.72547-.82423,1.18976,1.18976,0,0,0-1.56452.52073c-.624-1.29616-1.27076-2.53741-1.94015-3.769a2.98654,2.98654,0,0,0-2.418-1.6105,49.46189,49.46189,0,0,0-9.25755-.4488,35.4494,35.4494,0,0,0-4.41582.46554,2.24164,2.24164,0,0,0-1.59853,1.01524,19.18645,19.18645,0,0,0-1.03322,1.71659c-.43273.83534-.8557,1.67576-1.294,2.5359a1.09192,1.09192,0,0,0-1.39923-.5627,4.85856,4.85856,0,0,0-1.27314.50789c-.33156.19665-.77.3686-.775.816-.0053.48119.43338.69365.79948.88683.4155.21923.86.38393,1.29373.568.12456.05281.241.08942.21143.271a2.9427,2.9427,0,0,1-.99575,2.02729,2.78619,2.78619,0,0,0-1.122,2.38664c.01928,2.94906.00693,5.89839.00693,8.84756,0,.10485-.00411.21019.00379.3145a.67061.67061,0,0,0,.72594.70812q1.55406.01494,3.10834-.00065a.66748.66748,0,0,0,.71337-.71976,6.56669,6.56669,0,0,0-.00466-.94289c-.045-.3953.11167-.46652.47962-.46582q9.28587.01747,18.57152.00829a.437.437,0,0,0,.07864-.0006c.33134-.06147.40315.10491.38127.39817-.02123.28677-.00617.57641-.00455.86474.0038.63019.22617.85927.847.86144.905.00325,1.81.0013,2.71494.001.78237-.00027.98459-.19746.98492-.96872q.00162-3.55875-.00076-7.11744c-.00119-.78616-.00314-1.5727-.02957-2.35826a2.04205,2.04205,0,0,0-.89945-1.67185,2.8569,2.8569,0,0,1-1.15075-1.934C44.572,30.81109,44.61555,30.66443,44.939,30.57106ZM19.25013,36.00061c.4142-.70118.81865-1.38287,1.2191-2.06694.07506-.12835.19074-.11595.30794-.11595,1.678.00005,3.35606.00569,5.03409-.00552.30393-.002.28346.092.1745.30848-.22952.45585-.44247.92014-.65542,1.38411a.36477.36477,0,0,1-.343.26337c-1.85935.0846-3.71827.1777-5.5774.26684A.84379.84379,0,0,1,19.25013,36.00061Zm4.73406-6.21647c-.33242.00114-.3999-.04679-.2409-.37477q.97614-2.01394,1.89986-4.05318a.77975.77975,0,0,1,.6291-.505,26.80857,26.80857,0,0,1,3.60086-.30248,64.44194,64.44194,0,0,1,7.46546.14184c1.57112.12132,1.57393.09852,2.21722,1.52888.47778,1.06242.94138,2.13144,1.43508,3.18644.15283.32663.07994.38-.25216.37889-2.79238-.0098-5.58477-.00558-8.37726-.00558C29.569,29.77884,26.77657,29.77477,23.98419,29.78414ZM45.506,36.04919c-1.58564-.0782-3.0778-.15159-4.56985-.22557a6.588,6.588,0,0,0-.90292-.0398.65985.65985,0,0,1-.75518-.50687c-.18825-.48179-.43142-.94218-.6734-1.45956,1.149,0,2.23477-.00005,3.32042,0,.65586.00006,1.31182-.0007,1.96756.001.13973.00038.28119-.02843.37629.13583C44.66105,34.631,45.06333,35.30181,45.506,36.04919Z"
+ id="path8"
+ style="fill:#ff0000;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M63.26062,45.5394q-2.24376-4.392-4.47778-8.789a.51334.51334,0,0,0-.53443-.33594c-1.587.01527-3.17431.01257-4.76146.00255-.282-.00179-.33415.05123-.217.32348q2.26846,5.2692,4.51375,10.54829a.40042.40042,0,0,0,.44691.27377q1.1802-.01494,2.361-.00162c.96954.01126,1.93961-.0404,2.90839.02789v-1.652A1.02426,1.02426,0,0,1,63.26062,45.5394Z"
+ id="path10"
+ style="fill:#ff0000;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M10.35328,36.41665c-1.57372.01089-3.14766.01332-4.72138-.00216a.5381.5381,0,0,0-.56227.35468C3.782,39.31751,2.50709,41.87307,1.16722,44.394a4.56713,4.56713,0,0,0-.63971,2.76363.26831.26831,0,0,1-.00022.07847c-.04755.26965.08362.33085.33058.32722.79992-.0118,1.60005-.00444,2.40007-.00449.78691-.00011,1.574-.00867,2.36063.005a.42382.42382,0,0,0,.468-.30155q2.2371-5.26009,4.49933-10.50957C10.71419,36.45537,10.64313,36.41465,10.35328,36.41665Z"
+ id="path12"
+ style="fill:#ff0000;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M56.50972,33.07251c.27556.00395.35073-.04517.20678-.32306q-1.84245-3.55622-3.662-7.12426a.37438.37438,0,0,0-.39026-.23889c-1.32362.0085-2.64724.011-3.97086-.00114-.295-.00265-.28682.08936-.18869.31363q1.55066,3.54251,3.084,7.09258a.40116.40116,0,0,0,.43911.28254c.74684-.01272,1.49389-.00482,2.24095-.00492S55.76278,33.06178,56.50972,33.07251Z"
+ id="path14"
+ style="fill:#ff0000;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M15.16478,25.386c-1.32481.01089-2.64973.00731-3.97465.00141a.3497.3497,0,0,0-.36871.21138q-1.833,3.58717-3.68361,7.16531c-.135.26072-.05935.31033.19735.30746.76082-.0084,1.52163-.003,2.28255-.00287.73449.00016,1.4693-.00623,2.20368.00406a.40064.40064,0,0,0,.44724-.27014q1.52937-3.55558,3.08408-7.10011C15.45214,25.4755,15.4594,25.38365,15.16478,25.386Z"
+ id="path16"
+ style="fill:#ff0000;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M18.813,17.63272a1.46569,1.46569,0,0,0-.19475-.03255c-1.16689-.00173-2.334.00385-3.50077-.0072-.216-.00206-.28769.11-.36871.27285q-1.26015,2.53158-2.53611,5.05537c-.14059.27653-.10918.3451.20688.34169q1.82881-.0195,3.65816.00037a.42428.42428,0,0,0,.46131-.31211c.50963-1.22023,1.03854-2.43239,1.56008-3.6477C18.33508,18.75363,18.56926,18.20311,18.813,17.63272Z"
+ id="path18"
+ style="fill:#ff0000;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M51.52622,23.26055c.23732.00341.26407-.05763.15868-.26608q-1.30336-2.57676-2.58745-5.16315a.374.374,0,0,0-.39275-.23727c-1.11458.008-2.22936.01035-3.34393-.00081-.27058-.00271-.3126.06418-.206.30951q1.10417,2.54,2.1869,5.08912a.3726.3726,0,0,0,.40792.27073c.6161-.014,1.23263-.00487,1.849-.005C50.24105,23.25741,50.8838,23.25139,51.52622,23.26055Z"
+ id="path20"
+ style="fill:#ff0000;fill-opacity:1" />
+</svg>
diff --git a/app/images/AGL_Icons_LaneDeparture_white.svg b/app/images/AGL_Icons_LaneDeparture_white.svg
new file mode 100644
index 0000000..4c94dd6
--- /dev/null
+++ b/app/images/AGL_Icons_LaneDeparture_white.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="Layer_1"
+ data-name="Layer 1"
+ viewBox="0 0 64 64"
+ version="1.1"
+ sodipodi:docname="AGL_Icons_LaneDeparture_white.svg"
+ inkscape:version="0.92.4 (unknown)">
+ <metadata
+ id="metadata25">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>AGL-new-icons-2</dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1343"
+ inkscape:window-height="823"
+ id="namedview23"
+ showgrid="false"
+ inkscape:zoom="3.6875"
+ inkscape:cx="32.542373"
+ inkscape:cy="32"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="Layer_1" />
+ <defs
+ id="defs4">
+ <style
+ id="style2">.cls-1{fill:#666;}</style>
+ </defs>
+ <title
+ id="title6">AGL-new-icons-2</title>
+ <path
+ class="cls-1"
+ d="M44.939,30.57106a3.59,3.59,0,0,0,1.73739-.9482c.32452-.35506.30892-.53367-.06369-.847a4.65066,4.65066,0,0,0-1.72547-.82423,1.18976,1.18976,0,0,0-1.56452.52073c-.624-1.29616-1.27076-2.53741-1.94015-3.769a2.98654,2.98654,0,0,0-2.418-1.6105,49.46189,49.46189,0,0,0-9.25755-.4488,35.4494,35.4494,0,0,0-4.41582.46554,2.24164,2.24164,0,0,0-1.59853,1.01524,19.18645,19.18645,0,0,0-1.03322,1.71659c-.43273.83534-.8557,1.67576-1.294,2.5359a1.09192,1.09192,0,0,0-1.39923-.5627,4.85856,4.85856,0,0,0-1.27314.50789c-.33156.19665-.77.3686-.775.816-.0053.48119.43338.69365.79948.88683.4155.21923.86.38393,1.29373.568.12456.05281.241.08942.21143.271a2.9427,2.9427,0,0,1-.99575,2.02729,2.78619,2.78619,0,0,0-1.122,2.38664c.01928,2.94906.00693,5.89839.00693,8.84756,0,.10485-.00411.21019.00379.3145a.67061.67061,0,0,0,.72594.70812q1.55406.01494,3.10834-.00065a.66748.66748,0,0,0,.71337-.71976,6.56669,6.56669,0,0,0-.00466-.94289c-.045-.3953.11167-.46652.47962-.46582q9.28587.01747,18.57152.00829a.437.437,0,0,0,.07864-.0006c.33134-.06147.40315.10491.38127.39817-.02123.28677-.00617.57641-.00455.86474.0038.63019.22617.85927.847.86144.905.00325,1.81.0013,2.71494.001.78237-.00027.98459-.19746.98492-.96872q.00162-3.55875-.00076-7.11744c-.00119-.78616-.00314-1.5727-.02957-2.35826a2.04205,2.04205,0,0,0-.89945-1.67185,2.8569,2.8569,0,0,1-1.15075-1.934C44.572,30.81109,44.61555,30.66443,44.939,30.57106ZM19.25013,36.00061c.4142-.70118.81865-1.38287,1.2191-2.06694.07506-.12835.19074-.11595.30794-.11595,1.678.00005,3.35606.00569,5.03409-.00552.30393-.002.28346.092.1745.30848-.22952.45585-.44247.92014-.65542,1.38411a.36477.36477,0,0,1-.343.26337c-1.85935.0846-3.71827.1777-5.5774.26684A.84379.84379,0,0,1,19.25013,36.00061Zm4.73406-6.21647c-.33242.00114-.3999-.04679-.2409-.37477q.97614-2.01394,1.89986-4.05318a.77975.77975,0,0,1,.6291-.505,26.80857,26.80857,0,0,1,3.60086-.30248,64.44194,64.44194,0,0,1,7.46546.14184c1.57112.12132,1.57393.09852,2.21722,1.52888.47778,1.06242.94138,2.13144,1.43508,3.18644.15283.32663.07994.38-.25216.37889-2.79238-.0098-5.58477-.00558-8.37726-.00558C29.569,29.77884,26.77657,29.77477,23.98419,29.78414ZM45.506,36.04919c-1.58564-.0782-3.0778-.15159-4.56985-.22557a6.588,6.588,0,0,0-.90292-.0398.65985.65985,0,0,1-.75518-.50687c-.18825-.48179-.43142-.94218-.6734-1.45956,1.149,0,2.23477-.00005,3.32042,0,.65586.00006,1.31182-.0007,1.96756.001.13973.00038.28119-.02843.37629.13583C44.66105,34.631,45.06333,35.30181,45.506,36.04919Z"
+ id="path8"
+ style="fill:#ffffff;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M63.26062,45.5394q-2.24376-4.392-4.47778-8.789a.51334.51334,0,0,0-.53443-.33594c-1.587.01527-3.17431.01257-4.76146.00255-.282-.00179-.33415.05123-.217.32348q2.26846,5.2692,4.51375,10.54829a.40042.40042,0,0,0,.44691.27377q1.1802-.01494,2.361-.00162c.96954.01126,1.93961-.0404,2.90839.02789v-1.652A1.02426,1.02426,0,0,1,63.26062,45.5394Z"
+ id="path10"
+ style="fill:#ffffff;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M10.35328,36.41665c-1.57372.01089-3.14766.01332-4.72138-.00216a.5381.5381,0,0,0-.56227.35468C3.782,39.31751,2.50709,41.87307,1.16722,44.394a4.56713,4.56713,0,0,0-.63971,2.76363.26831.26831,0,0,1-.00022.07847c-.04755.26965.08362.33085.33058.32722.79992-.0118,1.60005-.00444,2.40007-.00449.78691-.00011,1.574-.00867,2.36063.005a.42382.42382,0,0,0,.468-.30155q2.2371-5.26009,4.49933-10.50957C10.71419,36.45537,10.64313,36.41465,10.35328,36.41665Z"
+ id="path12"
+ style="fill:#ffffff;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M56.50972,33.07251c.27556.00395.35073-.04517.20678-.32306q-1.84245-3.55622-3.662-7.12426a.37438.37438,0,0,0-.39026-.23889c-1.32362.0085-2.64724.011-3.97086-.00114-.295-.00265-.28682.08936-.18869.31363q1.55066,3.54251,3.084,7.09258a.40116.40116,0,0,0,.43911.28254c.74684-.01272,1.49389-.00482,2.24095-.00492S55.76278,33.06178,56.50972,33.07251Z"
+ id="path14"
+ style="fill:#ffffff;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M15.16478,25.386c-1.32481.01089-2.64973.00731-3.97465.00141a.3497.3497,0,0,0-.36871.21138q-1.833,3.58717-3.68361,7.16531c-.135.26072-.05935.31033.19735.30746.76082-.0084,1.52163-.003,2.28255-.00287.73449.00016,1.4693-.00623,2.20368.00406a.40064.40064,0,0,0,.44724-.27014q1.52937-3.55558,3.08408-7.10011C15.45214,25.4755,15.4594,25.38365,15.16478,25.386Z"
+ id="path16"
+ style="fill:#ffffff;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M18.813,17.63272a1.46569,1.46569,0,0,0-.19475-.03255c-1.16689-.00173-2.334.00385-3.50077-.0072-.216-.00206-.28769.11-.36871.27285q-1.26015,2.53158-2.53611,5.05537c-.14059.27653-.10918.3451.20688.34169q1.82881-.0195,3.65816.00037a.42428.42428,0,0,0,.46131-.31211c.50963-1.22023,1.03854-2.43239,1.56008-3.6477C18.33508,18.75363,18.56926,18.20311,18.813,17.63272Z"
+ id="path18"
+ style="fill:#ffffff;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M51.52622,23.26055c.23732.00341.26407-.05763.15868-.26608q-1.30336-2.57676-2.58745-5.16315a.374.374,0,0,0-.39275-.23727c-1.11458.008-2.22936.01035-3.34393-.00081-.27058-.00271-.3126.06418-.206.30951q1.10417,2.54,2.1869,5.08912a.3726.3726,0,0,0,.40792.27073c.6161-.014,1.23263-.00487,1.849-.005C50.24105,23.25741,50.8838,23.25139,51.52622,23.26055Z"
+ id="path20"
+ style="fill:#ffffff;fill-opacity:1" />
+</svg>
diff --git a/app/images/AGL_Icons_LaneDeparture_yellow.svg b/app/images/AGL_Icons_LaneDeparture_yellow.svg
new file mode 100644
index 0000000..341083b
--- /dev/null
+++ b/app/images/AGL_Icons_LaneDeparture_yellow.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="Layer_1"
+ data-name="Layer 1"
+ viewBox="0 0 64 64"
+ version="1.1"
+ sodipodi:docname="AGL_Icons_LaneDeparture_yellow.svg"
+ inkscape:version="0.92.4 (unknown)">
+ <metadata
+ id="metadata25">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>AGL-new-icons-2</dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1343"
+ inkscape:window-height="823"
+ id="namedview23"
+ showgrid="false"
+ inkscape:zoom="3.6875"
+ inkscape:cx="-7.1864406"
+ inkscape:cy="32"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="Layer_1" />
+ <defs
+ id="defs4">
+ <style
+ id="style2">.cls-1{fill:#666;}</style>
+ </defs>
+ <title
+ id="title6">AGL-new-icons-2</title>
+ <path
+ class="cls-1"
+ d="M44.939,30.57106a3.59,3.59,0,0,0,1.73739-.9482c.32452-.35506.30892-.53367-.06369-.847a4.65066,4.65066,0,0,0-1.72547-.82423,1.18976,1.18976,0,0,0-1.56452.52073c-.624-1.29616-1.27076-2.53741-1.94015-3.769a2.98654,2.98654,0,0,0-2.418-1.6105,49.46189,49.46189,0,0,0-9.25755-.4488,35.4494,35.4494,0,0,0-4.41582.46554,2.24164,2.24164,0,0,0-1.59853,1.01524,19.18645,19.18645,0,0,0-1.03322,1.71659c-.43273.83534-.8557,1.67576-1.294,2.5359a1.09192,1.09192,0,0,0-1.39923-.5627,4.85856,4.85856,0,0,0-1.27314.50789c-.33156.19665-.77.3686-.775.816-.0053.48119.43338.69365.79948.88683.4155.21923.86.38393,1.29373.568.12456.05281.241.08942.21143.271a2.9427,2.9427,0,0,1-.99575,2.02729,2.78619,2.78619,0,0,0-1.122,2.38664c.01928,2.94906.00693,5.89839.00693,8.84756,0,.10485-.00411.21019.00379.3145a.67061.67061,0,0,0,.72594.70812q1.55406.01494,3.10834-.00065a.66748.66748,0,0,0,.71337-.71976,6.56669,6.56669,0,0,0-.00466-.94289c-.045-.3953.11167-.46652.47962-.46582q9.28587.01747,18.57152.00829a.437.437,0,0,0,.07864-.0006c.33134-.06147.40315.10491.38127.39817-.02123.28677-.00617.57641-.00455.86474.0038.63019.22617.85927.847.86144.905.00325,1.81.0013,2.71494.001.78237-.00027.98459-.19746.98492-.96872q.00162-3.55875-.00076-7.11744c-.00119-.78616-.00314-1.5727-.02957-2.35826a2.04205,2.04205,0,0,0-.89945-1.67185,2.8569,2.8569,0,0,1-1.15075-1.934C44.572,30.81109,44.61555,30.66443,44.939,30.57106ZM19.25013,36.00061c.4142-.70118.81865-1.38287,1.2191-2.06694.07506-.12835.19074-.11595.30794-.11595,1.678.00005,3.35606.00569,5.03409-.00552.30393-.002.28346.092.1745.30848-.22952.45585-.44247.92014-.65542,1.38411a.36477.36477,0,0,1-.343.26337c-1.85935.0846-3.71827.1777-5.5774.26684A.84379.84379,0,0,1,19.25013,36.00061Zm4.73406-6.21647c-.33242.00114-.3999-.04679-.2409-.37477q.97614-2.01394,1.89986-4.05318a.77975.77975,0,0,1,.6291-.505,26.80857,26.80857,0,0,1,3.60086-.30248,64.44194,64.44194,0,0,1,7.46546.14184c1.57112.12132,1.57393.09852,2.21722,1.52888.47778,1.06242.94138,2.13144,1.43508,3.18644.15283.32663.07994.38-.25216.37889-2.79238-.0098-5.58477-.00558-8.37726-.00558C29.569,29.77884,26.77657,29.77477,23.98419,29.78414ZM45.506,36.04919c-1.58564-.0782-3.0778-.15159-4.56985-.22557a6.588,6.588,0,0,0-.90292-.0398.65985.65985,0,0,1-.75518-.50687c-.18825-.48179-.43142-.94218-.6734-1.45956,1.149,0,2.23477-.00005,3.32042,0,.65586.00006,1.31182-.0007,1.96756.001.13973.00038.28119-.02843.37629.13583C44.66105,34.631,45.06333,35.30181,45.506,36.04919Z"
+ id="path8"
+ style="fill:#ffff00;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M63.26062,45.5394q-2.24376-4.392-4.47778-8.789a.51334.51334,0,0,0-.53443-.33594c-1.587.01527-3.17431.01257-4.76146.00255-.282-.00179-.33415.05123-.217.32348q2.26846,5.2692,4.51375,10.54829a.40042.40042,0,0,0,.44691.27377q1.1802-.01494,2.361-.00162c.96954.01126,1.93961-.0404,2.90839.02789v-1.652A1.02426,1.02426,0,0,1,63.26062,45.5394Z"
+ id="path10"
+ style="fill:#ffff00;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M10.35328,36.41665c-1.57372.01089-3.14766.01332-4.72138-.00216a.5381.5381,0,0,0-.56227.35468C3.782,39.31751,2.50709,41.87307,1.16722,44.394a4.56713,4.56713,0,0,0-.63971,2.76363.26831.26831,0,0,1-.00022.07847c-.04755.26965.08362.33085.33058.32722.79992-.0118,1.60005-.00444,2.40007-.00449.78691-.00011,1.574-.00867,2.36063.005a.42382.42382,0,0,0,.468-.30155q2.2371-5.26009,4.49933-10.50957C10.71419,36.45537,10.64313,36.41465,10.35328,36.41665Z"
+ id="path12"
+ style="fill:#ffff00;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M56.50972,33.07251c.27556.00395.35073-.04517.20678-.32306q-1.84245-3.55622-3.662-7.12426a.37438.37438,0,0,0-.39026-.23889c-1.32362.0085-2.64724.011-3.97086-.00114-.295-.00265-.28682.08936-.18869.31363q1.55066,3.54251,3.084,7.09258a.40116.40116,0,0,0,.43911.28254c.74684-.01272,1.49389-.00482,2.24095-.00492S55.76278,33.06178,56.50972,33.07251Z"
+ id="path14"
+ style="fill:#ffff00;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M15.16478,25.386c-1.32481.01089-2.64973.00731-3.97465.00141a.3497.3497,0,0,0-.36871.21138q-1.833,3.58717-3.68361,7.16531c-.135.26072-.05935.31033.19735.30746.76082-.0084,1.52163-.003,2.28255-.00287.73449.00016,1.4693-.00623,2.20368.00406a.40064.40064,0,0,0,.44724-.27014q1.52937-3.55558,3.08408-7.10011C15.45214,25.4755,15.4594,25.38365,15.16478,25.386Z"
+ id="path16"
+ style="fill:#ffff00;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M18.813,17.63272a1.46569,1.46569,0,0,0-.19475-.03255c-1.16689-.00173-2.334.00385-3.50077-.0072-.216-.00206-.28769.11-.36871.27285q-1.26015,2.53158-2.53611,5.05537c-.14059.27653-.10918.3451.20688.34169q1.82881-.0195,3.65816.00037a.42428.42428,0,0,0,.46131-.31211c.50963-1.22023,1.03854-2.43239,1.56008-3.6477C18.33508,18.75363,18.56926,18.20311,18.813,17.63272Z"
+ id="path18"
+ style="fill:#ffff00;fill-opacity:1" />
+ <path
+ class="cls-1"
+ d="M51.52622,23.26055c.23732.00341.26407-.05763.15868-.26608q-1.30336-2.57676-2.58745-5.16315a.374.374,0,0,0-.39275-.23727c-1.11458.008-2.22936.01035-3.34393-.00081-.27058-.00271-.3126.06418-.206.30951q1.10417,2.54,2.1869,5.08912a.3726.3726,0,0,0,.40792.27073c.6161-.014,1.23263-.00487,1.849-.005C50.24105,23.25741,50.8838,23.25139,51.52622,23.26055Z"
+ id="path20"
+ style="fill:#ffff00;fill-opacity:1" />
+</svg>
diff --git a/app/images/images.qrc b/app/images/images.qrc
index 9a8e2de..6b4f2d2 100644
--- a/app/images/images.qrc
+++ b/app/images/images.qrc
@@ -10,9 +10,17 @@
<file>AGL_Icons_Battery.svg</file>
<file>AGL_Icons_Battery_red.svg</file>
<file>AGL_Icons_Battery_yellow.svg</file>
+ <file>AGL_Icons_CruiseControl.svg</file>
+ <file>AGL_Icons_CruiseControl_green.svg</file>
+ <file>AGL_Icons_CruiseControl_white.svg</file>
+ <file>AGL_Icons_CruiseControl_yellow.svg</file>
<file>AGL_Icons_Engine.svg</file>
<file>AGL_Icons_Engine_red.svg</file>
<file>AGL_Icons_Engine_yellow.svg</file>
+ <file>AGL_Icons_LaneDeparture.svg</file>
+ <file>AGL_Icons_LaneDeparture_green.svg</file>
+ <file>AGL_Icons_LaneDeparture_yellow.svg</file>
+ <file>AGL_Icons_LaneDeparture_white.svg</file>
<file>AGL_Icons_Lights.svg</file>
<file>AGL_Icons_Lights_red.svg</file>
<file>AGL_Icons_Lights_yellow.svg</file>
diff --git a/app/main.cpp b/app/main.cpp
index 4f36ef7..a5b9ece 100644
--- a/app/main.cpp
+++ b/app/main.cpp
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2016 The Qt Company Ltd.
- * Copyright (C) 2018 Konsulko Group
+ * Copyright (C) 2018, 2019 Konsulko Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,8 +24,45 @@
#include <QtQml/qqml.h>
#include <QQuickWindow>
#include <QtQuickControls2/QQuickStyle>
+#include <glib.h>
#include <qlibwindowmanager.h>
+#include <signalcomposer.h>
+
+// Global indicating whether canned animation should run
+bool runAnimation = true;
+
+void read_config(void)
+{
+ GKeyFile* conf_file;
+ gboolean value;
+
+ // Load settings from configuration file if it exists
+ conf_file = g_key_file_new();
+ if(conf_file &&
+ g_key_file_load_from_dirs(conf_file,
+ "AGL.conf",
+ (const gchar**) g_get_system_config_dirs(),
+ NULL,
+ G_KEY_FILE_KEEP_COMMENTS,
+ NULL) == TRUE) {
+ GError *err = NULL;
+ value = g_key_file_get_boolean(conf_file,
+ "dashboard",
+ "animation",
+ &err);
+ if(value) {
+ runAnimation = true;
+ } else {
+ if(err == NULL) {
+ runAnimation = false;
+ } else {
+ qWarning("Invalid value for \"animation\" key!");
+ }
+ }
+ }
+
+}
int main(int argc, char *argv[])
{
@@ -78,6 +115,10 @@ int main(int argc, char *argv[])
qwm->endDraw(myname);
});
+ context->setContextProperty("SignalComposer", new SignalComposer(bindingAddress, context));
+ read_config();
+ context->setContextProperty("runAnimation", runAnimation);
+
engine.load(QUrl(QStringLiteral("qrc:/cluster-gauges.qml")));
// Find the instantiated model QObject and connect the signals/slots