diff --git a/Models/FlightDeck/a320.flightdeck.xml b/Models/FlightDeck/a320.flightdeck.xml index 6ff48909..38dbf05f 100644 --- a/Models/FlightDeck/a320.flightdeck.xml +++ b/Models/FlightDeck/a320.flightdeck.xml @@ -1136,10 +1136,10 @@ <!-- Clock --> <text> - <name>chrono1</name> + <name>chrono_min</name> <offsets> <x-m>-0.553</x-m> - <y-m>0.160</y-m> + <y-m>0.152</y-m> <z-m>0.2155</z-m> <heading-deg>90</heading-deg> <roll-deg>72.81</roll-deg> @@ -1148,15 +1148,15 @@ <axis-alignment>xy-plane</axis-alignment> <type type="string">text-value</type> <format type="string">%s</format> - <property>instrumentation/chrono/chr-et-string</property> + <property>instrumentation/clock/chrono/chr-et-min</property> <truncate>false</truncate> <layout>left-to-right</layout> <draw-text type="bool">true</draw-text> <!-- draw the text itself --> <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> - <font type="string">Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> - <character-size>0.010</character-size> <!-- size (height) im meters --> - <character-aspect-ratio>1.0</character-aspect-ratio> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.008</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.0</character-aspect-ratio> <max-height>0.012</max-height> <!-- the maximum height of the text --> <max-width>0.050</max-width> <!-- the maximum width of the text --> <font-resolution> @@ -1167,7 +1167,100 @@ </text> <text> - <name>chrono2_1</name> + <name>chrono_sep</name> + <offsets> + <x-m>-0.553</x-m> + <y-m>0.160</y-m> + <z-m>0.2155</z-m> + <heading-deg>90</heading-deg> + <roll-deg>72.81</roll-deg> + </offsets> + <alignment>center-center</alignment> + <axis-alignment>xy-plane</axis-alignment> + <type type="string">literal</type> + <format type="string">%s</format> + <text type="string">:</text> + <truncate>false</truncate> + <layout>left-to-right</layout> + <draw-text type="bool">true</draw-text> <!-- draw the text itself --> + <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> + <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.008</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.0</character-aspect-ratio> + <max-height>0.012</max-height> <!-- the maximum height of the text --> + <max-width>0.050</max-width> <!-- the maximum width of the text --> + <font-resolution> + <width type="int">32</width> + <height type="int">32</height> + </font-resolution> + <kerning>default</kerning> + </text> + + <text> + <name>chrono_sec</name> + <offsets> + <x-m>-0.553</x-m> + <y-m>0.168</y-m> + <z-m>0.2155</z-m> + <heading-deg>90</heading-deg> + <roll-deg>72.81</roll-deg> + </offsets> + <alignment>center-center</alignment> + <axis-alignment>xy-plane</axis-alignment> + <type type="string">text-value</type> + <format type="string">%s</format> + <property>instrumentation/clock/chrono/chr-et-sec</property> + <truncate>false</truncate> + <layout>left-to-right</layout> + <draw-text type="bool">true</draw-text> <!-- draw the text itself --> + <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> + <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.008</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.0</character-aspect-ratio> + <max-height>0.012</max-height> <!-- the maximum height of the text --> + <max-width>0.050</max-width> <!-- the maximum width of the text --> + <font-resolution> + <width type="int">32</width> + <height type="int">32</height> + </font-resolution> + <kerning>default</kerning> + </text> + + <text> + <name>clock_hh</name> + <offsets> + <x-m>-0.547</x-m> + <y-m>0.146</y-m> + <z-m>0.196</z-m> + <heading-deg>90</heading-deg> + <roll-deg>72.81</roll-deg> + </offsets> + <alignment>center-center</alignment> + <axis-alignment>xy-plane</axis-alignment> + <type type="string">text-value</type> + <format type="string">%s</format> + <property>instrumentation/clock/indicated-hours</property> + <truncate>false</truncate> + <layout>left-to-right</layout> + <draw-text type="bool">true</draw-text> <!-- draw the text itself --> + <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> + <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.008</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.0</character-aspect-ratio> + <max-height>0.012</max-height> <!-- the maximum height of the text --> + <max-width>0.060</max-width> <!-- the maximum width of the text --> + <font-resolution> + <width type="int">32</width> + <height type="int">32</height> + </font-resolution> + <kerning>default</kerning> + </text> + + <text> + <name>clock_mm</name> <offsets> <x-m>-0.547</x-m> <y-m>0.167</y-m> @@ -1179,15 +1272,15 @@ <axis-alignment>xy-plane</axis-alignment> <type type="string">text-value</type> <format type="string">%s</format> - <property>instrumentation/clock/clock_hh_mm</property> + <property>instrumentation/clock/indicated-minutes</property> <truncate>false</truncate> <layout>left-to-right</layout> <draw-text type="bool">true</draw-text> <!-- draw the text itself --> <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> - <font type="string">Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> - <character-size>0.010</character-size> <!-- size (height) im meters --> - <character-aspect-ratio>1.0</character-aspect-ratio> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.008</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.0</character-aspect-ratio> <max-height>0.012</max-height> <!-- the maximum height of the text --> <max-width>0.060</max-width> <!-- the maximum width of the text --> <font-resolution> @@ -1198,7 +1291,7 @@ </text> <text> - <name>chrono2_2</name> + <name>clock_sec</name> <offsets> <x-m>-0.547</x-m> <y-m>0.175</y-m> @@ -1216,9 +1309,9 @@ <draw-text type="bool">true</draw-text> <!-- draw the text itself --> <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> - <font type="string">Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> - <character-size>0.008</character-size> <!-- size (height) im meters --> - <character-aspect-ratio>1.0</character-aspect-ratio> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.006</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.0</character-aspect-ratio> <max-height>0.012</max-height> <!-- the maximum height of the text --> <max-width>0.060</max-width> <!-- the maximum width of the text --> <font-resolution> @@ -1229,7 +1322,7 @@ </text> <text> - <name>UTC_1</name> + <name>UTC1</name> <offsets> <x-m>-0.547</x-m> <y-m>0.146</y-m> @@ -1241,15 +1334,15 @@ <axis-alignment>xy-plane</axis-alignment> <type type="string">text-value</type> <format type="string">%s</format> - <property>instrumentation/clock/utc-date1</property> + <property>instrumentation/clock/date-month</property> <truncate>false</truncate> <layout>left-to-right</layout> <draw-text type="bool">true</draw-text> <!-- draw the text itself --> <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> - <font type="string">Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> - <character-size>0.010</character-size> <!-- size (height) im meters --> - <character-aspect-ratio>1.1</character-aspect-ratio> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.008</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.1</character-aspect-ratio> <max-height>0.012</max-height> <!-- the maximum height of the text --> <max-width>0.060</max-width> <!-- the maximum width of the text --> <font-resolution> @@ -1260,7 +1353,7 @@ </text> <text> - <name>UTC_2</name> + <name>UTC2</name> <offsets> <x-m>-0.547</x-m> <y-m>0.160</y-m> @@ -1272,15 +1365,15 @@ <axis-alignment>xy-plane</axis-alignment> <type type="string">text-value</type> <format type="string">%s</format> - <property>instrumentation/clock/utc-date2</property> + <property>instrumentation/clock/date-day</property> <truncate>false</truncate> <layout>left-to-right</layout> <draw-text type="bool">true</draw-text> <!-- draw the text itself --> <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> - <font type="string">Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> - <character-size>0.010</character-size> <!-- size (height) im meters --> - <character-aspect-ratio>1.0</character-aspect-ratio> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.008</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.1</character-aspect-ratio> <max-height>0.012</max-height> <!-- the maximum height of the text --> <max-width>0.060</max-width> <!-- the maximum width of the text --> <font-resolution> @@ -1291,7 +1384,7 @@ </text> <text> - <name>UTC_3</name> + <name>UTC3</name> <offsets> <x-m>-0.547</x-m> <y-m>0.175</y-m> @@ -1303,15 +1396,15 @@ <axis-alignment>xy-plane</axis-alignment> <type type="string">text-value</type> <format type="string">%s</format> - <property>instrumentation/clock/utc-date3</property> + <property>instrumentation/clock/date-year</property> <truncate>false</truncate> <layout>left-to-right</layout> <draw-text type="bool">true</draw-text> <!-- draw the text itself --> <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> - <font type="string">Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> - <character-size>0.008</character-size> <!-- size (height) im meters --> - <character-aspect-ratio>1.0</character-aspect-ratio> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.006</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.0</character-aspect-ratio> <max-height>0.012</max-height> <!-- the maximum height of the text --> <max-width>0.060</max-width> <!-- the maximum width of the text --> <font-resolution> @@ -1322,10 +1415,227 @@ </text> <text> - <name>chrono3</name> + <name>clock_int_hh</name> + <offsets> + <x-m>-0.547</x-m> + <y-m>0.146</y-m> + <z-m>0.196</z-m> + <heading-deg>90</heading-deg> + <roll-deg>72.81</roll-deg> + </offsets> + <alignment>center-center</alignment> + <axis-alignment>xy-plane</axis-alignment> + <type type="string">text-value</type> + <format type="string">%s</format> + <property>instrumentation/clock/internal/indicated-hours</property> + <truncate>false</truncate> + <layout>left-to-right</layout> + <draw-text type="bool">true</draw-text> <!-- draw the text itself --> + <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> + <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.008</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.0</character-aspect-ratio> + <max-height>0.012</max-height> <!-- the maximum height of the text --> + <max-width>0.060</max-width> <!-- the maximum width of the text --> + <font-resolution> + <width type="int">32</width> + <height type="int">32</height> + </font-resolution> + <kerning>default</kerning> + </text> + + <text> + <name>clock_int_sep</name> + <offsets> + <x-m>-0.547</x-m> + <y-m>0.1535</y-m> + <z-m>0.195</z-m> + <heading-deg>90</heading-deg> + <roll-deg>72.81</roll-deg> + </offsets> + <alignment>center-center</alignment> + <axis-alignment>xy-plane</axis-alignment> + <type type="string">literal</type> + <format type="string">%s</format> + <text type="string">:</text> + <truncate>false</truncate> + <layout>left-to-right</layout> + <draw-text type="bool">true</draw-text> <!-- draw the text itself --> + <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> + <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.008</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.0</character-aspect-ratio> + <max-height>0.012</max-height> <!-- the maximum height of the text --> + <max-width>0.060</max-width> <!-- the maximum width of the text --> + <font-resolution> + <width type="int">32</width> + <height type="int">32</height> + </font-resolution> + <kerning>default</kerning> + </text> + + <text> + <name>clock_int_mm</name> + <offsets> + <x-m>-0.547</x-m> + <y-m>0.167</y-m> + <z-m>0.196</z-m> + <heading-deg>90</heading-deg> + <roll-deg>72.81</roll-deg> + </offsets> + <alignment>right-center</alignment> + <axis-alignment>xy-plane</axis-alignment> + <type type="string">text-value</type> + <format type="string">%s</format> + <property>instrumentation/clock/internal/indicated-minutes</property> + <truncate>false</truncate> + <layout>left-to-right</layout> + <draw-text type="bool">true</draw-text> <!-- draw the text itself --> + <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> + <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.008</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.0</character-aspect-ratio> + <max-height>0.012</max-height> <!-- the maximum height of the text --> + <max-width>0.060</max-width> <!-- the maximum width of the text --> + <font-resolution> + <width type="int">32</width> + <height type="int">32</height> + </font-resolution> + <kerning>default</kerning> + </text> + + <text> + <name>clock_int_sec</name> + <offsets> + <x-m>-0.547</x-m> + <y-m>0.175</y-m> + <z-m>0.196</z-m> + <heading-deg>90</heading-deg> + <roll-deg>72.81</roll-deg> + </offsets> + <alignment>center-center</alignment> + <axis-alignment>xy-plane</axis-alignment> + <type type="string">text-value</type> + <format type="string">%s</format> + <property>instrumentation/clock/internal/indicated-seconds</property> + <truncate>false</truncate> + <layout>left-to-right</layout> + <draw-text type="bool">true</draw-text> <!-- draw the text itself --> + <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> + <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.006</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.0</character-aspect-ratio> + <max-height>0.012</max-height> <!-- the maximum height of the text --> + <max-width>0.060</max-width> <!-- the maximum width of the text --> + <font-resolution> + <width type="int">32</width> + <height type="int">32</height> + </font-resolution> + <kerning>default</kerning> + </text> + + <text> + <name>clock_int_UTC1</name> + <offsets> + <x-m>-0.547</x-m> + <y-m>0.146</y-m> + <z-m>0.196</z-m> + <heading-deg>90</heading-deg> + <roll-deg>72.81</roll-deg> + </offsets> + <alignment>center-center</alignment> + <axis-alignment>xy-plane</axis-alignment> + <type type="string">text-value</type> + <format type="string">%s</format> + <property>instrumentation/clock/internal/date-month</property> + <truncate>false</truncate> + <layout>left-to-right</layout> + <draw-text type="bool">true</draw-text> <!-- draw the text itself --> + <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> + <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.008</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.1</character-aspect-ratio> + <max-height>0.012</max-height> <!-- the maximum height of the text --> + <max-width>0.060</max-width> <!-- the maximum width of the text --> + <font-resolution> + <width type="int">32</width> + <height type="int">32</height> + </font-resolution> + <kerning>default</kerning> + </text> + + <text> + <name>clock_int_UTC2</name> + <offsets> + <x-m>-0.547</x-m> + <y-m>0.160</y-m> + <z-m>0.196</z-m> + <heading-deg>90</heading-deg> + <roll-deg>72.81</roll-deg> + </offsets> + <alignment>center-center</alignment> + <axis-alignment>xy-plane</axis-alignment> + <type type="string">text-value</type> + <format type="string">%s</format> + <property>instrumentation/clock/internal/date-day</property> + <truncate>false</truncate> + <layout>left-to-right</layout> + <draw-text type="bool">true</draw-text> <!-- draw the text itself --> + <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> + <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.008</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.1</character-aspect-ratio> + <max-height>0.012</max-height> <!-- the maximum height of the text --> + <max-width>0.060</max-width> <!-- the maximum width of the text --> + <font-resolution> + <width type="int">32</width> + <height type="int">32</height> + </font-resolution> + <kerning>default</kerning> + </text> + + <text> + <name>clock_int_UTC3</name> + <offsets> + <x-m>-0.547</x-m> + <y-m>0.175</y-m> + <z-m>0.196</z-m> + <heading-deg>90</heading-deg> + <roll-deg>72.81</roll-deg> + </offsets> + <alignment>center-center</alignment> + <axis-alignment>xy-plane</axis-alignment> + <type type="string">text-value</type> + <format type="string">%s</format> + <property>instrumentation/clock/internal/date-year</property> + <truncate>false</truncate> + <layout>left-to-right</layout> + <draw-text type="bool">true</draw-text> <!-- draw the text itself --> + <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> + <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.006</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.0</character-aspect-ratio> + <max-height>0.012</max-height> <!-- the maximum height of the text --> + <max-width>0.060</max-width> <!-- the maximum width of the text --> + <font-resolution> + <width type="int">32</width> + <height type="int">32</height> + </font-resolution> + <kerning>default</kerning> + </text> + + <text> + <name>ET_clock_hh</name> <offsets> <x-m>-0.54</x-m> - <y-m>0.1595</y-m> + <y-m>0.151</y-m> <z-m>0.1785</z-m> <heading-deg>90</heading-deg> <roll-deg>72.81</roll-deg> @@ -1334,15 +1644,77 @@ <axis-alignment>xy-plane</axis-alignment> <type type="string">text-value</type> <format type="string">%s</format> - <property>instrumentation/clock/elapsed-string</property> + <property>instrumentation/clock/et/indicated-hours</property> <truncate>false</truncate> <layout>left-to-right</layout> <draw-text type="bool">true</draw-text> <!-- draw the text itself --> <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> - <font type="string">Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> - <character-size>0.010</character-size> <!-- size (height) im meters --> - <character-aspect-ratio>1.0</character-aspect-ratio> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.008</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.0</character-aspect-ratio> + <max-height>0.012</max-height> <!-- the maximum height of the text --> + <max-width>0.040</max-width> <!-- the maximum width of the text --> + <font-resolution> + <width type="int">32</width> + <height type="int">32</height> + </font-resolution> + <kerning>default</kerning> + </text> + + <text> + <name>ET_clock_sep</name> + <offsets> + <x-m>-0.54</x-m> + <y-m>0.159</y-m> + <z-m>0.1775</z-m> + <heading-deg>90</heading-deg> + <roll-deg>72.81</roll-deg> + </offsets> + <alignment>center-center</alignment> + <axis-alignment>xy-plane</axis-alignment> + <type type="string">literal</type> + <format type="string">%s</format> + <text type="string">:</text> + <truncate>false</truncate> + <layout>left-to-right</layout> + <draw-text type="bool">true</draw-text> <!-- draw the text itself --> + <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> + <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.008</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.0</character-aspect-ratio> + <max-height>0.012</max-height> <!-- the maximum height of the text --> + <max-width>0.040</max-width> <!-- the maximum width of the text --> + <font-resolution> + <width type="int">32</width> + <height type="int">32</height> + </font-resolution> + <kerning>default</kerning> + </text> + + <text> + <name>ET_clock_mm</name> + <offsets> + <x-m>-0.54</x-m> + <y-m>0.166</y-m> + <z-m>0.1785</z-m> + <heading-deg>90</heading-deg> + <roll-deg>72.81</roll-deg> + </offsets> + <alignment>center-center</alignment> + <axis-alignment>xy-plane</axis-alignment> + <type type="string">text-value</type> + <format type="string">%s</format> + <property>instrumentation/clock/et/indicated-min</property> + <truncate>false</truncate> + <layout>left-to-right</layout> + <draw-text type="bool">true</draw-text> <!-- draw the text itself --> + <draw-alignment type="bool">false</draw-alignment> <!-- draw crosshair at object center --> + <draw-boundingbox type="bool">false</draw-boundingbox> <!-- draw a bounding box --> + <font>Airbus7Seg.ttf</font> <!-- The font file name, relative to data/Fonts --> + <character-size type="double">0.008</character-size> <!-- size (height) im meters --> + <character-aspect-ratio type="double">1.0</character-aspect-ratio> <max-height>0.012</max-height> <!-- the maximum height of the text --> <max-width>0.040</max-width> <!-- the maximum width of the text --> <font-resolution> @@ -2162,13 +2534,25 @@ <!-- Clock Digit Lighting --> <animation> <type>material</type> - <object-name>chrono1</object-name> - <object-name>chrono2_1</object-name> - <object-name>chrono2_2</object-name> - <object-name>chrono3</object-name> - <object-name>UTC_1</object-name> - <object-name>UTC_2</object-name> - <object-name>UTC_3</object-name> + <object-name>chrono_min</object-name> + <object-name>chrono_sep</object-name> + <object-name>chrono_sec</object-name> + <object-name>clock_hh</object-name> + <object-name>clock_mm</object-name> + <object-name>clock_sec</object-name> + <object-name>clock_int_hh</object-name> + <object-name>clock_int_sep</object-name> + <object-name>clock_int_mm</object-name> + <object-name>clock_int_sec</object-name> + <object-name>UTC1</object-name> + <object-name>UTC2</object-name> + <object-name>UTC3</object-name> + <object-name>clock_int_UTC1</object-name> + <object-name>clock_int_UTC2</object-name> + <object-name>clock_int_UTC3</object-name> + <object-name>ET_clock_hh</object-name> + <object-name>ET_clock_sep</object-name> + <object-name>ET_clock_mm</object-name> <emission> <red>1.0</red> <green>1.0</green> @@ -2202,10 +2586,11 @@ </condition> </animation> - <!-- Chrono show / hide --> + <!-- Chrono --> <animation> <type>select</type> - <object-name>chrono1</object-name> + <object-name>chrono_min</object-name> + <object-name>chrono_sec</object-name> <condition> <and> <greater-than-equals> @@ -2213,18 +2598,21 @@ <value>25</value> </greater-than-equals> <or> - <property>controls/switches/annun-test</property> <equals> - <property>instrumentation/chrono/chrono-reset</property> + <property>controls/switches/annun-test</property> + <value>1</value> + </equals> + <equals> + <property>instrumentation/clock/chrono/chrono-reset</property> <value>0</value> </equals> <and> <equals> - <property>instrumentation/chrono/chrono-reset</property> + <property>instrumentation/clock/chrono/chrono-reset</property> <value>1</value> </equals> <greater-than> - <property>instrumentation/chrono/elapsetime-sec</property> + <property>instrumentation/clock/chrono/elapsetime-sec</property> <value>0</value> </greater-than> </and> @@ -2235,107 +2623,44 @@ <animation> <type>select</type> - <object-name>chrono2_1</object-name> + <object-name>chrono_sep</object-name> <condition> <and> <greater-than-equals> <property>systems/electrical/bus/dc-ess</property> <value>25</value> </greater-than-equals> - <property>instrumentation/clock/serviceable</property> <or> <equals> - <property>instrumentation/clock/set-knob</property> + <property>controls/switches/annun-test</property> + <value>1</value> + </equals> + <equals> + <property>instrumentation/clock/chrono/chrono-reset</property> <value>0</value> </equals> <and> <equals> - <property>instrumentation/clock/set-knob</property> + <property>instrumentation/clock/chrono/chrono-reset</property> <value>1</value> </equals> - <equals> - <property>instrumentation/clock/utc-selector</property> - <value>2</value> - </equals> + <greater-than> + <property>instrumentation/clock/chrono/elapsetime-sec</property> + <value>0</value> + </greater-than> </and> </or> - </and> - </condition> - </animation> - - <animation> - <type>select</type> - <object-name>chrono2_2</object-name> - <condition> - <and> - <greater-than-equals> - <property>systems/electrical/bus/dc-ess</property> - <value>25</value> - </greater-than-equals> - <property>instrumentation/clock/serviceable</property> - <not-equals> - <property>instrumentation/chrono[0]/chrono-reset</property> - <value>2</value> - </not-equals> - <or> - <equals> - <property>instrumentation/clock/set-knob</property> - <value>0</value> - </equals> - <and> - <equals> - <property>instrumentation/clock/set-knob</property> - <value>1</value> - </equals> - <equals> - <property>instrumentation/clock/utc-selector</property> - <value>2</value> - </equals> - </and> - </or> - </and> - </condition> - </animation> - - <animation> - <type>select</type> - <object-name>UTC_1</object-name> - <object-name>UTC_2</object-name> - <object-name>UTC_3</object-name> - <condition> - <and> - <greater-than-equals> - <property>systems/electrical/bus/dc-ess</property> - <value>25</value> - </greater-than-equals> <not> - <and> - <property>instrumentation/clock/serviceable</property> - <or> - <equals> - <property>instrumentation/clock/set-knob</property> - <value>0</value> - </equals> - <and> - <equals> - <property>instrumentation/clock/set-knob</property> - <value>1</value> - </equals> - <equals> - <property>instrumentation/clock/utc-selector</property> - <value>2</value> - </equals> - </and> - </or> - </and> + <property>instrumentation/clock/chrono/paused</property> </not> </and> </condition> </animation> + <!-- Clock GPS mode--> <animation> <type>select</type> - <object-name>chrono3</object-name> + <object-name>clock_hh</object-name> <condition> <and> <greater-than-equals> @@ -2343,10 +2668,432 @@ <value>25</value> </greater-than-equals> <property>instrumentation/clock/serviceable</property> + <equals> + <!-- Clock in UTC Mode --> + <property>instrumentation/clock/utc-selector</property> + <value>0</value> + </equals> + <equals> + <!-- Clock not in Date Mode --> + <property>instrumentation/clock/set-knob</property> + <value>0</value> + </equals> </and> </condition> </animation> - + + <animation> + <type>select</type> + <object-name>clock_mm</object-name> + <condition> + <and> + <greater-than-equals> + <property>systems/electrical/bus/dc-ess</property> + <value>25</value> + </greater-than-equals> + <property>instrumentation/clock/serviceable</property> + <equals> + <!-- Clock in UTC Mode --> + <property>instrumentation/clock/utc-selector</property> + <value>0</value> + </equals> + <equals> + <!-- Clock not in Date Mode --> + <property>instrumentation/clock/set-knob</property> + <value>0</value> + </equals> + </and> + </condition> + </animation> + + <animation> + <type>select</type> + <object-name>clock_sec</object-name> + <condition> + <and> + <greater-than-equals> + <property>systems/electrical/bus/dc-ess</property> + <value>25</value> + </greater-than-equals> + <property>instrumentation/clock/serviceable</property> + <equals> + <!-- Clock in UTC Mode --> + <property>instrumentation/clock/utc-selector</property> + <value>0</value> + </equals> + <equals> + <!-- Clock not in Date Mode --> + <property>instrumentation/clock/set-knob</property> + <value>0</value> + </equals> + </and> + </condition> + </animation> + + <animation> + <type>select</type> + <object-name>UTC1</object-name> + <object-name>UTC2</object-name> + <condition> + <and> + <greater-than-equals> + <property>systems/electrical/bus/dc-ess</property> + <value>25</value> + </greater-than-equals> + <property>instrumentation/clock/serviceable</property> + <equals> + <!-- Clock in UTC Mode --> + <property>instrumentation/clock/utc-selector</property> + <value>0</value> + </equals> + <equals> + <!-- Clock in Date Mode --> + <property>instrumentation/clock/set-knob</property> + <value>1</value> + </equals> + </and> + </condition> + </animation> + + <animation> + <type>select</type> + <object-name>UTC3</object-name> + <condition> + <and> + <greater-than-equals> + <property>systems/electrical/bus/dc-ess</property> + <value>25</value> + </greater-than-equals> + <property>instrumentation/clock/serviceable</property> + <equals> + <!-- Clock in UTC Mode --> + <property>instrumentation/clock/utc-selector</property> + <value>0</value> + </equals> + <equals> + <!-- Clock in Date Mode --> + <property>instrumentation/clock/set-knob</property> + <value>1</value> + </equals> + </and> + </condition> + </animation> + + <!-- Clock INT and SET mode--> + <animation> + <type>select</type> + <object-name>clock_int_hh</object-name> + <condition> + <or> + <and> + <greater-than-equals> + <property>systems/electrical/bus/dc-ess</property> + <value>25</value> + </greater-than-equals> + <property>instrumentation/clock/serviceable</property> + <equals> + <!-- Clock not in UTC Mode --> + <property>instrumentation/clock/utc-selector</property> + <value>1</value> + </equals> + <equals> + <!-- Clock not in Date Mode --> + <property>instrumentation/clock/set-knob</property> + <value>0</value> + </equals> + </and> + <and> + <equals> + <property>instrumentation/clock/set-knob</property> + <value>0</value> + </equals> + <less-than-equals> + <property>instrumentation/clock/internal/set-cont</property> + <value>2</value> + </less-than-equals> + <equals> + <property>instrumentation/clock/utc-selector</property> + <value>2</value> + </equals> + <equals> + <property>instrumentation/clock/internal/blink-hh</property> + <value>1</value> + </equals> + </and> + </or> + </condition> + </animation> + + <animation> + <type>select</type> + <object-name>clock_int_sep</object-name> + <condition> + <or> + <and> + <greater-than-equals> + <property>systems/electrical/bus/dc-ess</property> + <value>25</value> + </greater-than-equals> + <property>instrumentation/clock/serviceable</property> + <not-equals> + <!-- Clock not in SET Mode --> + <property>instrumentation/clock/utc-selector</property> + <value>2</value> + </not-equals> + <equals> + <!-- Clock not in Date Mode --> + <property>instrumentation/clock/set-knob</property> + <value>0</value> + </equals> + </and> + <and> + <!-- Clock in SET Mode --> + <equals> + <property>instrumentation/clock/set-knob</property> + <value>0</value> + </equals> + <less-than-equals> + <property>instrumentation/clock/internal/set-cont</property> + <value>2</value> + </less-than-equals> + <equals> + <property>instrumentation/clock/utc-selector</property> + <value>2</value> + </equals> + </and> + </or> + </condition> + </animation> + + <animation> + <type>select</type> + <object-name>clock_int_mm</object-name> + <condition> + <or> + <and> + <greater-than-equals> + <property>systems/electrical/bus/dc-ess</property> + <value>25</value> + </greater-than-equals> + <property>instrumentation/clock/serviceable</property> + <equals> + <!-- Clock not in UTC Mode --> + <property>instrumentation/clock/utc-selector</property> + <value>1</value> + </equals> + <equals> + <!-- Clock not in Date Mode --> + <property>instrumentation/clock/set-knob</property> + <value>0</value> + </equals> + </and> + <and> + <equals> + <property>instrumentation/clock/set-knob</property> + <value>0</value> + </equals> + <less-than-equals> + <property>instrumentation/clock/internal/set-cont</property> + <value>2</value> + </less-than-equals> + <equals> + <property>instrumentation/clock/utc-selector</property> + <value>2</value> + </equals> + <equals> + <property>instrumentation/clock/internal/blink-mm</property> + <value>1</value> + </equals> + </and> + </or> + </condition> + </animation> + + <animation> + <type>select</type> + <object-name>clock_int_sec</object-name> + <condition> + <and> + <greater-than-equals> + <property>systems/electrical/bus/dc-ess</property> + <value>25</value> + </greater-than-equals> + <property>instrumentation/clock/serviceable</property> + <equals> + <!-- Clock not in UTC Mode --> + <property>instrumentation/clock/utc-selector</property> + <value>1</value> + </equals> + <equals> + <!-- Clock not in Date Mode --> + <property>instrumentation/clock/set-knob</property> + <value>0</value> + </equals> + </and> + </condition> + </animation> + + <animation> + <type>select</type> + <object-name>clock_int_UTC1</object-name> + <condition> + <and> + <greater-than-equals> + <property>systems/electrical/bus/dc-ess</property> + <value>25</value> + </greater-than-equals> + <property>instrumentation/clock/serviceable</property> + <or> + <and> + <equals> + <!-- Clock in INT Mode --> + <property>instrumentation/clock/utc-selector</property> + <value>1</value> + </equals> + <equals> + <!-- Clock in Date Mode --> + <property>instrumentation/clock/set-knob</property> + <value>1</value> + </equals> + </and> + <and> + <equals> + <property>instrumentation/clock/internal/blink-month</property> + <value>1</value> + </equals> + <greater-than> + <property>instrumentation/clock/internal/set-cont</property> + <value>2</value> + </greater-than> + <equals> + <property>instrumentation/clock/utc-selector</property> + <value>2</value> + </equals> + </and> + </or> + </and> + </condition> + </animation> + + <animation> + <type>select</type> + <object-name>clock_int_UTC2</object-name> + <condition> + <and> + <greater-than-equals> + <property>systems/electrical/bus/dc-ess</property> + <value>25</value> + </greater-than-equals> + <property>instrumentation/clock/serviceable</property> + <or> + <and> + <equals> + <!-- Clock in INT Mode --> + <property>instrumentation/clock/utc-selector</property> + <value>1</value> + </equals> + <equals> + <!-- Clock in Date Mode --> + <property>instrumentation/clock/set-knob</property> + <value>1</value> + </equals> + </and> + <and> + <equals> + <property>instrumentation/clock/internal/blink-day</property> + <value>1</value> + </equals> + <greater-than> + <property>instrumentation/clock/internal/set-cont</property> + <value>2</value> + </greater-than> + <equals> + <property>instrumentation/clock/utc-selector</property> + <value>2</value> + </equals> + </and> + </or> + </and> + </condition> + </animation> + + <animation> + <type>select</type> + <object-name>clock_int_UTC3</object-name> + <condition> + <and> + <greater-than-equals> + <property>systems/electrical/bus/dc-ess</property> + <value>25</value> + </greater-than-equals> + <property>instrumentation/clock/serviceable</property> + <or> + <and> + <equals> + <!-- Clock in INT Mode --> + <property>instrumentation/clock/utc-selector</property> + <value>1</value> + </equals> + <equals> + <!-- Clock in Date Mode --> + <property>instrumentation/clock/set-knob</property> + <value>1</value> + </equals> + </and> + <and> + <equals> + <property>instrumentation/clock/internal/blink-year</property> + <value>1</value> + </equals> + <greater-than> + <property>instrumentation/clock/internal/set-cont</property> + <value>2</value> + </greater-than> + <equals> + <property>instrumentation/clock/utc-selector</property> + <value>2</value> + </equals> + </and> + </or> + </and> + </condition> + </animation> + + <animation> + <type>select</type> + <object-name>ET_clock_hh</object-name> + <object-name>ET_clock_mm</object-name> + <condition> + <and> + <greater-than-equals> + <property>systems/electrical/bus/dc-ess</property> + <value>25</value> + </greater-than-equals> + <property>instrumentation/clock/serviceable</property> + <property>instrumentation/clock/et/visible</property> + </and> + </condition> + </animation> + + <animation> + <type>select</type> + <object-name>ET_clock_sep</object-name> + <condition> + <and> + <greater-than-equals> + <property>systems/electrical/bus/dc-ess</property> + <value>25</value> + </greater-than-equals> + <property>instrumentation/clock/serviceable</property> + <property>instrumentation/clock/et/visible</property> + <equals> + <property>instrumentation/clock/et/et-selector</property> + <value>0</value> + </equals> + </and> + </condition> + </animation> + <!-- FCU autopilot modes show / hide --> <animation> <type>select</type> @@ -6808,7 +7555,7 @@ </axis> </animation> - <!-- Chrono --> + <!-- ND_L chrono --> <animation> <type>pick</type> <object-name>chrono_cpt</object-name> @@ -6864,7 +7611,8 @@ <z2-m>0.478435</z2-m> </axis> </animation> - + + <!-- ND_R chrono --> <animation> <type>pick</type> <object-name>chrono_fo</object-name> @@ -6981,21 +7729,19 @@ </binding> </hovered> </animation> - - <!-- Clock --> - + <!-- Chrono --> <animation> <type>pick</type> <object-name>chrono_reset</object-name> - <property>instrumentation/chrono/chrono-reset</property> + <property>instrumentation/clock/chrono/chrono-reset-btn</property> <action> <button>0</button> <repeatable>false</repeatable> <binding> <command>property-assign</command> - <property>instrumentation/chrono/chrono-reset</property> - <value>2</value> + <property>instrumentation/clock/chrono/chrono-reset-btn</property> + <value>1</value> </binding> <binding> <command>property-assign</command> @@ -7007,6 +7753,11 @@ <script>setprop("sim/sound/btn1", 1);</script> </binding> <mod-up> + <binding> + <command>property-assign</command> + <property>instrumentation/clock/chrono/chrono-reset-btn</property> + <value>0</value> + </binding> <binding> <command>property-assign</command> <property>controls/cockpit/clock-chrono-reset-translate</property> @@ -7025,7 +7776,7 @@ </binding> </hovered> </animation> - + <animation> <type>translate</type> <object-name>chrono_reset</object-name> @@ -7043,15 +7794,14 @@ <animation> <type>pick</type> <object-name>chrono_btn</object-name> - <property>instrumentation/chrono/chrono-reset</property> + <property>instrumentation/clock/chrono/chrono-btn</property> <action> <button>0</button> <repeatable>false</repeatable> <binding> - <command>property-cycle</command> - <property>instrumentation/chrono/chrono-reset</property> - <value>1</value><!-- Start Timer --> - <value>0</value><!-- Stop Timer --> + <command>property-assign</command> + <property>instrumentation/clock/chrono/chrono-btn</property> + <value>1</value><!-- Start / Pause Timer --> </binding> <binding> <command>property-assign</command> @@ -7063,6 +7813,11 @@ <script>setprop("sim/sound/btn1", 1);</script> </binding> <mod-up> + <binding> + <command>property-assign</command> + <property>instrumentation/clock/chrono/chrono-btn</property> + <value>0</value> + </binding> <binding> <command>property-assign</command> <property>controls/cockpit/clock-chrono-translate</property> @@ -7081,7 +7836,7 @@ </binding> </hovered> </animation> - + <animation> <type>translate</type> <object-name>chrono_btn</object-name> @@ -7106,10 +7861,9 @@ <button>1</button> <repeatable>false</repeatable> <binding> - <command>property-cycle</command> + <command>property-assign</command> <property>instrumentation/clock/set-knob</property> - <value>0</value><!-- Date Mode --> - <value>1</value><!-- Time Mode --> + <value>1</value><!-- Date Mode --> </binding> <binding> <command>property-assign</command> @@ -7126,6 +7880,11 @@ <property>controls/cockpit/clock-set-translate</property> <value>0.0</value> </binding> + <binding> + <command>property-assign</command> + <property>instrumentation/clock/set-knob</property> + <value>0</value><!-- Time Mode --> + </binding> </mod-up> </action> <hovered> @@ -7139,7 +7898,245 @@ </binding> </hovered> </animation> - + + <animation> + <type>knob</type> + <object-name>clock_set</object-name> + <action> + <binding> + <condition> + <and> + <equals> + <property>instrumentation/clock/utc-selector</property> + <value>2</value> + </equals> + <equals> + <property>instrumentation/clock/internal/set-cont</property> + <value>5</value> + </equals> + <or> + <equals> + <property>instrumentation/clock/internal/month</property> + <value>1</value> + </equals> + <equals> + <property>instrumentation/clock/internal/month</property> + <value>3</value> + </equals> + <equals> + <property>instrumentation/clock/internal/month</property> + <value>5</value> + </equals> + <equals> + <property>instrumentation/clock/internal/month</property> + <value>7</value> + </equals> + <equals> + <property>instrumentation/clock/internal/month</property> + <value>8</value> + </equals> + <equals> + <property>instrumentation/clock/internal/month</property> + <value>10</value> + </equals> + <equals> + <property>instrumentation/clock/internal/month</property> + <value>12</value> + </equals> + </or> + </and> + </condition> + <command>property-adjust</command> + <property>instrumentation/clock/internal/day</property> + <factor>1</factor> + <min>1</min> + <max>32</max> + <wrap>true</wrap> + </binding> + <binding> + <condition> + <and> + <equals> + <property>instrumentation/clock/utc-selector</property> + <value>2</value> + </equals> + <equals> + <property>instrumentation/clock/internal/set-cont</property> + <value>5</value> + </equals> + <or> + <equals> + <property>instrumentation/clock/internal/month</property> + <value>11</value> + </equals> + <equals> + <property>instrumentation/clock/internal/month</property> + <value>4</value> + </equals> + <equals> + <property>instrumentation/clock/internal/month</property> + <value>6</value> + </equals> + <equals> + <property>instrumentation/clock/internal/month</property> + <value>9</value> + </equals> + </or> + </and> + </condition> + <command>property-adjust</command> + <property>instrumentation/clock/internal/day</property> + <factor>1</factor> + <min>1</min> + <max>31</max> + <wrap>true</wrap> + </binding> + <binding> + <condition> + <and> + <equals> + <property>instrumentation/clock/utc-selector</property> + <value>2</value> + </equals> + <equals> + <property>instrumentation/clock/internal/set-cont</property> + <value>5</value> + </equals> + <equals> + <property>instrumentation/clock/internal/month</property> + <value>2</value> + </equals> + <property>instrumentation/clock/internal/bisextile-year</property> + </and> + </condition> + <command>property-adjust</command> + <property>instrumentation/clock/internal/day</property> + <factor>1</factor> + <min>1</min> + <max>30</max> + <wrap>true</wrap> + </binding> + <binding> + <condition> + <and> + <equals> + <property>instrumentation/clock/utc-selector</property> + <value>2</value> + </equals> + <equals> + <property>instrumentation/clock/internal/set-cont</property> + <value>5</value> + </equals> + <equals> + <property>instrumentation/clock/internal/month</property> + <value>2</value> + </equals> + <not> + <property>instrumentation/clock/internal/bisextile-year</property> + </not> + </and> + </condition> + <command>property-adjust</command> + <property>instrumentation/clock/internal/day</property> + <factor>1</factor> + <min>1</min> + <max>29</max> + <wrap>true</wrap> + </binding> + <binding> + <command>property-adjust</command> + <property>instrumentation/clock/set-knb-pos</property> + <factor>1</factor> + <min>0</min> + <max>32</max> + <wrap>true</wrap> + </binding> + <binding> + <condition> + <and> + <equals> + <property>instrumentation/clock/utc-selector</property> + <value>2</value> + </equals> + <equals> + <property>instrumentation/clock/internal/set-cont</property> + <value>2</value> + </equals> + </and> + </condition> + <command>property-adjust</command> + <property>instrumentation/clock/internal/hr</property> + <factor>1</factor> + <min>0</min> + <max>24</max> + <wrap>true</wrap> + </binding> + <binding> + <condition> + <and> + <equals> + <property>instrumentation/clock/utc-selector</property> + <value>2</value> + </equals> + <or> + <equals> + <property>instrumentation/clock/internal/set-cont</property> + <value>0</value> + </equals> + <equals> + <property>instrumentation/clock/internal/set-cont</property> + <value>1</value> + </equals> + </or> + </and> + </condition> + <command>property-adjust</command> + <property>instrumentation/clock/internal/min</property> + <factor>1</factor> + <min>0</min> + <max>60</max> + <wrap>true</wrap> + </binding> + <binding> + <condition> + <and> + <equals> + <property>instrumentation/clock/utc-selector</property> + <value>2</value> + </equals> + <equals> + <property>instrumentation/clock/internal/set-cont</property> + <value>3</value> + </equals> + </and> + </condition> + <command>property-adjust</command> + <property>instrumentation/clock/internal/year</property> + <factor>1</factor> + </binding> + <binding> + <condition> + <and> + <equals> + <property>instrumentation/clock/utc-selector</property> + <value>2</value> + </equals> + <equals> + <property>instrumentation/clock/internal/set-cont</property> + <value>4</value> + </equals> + </and> + </condition> + <command>property-adjust</command> + <property>instrumentation/clock/internal/month</property> + <factor>1</factor> + <min>1</min> + <max>13</max> + <wrap>true</wrap> + </binding> + </action> + </animation> + <animation> <type>translate</type> <object-name>clock_set</object-name> @@ -7154,6 +8151,16 @@ </axis> </animation> + <animation> + <type>rotate</type> + <object-name>clock_set</object-name> + <property>instrumentation/clock/set-knb-pos</property> + <factor>11.25</factor> + <axis> + <object-name>clock_set.axis</object-name> + </axis> + </animation> + <!-- Clock source switch --> <animation> <name>UTC selector animation</name> @@ -7184,7 +8191,7 @@ </condition> <command>set-tooltip</command> <tooltip-id>utc-select-lbl</tooltip-id> - <label>(INOP) Select Clock Source</label> + <label>Select Clock Source</label> </binding> </hovered> </animation> @@ -7193,7 +8200,7 @@ <animation> <type>knob</type> <object-name>et_knob</object-name> - <property>instrumentation/clock/et-selector-pos</property> + <property>instrumentation/clock/et/et-selector-pos</property> <factor>22.5</factor> <axis> <object-name>et_knob.axis</object-name> @@ -7201,7 +8208,7 @@ <action> <binding> <command>property-adjust</command> - <property>instrumentation/clock/et-selector</property> + <property>instrumentation/clock/et/et-selector</property> <min>0</min> <max>2</max> <wrap>false</wrap> @@ -7215,7 +8222,7 @@ <release> <binding> <command>property-adjust</command> - <property>instrumentation/clock/et-selector</property> + <property>instrumentation/clock/et/et-selector</property> <step>0</step> <min>0</min> <max>1</max> @@ -8698,7 +9705,7 @@ <property>systems/electrical/bus/dc-ess</property> <value>25</value> </greater-than-equals> - <equals> + <equals> <property>instrumentation/mk-viii/inputs/discretes/ta-tcf-inhibit</property> <value>0</value> </equals> @@ -38676,7 +39683,7 @@ <animation> <type>pick</type> - <object-name>KBMode.Toggle.fo.002</object-name> + <object-name>KBMode.Toggle.fo</object-name> <action> <button>0</button> <repeatable>false</repeatable> diff --git a/Models/FlightDeck/res/fd_complete.ac b/Models/FlightDeck/res/fd_complete.ac index c9e5f3c6..5e24c130 100644 --- a/Models/FlightDeck/res/fd_complete.ac +++ b/Models/FlightDeck/res/fd_complete.ac @@ -176709,6 +176709,22 @@ refs 4 13 0.034037 0.584912 kids 0 OBJECT poly +name "clock_set.axis" +data 15 +clock_set.axis +texture "Clock.jpg" +texrep 1 1 +numvert 2 +-0.5393 0.20018 -0.12967 +-0.54672 0.19795 -0.12967 +numsurf 1 +SURF 0X12 +mat 18 +refs 2 +0 0 0 +1 0 0 +kids 0 +OBJECT poly name "et_knob" data 10 clock_knob diff --git a/Nasal/Panels/clock.nas b/Nasal/Panels/clock.nas index 21e35621..77a3d7d8 100644 --- a/Nasal/Panels/clock.nas +++ b/Nasal/Panels/clock.nas @@ -1,342 +1,697 @@ -# -# Chrono - Clock - ET -# -var chr = aircraft.timer.new("/instrumentation/chrono[0]/elapsetime-sec",1); -var clk = aircraft.timer.new("/instrumentation/clock/elapsetime-sec",1); -var chrono_cpt = aircraft.timer.new("/instrumentation/ndchrono[0]/elapsetime-sec",1); -var chrono_fo = aircraft.timer.new("/instrumentation/ndchrono[1]/elapsetime-sec",1); -var chrono_cpt_node = props.globals.getNode("/instrumentation/ndchrono[0]/elapsetime-sec"); -var chrono_fo_node = props.globals.getNode("/instrumentation/ndchrono[1]/elapsetime-sec"); +# Chrono - Clock - ET clock + +var cpt_timer = aircraft.timer.new("/instrumentation/ndchrono[0]/elapsetime-sec",1,0); +var fo_timer = aircraft.timer.new("/instrumentation/ndchrono[1]/elapsetime-sec",1,0); +var clock_timer = aircraft.timer.new("/instrumentation/clock/et/elapsetime-sec",1,0); +var clock_int_et = aircraft.timer.new("/instrumentation/clock/internal/elapsetime-sec",1,0); +var chrono_timer = aircraft.timer.new("/instrumentation/clock/chrono/elapsetime-sec",1,0); var chr_min = nil; var chr_sec = nil; var chr_tmp = nil; -var clock2_1 = nil; -var clock2_2 = nil; -var day = nil; var et_hr = nil; var et_min = nil; var et_tmp = nil; -var month = nil; var rudder_val = nil; var tmp = nil; var tmp1 = nil; -var UTC_date = nil; -var UTC_date1 = nil; -var UTC_date2 = nil; -var UTC_date3 = nil; -var year = nil; +var condition = nil; -var et_selector = props.globals.initNode("/instrumentation/clock/et-selector", 1, "INT"); -var utc_selector = props.globals.initNode("/instrumentation/clock/utc-selector",0,"INT"); -var set_knob = props.globals.initNode("/instrumentation/clock/set-knob",0,"INT"); +var clock_et = { + sec: props.globals.initNode("/instrumentation/clock/et/indicated-sec", 0, "STRING"), + hrs: props.globals.initNode("/instrumentation/clock/et/indicated-hours", 0, "STRING"), + min: props.globals.initNode("/instrumentation/clock/et/indicated-min", 0, "STRING"), + elapsedString: props.globals.initNode("/instrumentation/clock/et/elapsed-string", "", "STRING"), + et: props.globals.getNode("/instrumentation/clock/et/elapsetime-sec"), + et_selector: props.globals.initNode("/instrumentation/clock/et/et-selector", 1, "INT"), + visible: props.globals.initNode("/instrumentation/clock/et/visible", 0, "BOOL"), +}; var clock = { - elapsedHour: props.globals.initNode("/instrumentation/clock/et-hr", 0, "INT"), - elapsedMin: props.globals.initNode("/instrumentation/clock/et-min", 0, "INT"), - elapsedString: props.globals.initNode("/instrumentation/clock/elapsed-string", 0, "STRING"), - elapsedSec: props.globals.initNode("/instrumentation/clock/elapsetime-sec", 0, "INT"), - indicatedSec: props.globals.getNode("/instrumentation/clock/indicated-seconds"), - hhMM: props.globals.initNode("/instrumentation/clock/clock_hh_mm", 0, "STRING"), - utcDate: [props.globals.initNode("/instrumentation/clock/utc-date", "", "STRING"), props.globals.initNode("/instrumentation/clock/utc-date1", "", "STRING"), - props.globals.initNode("/instrumentation/clock/utc-date2", "", "STRING"),props.globals.initNode("/instrumentation/clock/utc-date3", "", "STRING")], + hhMM: props.globals.initNode("/instrumentation/clock/indicated-short-string", "", "STRING"), + indicated_hh: props.globals.initNode("/instrumentation/clock/indicated-hours", "", "STRING"), + indicated_mm: props.globals.initNode("/instrumentation/clock/indicated-minutes", "", "STRING"), + indicated_sec: props.globals.initNode("/instrumentation/clock/indicated-seconds", "", "STRING"), + utcDate: [props.globals.initNode("/instrumentation/clock/date", "", "STRING"), props.globals.initNode("/instrumentation/clock/date-month", "", "STRING"), + props.globals.initNode("/instrumentation/clock/date-day", "", "STRING"), props.globals.initNode("/instrumentation/clock/date-year", "", "STRING")], + mode_selector: props.globals.initNode("/instrumentation/clock/utc-selector", 0,"INT"), + set_knob: props.globals.initNode("/instrumentation/clock/set-knob", 0,"INT"), + set_knb_pos: props.globals.initNode("/instrumentation/clock/set-knb-pos", 0,"INT"), + set_knb_count: props.globals.initNode("/instrumentation/clock/set-knb-count", 0,"INT"), +}; + +var clock_internal = { + mode: props.globals.initNode("/instrumentation/clock/internal/mode", 0,"INT"), + et: props.globals.initNode("/instrumentation/clock/internal/elapsetime-sec", 0, "DOUBLE"), + hrs: props.globals.initNode("/instrumentation/clock/internal/hr", 0, "INT"), + min: props.globals.initNode("/instrumentation/clock/internal/min", 0, "INT"), + sec: props.globals.initNode("/instrumentation/clock/internal/sec", 0, "INT"), + hhMM: props.globals.initNode("/instrumentation/clock/internal/indicated-short-string", "", "STRING"), + bisextile_year: props.globals.initNode("/instrumentation/clock/internal/bisextile-year", 0, "BOOL"), + date: [props.globals.initNode("/instrumentation/clock/internal/date", "", "STRING"), props.globals.initNode("/instrumentation/clock/internal/date-year", "", "STRING"), + props.globals.initNode("/instrumentation/clock/internal/date-month", "", "STRING"), props.globals.initNode("/instrumentation/clock/internal/date-day", "", "STRING")], + year: props.globals.initNode("/instrumentation/clock/internal/year", 0, "INT"), + month: props.globals.initNode("/instrumentation/clock/internal/month", 0, "INT"), + day: props.globals.initNode("/instrumentation/clock/internal/day", 0, "INT"), + set_cont: props.globals.initNode("/instrumentation/clock/internal/set-cont", 0,"INT"), + elapsedString: props.globals.initNode("/instrumentation/clock/internal/elapsed-string", "", "STRING"), + indicated_hh: props.globals.initNode("/instrumentation/clock/internal/indicated-hours", 0, "STRING"), + indicated_mm: props.globals.initNode("/instrumentation/clock/internal/indicated-minutes", 0, "STRING"), + indicated_sec: props.globals.initNode("/instrumentation/clock/internal/indicated-seconds", 0, "STRING"), + blink_hh: props.globals.initNode("/instrumentation/clock/internal/blink-hh", 0, "BOOL"), + blink_mm: props.globals.initNode("/instrumentation/clock/internal/blink-mm", 0, "BOOL"), + blink_day: props.globals.initNode("/instrumentation/clock/internal/blink-day", 0, "BOOL"), + blink_month: props.globals.initNode("/instrumentation/clock/internal/blink-month", 0, "BOOL"), + blink_year: props.globals.initNode("/instrumentation/clock/internal/blink-year", 0, "BOOL"), }; var chrono = { - chronoReset: props.globals.initNode("/instrumentation/chrono[0]/chrono-reset", 1, "INT"), - elapseTime: props.globals.initNode("/instrumentation/chrono[0]/elapsetime-sec", 0, "INT"), - etMin: props.globals.initNode("/instrumentation/chrono[0]/chr-et-min", 0, "INT"), - etSec: props.globals.initNode("/instrumentation/chrono[0]/chr-et-sec", 0, "INT"), - etString: props.globals.initNode("/instrumentation/chrono[0]/chr-et-string", 0, "STRING"), - paused: props.globals.getNode("/instrumentation/chrono[0]/paused"), - started: props.globals.getNode("/instrumentation/chrono[0]/started"), + reset: props.globals.initNode("/instrumentation/clock/chrono/chrono-reset", 1, "INT"), + reset_btn: props.globals.initNode("/instrumentation/clock/chrono/chrono-reset-btn", 0, "INT"), + btn: props.globals.initNode("/instrumentation/clock/chrono/chrono-btn", 0, "INT"), + et: props.globals.initNode("/instrumentation/clock/chrono/elapsetime-sec", 0, "INT"), + etMin: props.globals.initNode("/instrumentation/clock/chrono/chr-et-min", 0, "STRING"), + etSec: props.globals.initNode("/instrumentation/clock/chrono/chr-et-sec", 0, "STRING"), + etString: props.globals.initNode("/instrumentation/clock/chrono/chr-et-string", "", "STRING"), + paused: props.globals.initNode("/instrumentation/clock/chrono/paused", 0, "BOOL"), + started: props.globals.initNode("/instrumentation/clock/chrono/started", 0,"BOOL"), }; #Cpt chrono -var cpt_chrono = { +var cpttimer = { + et: props.globals.initNode("/instrumentation/ndchrono[0]/elapsetime-sec", 0, "INT"), etHh_cpt: props.globals.initNode("/instrumentation/ndchrono[0]/etHh_cpt", 0, "INT"), etMin_cpt: props.globals.initNode("/instrumentation/ndchrono[0]/etMin_cpt", 0, "INT"), etSec_cpt: props.globals.initNode("/instrumentation/ndchrono[0]/etSec_cpt", 0, "INT"), - text: props.globals.initNode("/instrumentation/ndchrono[0]/text", "0' 00''", "STRING"), + text: props.globals.initNode("/instrumentation/ndchrono[0]/text", "", "STRING"), }; #Fo chrono -var fo_chrono = { +var fotimer = { + et: props.globals.initNode("/instrumentation/ndchrono[1]/elapsetime-sec", 0, "INT"), etHh_fo: props.globals.initNode("/instrumentation/ndchrono[1]/etHh_fo", 0, "INT"), etMin_fo: props.globals.initNode("/instrumentation/ndchrono[1]/etMin_fo", 0, "INT"), etSec_fo: props.globals.initNode("/instrumentation/ndchrono[1]/etSec_fo", 0, "INT"), - text: props.globals.initNode("/instrumentation/ndchrono[1]/text", "0' 00''", "STRING"), + text: props.globals.initNode("/instrumentation/ndchrono[1]/text", "", "STRING"), }; +#Rudder Trim Indicator var rudderTrim = { - rudderTrimDisplay: props.globals.initNode("/controls/flight/rudder-trim-display", 0, "STRING"), + rudderTrimDisplay: props.globals.initNode("/controls/flight/rudder-trim-display", "", "STRING"), rudderTrimDisplayLetter: props.globals.initNode("/controls/flight/rudder-trim-letter-display", "", "STRING"), }; setlistener("/sim/signals/fdm-initialized", func { - chr.stop(); - chr.reset(); - clk.stop(); - clk.reset(); - chrono_cpt.reset(); - chrono_fo.reset(); + chrono_timer.reset(); + clock_timer.reset(); + clock_int_et.reset(); + cpt_timer.reset(); + fo_timer.reset(); rudderTrim.rudderTrimDisplay.setValue(sprintf("%2.1f", pts.Fdm.JSBsim.Hydraulics.Rudder.trimDeg.getValue())); - start_loop.start(); + loop.start(); }); -setlistener("/instrumentation/chrono[0]/chrono-reset", func(et){ - tmp = et.getValue(); - if (tmp == 2) { - if (chrono.started.getBoolValue()) { - if (!chrono.paused.getBoolValue()) { - chrono.elapseTime.setValue(0); - chrono.chronoReset.setBoolValue(0); - } else { - chr.stop(); - chr.reset(); - chrono.chronoReset.setBoolValue(1); - chrono.started.setBoolValue(0); - chrono.paused.setBoolValue(0); - }; - } else { - if (!chrono.paused.getBoolValue()) { - # No action required - } else { - chrono.paused.setBoolValue(0); - }; - }; - } elsif (tmp == 1) { - if (chrono.started.getBoolValue()) { - if (!chrono.paused.getBoolValue()) { - chr.stop(); - chrono.paused.setBoolValue(1); - } else { - chr.stop(); - }; - } else { - if (!chrono.paused.getBoolValue()) { - chr.stop(); - } else { - chr.stop(); - chrono.paused.setBoolValue(0); - }; - }; - } elsif (tmp == 0) { - if (!chrono.started.getBoolValue()) { - if (!chrono.paused.getBoolValue()) { - chr.start(); - chrono.started.setBoolValue(1); - } else { - chr.start(); - chrono.paused.setBoolValue(0); - }; - } else { - if (!chrono.paused.getBoolValue()) { - # No action required - } else { - chr.start(); - chrono.paused.setBoolValue(0); - }; - }; - }; -}, 0, 0); - #Chrono -setlistener("/instrumentation/efis[0]/inputs/CHRONO", func(et){ - chrono0 = et.getValue(); - if (chrono0 == 1){ - chrono_cpt.start(); - } elsif (chrono0 == 2) { - chrono_cpt.stop(); - } elsif (chrono0 == 0) { - chrono_cpt.reset(); - chrono_cpt_node.setValue(0); - } -}, 0, 0); - -setlistener("/instrumentation/efis[1]/inputs/CHRONO", func(et){ - chrono1 = et.getValue(); - if (chrono1 == 1){ - chrono_fo.start(); - } elsif (chrono1 == 2) { - chrono_fo.stop(); - } elsif (chrono1 == 0) { - chrono_fo.reset(); - chrono_fo_node.setValue(0); - } -}, 0, 0); - -setlistener("/instrumentation/clock/et-selector", func(et){ - tmp1 = et.getValue(); - if (tmp1 == 2){ - clk.reset(); - } elsif (tmp1 == 1){ - clk.stop(); - } elsif (tmp1 == 0){ - clk.start(); +setlistener("/instrumentation/clock/chrono/chrono-btn", func { + if (chrono.btn.getValue() == 1) { + chrono.reset.setBoolValue(0); + if (chrono.started.getBoolValue()) { + #chrono started + if (chrono.paused.getBoolValue()) { + #chrono paused + chrono_timer.start(); + chrono.paused.setBoolValue(0); + } else { + #chrono running + chrono_timer.stop(); + chrono.paused.setBoolValue(1); + } + } else { + #chrono not started + chrono_timer.start(); + chrono.paused.setBoolValue(0); + chrono.started.setBoolValue(1); + } } }, 0, 0); -#Chrono -setlistener("instrumentation/efis[0]/inputs/CHRONO", func(et){ - chrono0 = et.getValue(); - if (chrono0 == 1){ - chrono_cpt.start(); - } elsif (chrono0 == 2) { - chrono_cpt.stop(); - } elsif (chrono0 == 0) { - chrono_cpt.reset(); - setprop("instrumentation/ndchrono[0]/elapsetime-sec", 0); +setlistener("/instrumentation/clock/chrono/chrono-reset-btn", func { + if (chrono.reset.getValue() == 1) { + if (chrono.started.getBoolValue()) { + #chrono started + if (chrono.paused.getBoolValue()) { + #chrono paused + chrono_timer.stop(); + chrono_timer.reset(); + chrono.started.setBoolValue(0); + chrono.paused.setBoolValue(0); + } else { + #chrono running + chrono.et.setValue(0); + }; + } else { + #chrono not started + chrono_timer.stop(); + chrono_timer.reset(); + chrono.started.setBoolValue(0); + chrono.paused.setBoolValue(0); + chrono.reset.setBoolValue(1); } -}, 0, 0); - -setlistener("instrumentation/efis[1]/inputs/CHRONO", func(et){ - chrono1 = et.getValue(); - if (chrono1 == 1){ - chrono_fo.start(); - } elsif (chrono1 == 2) { - chrono_fo.stop(); - } elsif (chrono1 == 0) { - chrono_fo.reset(); - setprop("instrumentation/ndchrono[1]/elapsetime-sec", 0); - } -}, 0, 0); - -var start_loop = maketimer(0.1, func { - if (systems.ELEC.Bus.dcEss.getValue() < 25) { return; } - - # Annun-test - if (pts.Controls.Switches.annunTest.getBoolValue()) { - UTC_date = sprintf("%02d %02d %02d", "88", "88", "88"); - UTC_date1 = sprintf("%02d", "88"); - UTC_date2 = sprintf("%02d", "88"); - UTC_date3 = sprintf("%02d", "88"); - clock2_1 = "88:88"; - clock2_2 = sprintf("%02d", 88); - - clock.hhMM.setValue(clock2_1); - clock.indicatedSec.setValue(clock2_2); - clock.utcDate[0].setValue(UTC_date); - clock.utcDate[1].setValue(UTC_date1); - clock.utcDate[2].setValue(UTC_date2); - clock.utcDate[3].setValue(UTC_date3); - - chrono.etString.setValue("88 88"); - clock.elapsedString.setValue("88:88"); } else { - day = pts.Sim.Time.Utc.day.getValue(); - month = pts.Sim.Time.Utc.month.getValue(); - year = pts.Sim.Time.Utc.year.getValue(); - - # Clock - UTC_date = sprintf("%02d %02d %02d", month, day, substr(sprintf("%2d", year),1,2)); - UTC_date1 = sprintf("%02d", month); - UTC_date2 = sprintf("%02d", day); - UTC_date3 = substr(sprintf("%2d", year),2,2); - clock2_1 = pts.Instrumentation.Clock.indicatedStringShort.getValue(); - clock2_2 = sprintf("%02d", substr(pts.Instrumentation.Clock.indicatedString.getValue(),6,2)); - - clock.hhMM.setValue(clock2_1); - clock.indicatedSec.setValue(clock2_2); - clock.utcDate[0].setValue(UTC_date); - clock.utcDate[1].setValue(UTC_date1); - clock.utcDate[2].setValue(UTC_date2); - clock.utcDate[3].setValue(UTC_date3); - - if (set_knob.getValue() == "") { - set_knob.setValue(0); + if (chrono.started.getBoolValue()) { + #chrono started + if (chrono.paused.getBoolValue()) { + #chrono paused + chrono_timer.stop(); + chrono_timer.reset(); + chrono.started.setBoolValue(0); + chrono.paused.setBoolValue(0); + } else { + #chrono running + chrono.et.setValue(0); + }; + } else { + #chrono not started + chrono_timer.stop(); + chrono_timer.reset(); + chrono.started.setBoolValue(0); + chrono.paused.setBoolValue(0); + chrono.reset.setBoolValue(1); } - - if (utc_selector.getValue() == "") { - utc_selector.setValue(0); - } - -# if (getprop("/instrumentation/clock/utc-selector") == 0) { -# # To do - GPS mode -# }; -# if (getprop("/instrumentation/clock/utc-selector") == 1) { -# # To do - INT mode -# }; -# if (getprop("/instrumentation/clock/utc-selector") == 2) { -# # To do - SET mode -# }; + } +}, 0, 0); - # Chrono - chr_tmp = chrono.elapseTime.getValue(); - if (chr_tmp >= 6000) { - chrono.elapseTime.setValue(chr_tmp - 6000); +#ND Chrono - CPT +setlistener("/instrumentation/efis[0]/inputs/CHRONO", func { + chrono0 = props.globals.getValue("/instrumentation/efis[0]/inputs/CHRONO"); + if (chrono0 == 1){ + cpt_timer.start(); + } elsif (chrono0 == 2) { + cpt_timer.stop(); + } elsif (chrono0 == 0) { + cpt_timer.reset(); + } +}, 0, 0); + +#ND Chrono - FO +setlistener("/instrumentation/efis[1]/inputs/CHRONO", func { + chrono1 = props.globals.getValue("/instrumentation/efis[1]/inputs/CHRONO"); + if (chrono1 == 1){ + fo_timer.start(); + } elsif (chrono1 == 2) { + fo_timer.stop(); + } elsif (chrono1 == 0) { + fo_timer.reset(); + } +}, 0, 0); + +#ET Clock +setlistener("/instrumentation/clock/et/et-selector", func { + tmp1 = clock_et.et_selector.getValue(); + if (tmp1 == 2){ + clock_timer.reset(); + clock_et.visible.setValue(0); + attivo=0 + } elsif (tmp1 == 1){ + clock_timer.stop(); + } elsif (tmp1 == 0){ + clock_timer.start(); + clock_et.visible.setValue(1); + } +}, 0, 0); + +#Clock +setlistener("/instrumentation/clock/utc-selector", func { + if (clock.mode_selector.getValue() != 2) { + clock_internal.set_cont.setValue(1); + clock.set_knb_count.setValue(0); + } + if (clock.mode_selector.getValue() == 0){ + #GPS Clock + clock_internal.mode.setValue(0); + clock_int_et.reset(); + clock_int_et.stop(); + } + if (clock.mode_selector.getValue() == 2) { + # INT Clock - SET Mode + clock_internal.mode.setValue(1); + } + if (clock.mode_selector.getValue() == 1) { + # INT Clock - INT mode"); + clock_int_et.reset(); + if (clock_internal.mode.getValue() == 0) { + #Start INT Clock from GPS mode + clock_internal.year.setValue(props.globals.getValue("sim/time/utc/year")); + clock_internal.month.setValue(props.globals.getValue("sim/time/utc/month")); + clock_internal.day.setValue(props.globals.getValue("sim/time/utc/day")); + clock_internal.hrs.setValue(props.globals.getValue("sim/time/utc/hour")); + clock_internal.min.setValue(props.globals.getValue("sim/time/utc/minute")); + clock_internal.sec.setValue(props.globals.getValue("sim/time/utc/second")); + clock_internal.et.setValue(props.globals.getValue("sim/time/utc/day-seconds")); + } else { + #Start INT Clock from SET mode + clock_internal.et.setValue((clock_internal.hrs.getValue() * 3600) + (clock_internal.min.getValue() * 60)); + } + clock_int_et.start(); + } +}, 0, 0); + +setlistener("/instrumentation/clock/set-knob", func { + if (clock.set_knob.getValue() == 1) { + if (clock.mode_selector.getValue() == 2) { + #Clock SET mode + #set custom UTC time + if (clock_internal.set_cont.getValue() == 0) { + clock_internal.set_cont.setValue(1); + } + if (clock_internal.set_cont.getValue() < 5) { + clock_internal.set_cont.setValue(clock_internal.set_cont.getValue() + 1); + } else { + clock_internal.set_cont.setValue(clock_internal.set_cont.getValue() - 4); + } + } + if (clock_internal.set_cont.getValue() == 1) { + #clock set minutes + clock.set_knb_count.setValue(0); + } elsif (clock_internal.set_cont.getValue() == 2) { + #clock set hours + clock.set_knb_count.setValue(0); + } elsif (clock_internal.set_cont.getValue() == 3) { + #clock set year + clock.set_knb_count.setValue(0); + } elsif (clock_internal.set_cont.getValue() == 4) { + #clock set month + clock.set_knb_count.setValue(0); + } elsif (clock_internal.set_cont.getValue() == 5) { + #clock set day + clock.set_knb_count.setValue(0); + } else { + print('clock custom date/time setting error') + } + } +}, 0, 0); + +var loop = maketimer(0.1, func (){ + if (systems.ELEC.Bus.dcEss.getValue() < 25) { return; } + if (pts.Controls.Switches.annunTest.getBoolValue()) { + # Annun-test + #date + clock.utcDate[0].setValue(sprintf("%02d %02d %02d", "88", "88", "88")); + #month + clock.utcDate[1].setValue(sprintf("%02d", "88")); + #day + clock.utcDate[2].setValue(sprintf("%02d", "88")); + #year + clock.utcDate[3].setValue(sprintf("%02d", "88")); + + #Clock + clock.indicated_hh.setValue(sprintf("%02d", "88")); + clock.indicated_mm.setValue(sprintf("%02d", "88")); + #clock.hhMM.setValue("88:88"); + clock.indicated_sec.setValue(sprintf("%02d", "88")); + + #Chrono + chrono.etString.setValue("88:88"); + + #ET Clock + clock_et.elapsedString.setValue("88:88"); + + } else { + #Normal mode (Annun-test off) + #Date + clock.utcDate[0].setValue(sprintf("%02d %02d %02d", pts.Sim.Time.Utc.month.getValue(), pts.Sim.Time.Utc.day.getValue(), substr(sprintf("%2d", pts.Sim.Time.Utc.year.getValue()),2,2))); + clock.utcDate[1].setValue(sprintf("%02d", pts.Sim.Time.Utc.month.getValue())); + clock.utcDate[2].setValue(sprintf("%02d", pts.Sim.Time.Utc.day.getValue())); + clock.utcDate[3].setValue(substr(sprintf("%02d", pts.Sim.Time.Utc.year.getValue()),2,2)); + + #Clock + clock.indicated_hh.setValue(sprintf("%02d", substr(pts.Instrumentation.Clock.indicatedString.getValue(),0,2))); + clock.indicated_mm.setValue(sprintf("%02d", substr(pts.Instrumentation.Clock.indicatedString.getValue(),3,2))); + clock.indicated_sec.setValue(sprintf("%02d", substr(pts.Instrumentation.Clock.indicatedString.getValue(),6,2))); + +# #Clock Internal + if (math.fmod(clock_internal.year.getValue(), 4) == 0 or math.fmod(clock_internal.year.getValue(), 400) == 0) { + clock_internal.bisextile_year.setValue(1); + } else { + clock_internal.bisextile_year.setValue(0); + } + + clock_internal_tmp = clock_internal.et.getValue(); + + if (clock_internal_tmp >= 86400) { + clock_internal.et.setValue(clock_internal_tmp - 86400); + #Aggiungi un giorno + if (clock_internal.month.getValue() == 12) { + if (clock_internal.day.getValue() == 31) { + #Aggiungi Anno + clock_internal.year.setValue(clock_internal.year.getValue() + 1); + clock_internal.month.setValue(1); + clock_internal.day.setValue(1); + } else { + clock_internal.day.setValue(clock_internal.day.getValue() + 1); + } + } else { + if ((clock_internal.month.getValue() == 4) or (clock_internal.month.getValue() == 6) or (clock_internal.month.getValue() == 9) or (clock_internal.month.getValue() == 11)) { + if (clock_internal.day.getValue() == 30) { + clock_internal.month.setValue(clock_internal.month.getValue() + 1); + clock_internal.day.setValue(1); + } else { + clock_internal.day.setValue(clock_internal.day.getValue() + 1); + } + } else { + if (clock_internal.month.getValue() == 2) { + if (math.fmod(clock_internal.year.getValue(), 4) == 0 or math.fmod(clock_internal.year.getValue(), 400) == 0) { + if (clock_internal.day.getValue() == 29) { + clock_internal.day.setValue(1); + clock_internal.month.setValue(3); + } else { + if (clock_internal.day.getValue() == 28) { + clock_internal.day.setValue(1); + clock_internal.month.setValue(3); + } + clock_internal.day.setValue(clock_internal.day.getValue() + 1); + } + } else { + clock_internal.day.setValue(clock_internal.day.getValue() + 1); + } + } else { + if (clock_internal.day.getValue() == 31) { + clock_internal.month.setValue(clock_internal.month.getValue() + 1); + clock_internal.day.setValue(1); + } else { + clock_internal.day.setValue(clock_internal.day.getValue() + 1); + } + } + } + } + } else { + if (clock.mode_selector.getValue() == 1){ + clock_internal.hrs.setValue(int(clock_internal.et.getValue() * 0.000277777777778)); + clock_internal.min.setValue((clock_internal.et.getValue() - (clock_internal.hrs.getValue() * 3600)) * 0.0166666666667 ); + clock_internal.sec.setValue(clock_internal.et.getValue() - ((clock_internal.hrs.getValue() * 3600) + (clock_internal.min.getValue() * 60))); + } elsif (clock.mode_selector.getValue() == 2) { + #nothing to do + } + } + + + #Clock internal SET Mode + clock_internal.hhMM.setValue(sprintf("%02d", clock_internal.hrs.getValue()) ~ ":" ~ sprintf("%02d", clock_internal.min.getValue())); + clock_internal.indicated_hh.setValue(sprintf("%02d", clock_internal.hrs.getValue())); + clock_internal.indicated_mm.setValue(sprintf("%02d", clock_internal.min.getValue())); + clock_internal.indicated_sec.setValue(sprintf("%02d", clock_internal.sec.getValue())); + clock_internal.date[0].setValue(sprintf("%02d", clock_internal.month.getValue()) ~ " " ~ sprintf("%02d",clock_internal.day.getValue()) ~ " " ~ substr(sprintf("%02d",clock_internal.year.getValue()),2,2)); + clock_internal.date[1].setValue(substr(sprintf("%02d",clock_internal.year.getValue()),2,2)); + clock_internal.date[2].setValue(sprintf("%02d",clock_internal.month.getValue())); + clock_internal.date[3].setValue(sprintf("%02d",clock_internal.day.getValue())); + + condition = (getprop("/sim/time/elapsed-sec") - math.floor(getprop("/sim/time/elapsed-sec"))) < 0.5; + + if (clock.set_knob.getValue() == 0) { + if (clock.mode_selector.getValue() == 0) { + #show Time + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } elsif (clock.mode_selector.getValue() == 1) { + #show Time + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } else { + if (clock_internal.set_cont.getValue() == 1) { + #clock internal SET minutes + if (condition) { + clock_internal.hhMM.setValue(sprintf("%02d", clock_internal.hrs.getValue()) ~ ":" ~ sprintf("%02d", clock_internal.min.getValue())); + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } else { + clock_internal.hhMM.setValue(sprintf("%02d", clock_internal.hrs.getValue()) ~ ":" ~ " "); + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(0); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } + } elsif (clock_internal.set_cont.getValue() == 2) { + #clock internal SET hours + if (condition) { + clock_internal.hhMM.setValue(sprintf("%02d", clock_internal.hrs.getValue()) ~ ":" ~ sprintf("%02d", clock_internal.min.getValue())); + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } else { + clock_internal.hhMM.setValue(" " ~ ":" ~ sprintf("%02d", clock_internal.min.getValue())); + clock_internal.blink_hh.setValue(0); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } + } elsif (clock_internal.set_cont.getValue() == 3) { + #clock internal SET year + if (condition) { + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } else { + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(0); + } + } elsif (clock_internal.set_cont.getValue() == 4) { + #clock internal SET month + if (condition) { + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } else { + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(0); + clock_internal.blink_year.setValue(1); + } + } elsif (clock_internal.set_cont.getValue() == 5) { + #clock internal SET day + if (condition) { + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } else { + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(0); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } + } + } + } else { + if (clock.mode_selector.getValue() == 0) { + #show Date + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } elsif (clock.mode_selector.getValue() == 1) { + #show Date + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } else { + if (clock_internal.set_cont.getValue() == 1) { + #clock internal SET minutes + if (condition) { + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } else { + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(0); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } + } elsif (clock_internal.set_cont.getValue() == 2) { + #clock internal SET hours + if (condition) { + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } else { + clock_internal.blink_hh.setValue(0); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } + } elsif (clock_internal.set_cont.getValue() == 3) { + #clock internal SET year + if (condition) { + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } else { + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(0); + } + } elsif (clock_internal.set_cont.getValue() == 4) { + #clock internal SET month + if (condition) { + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } else { + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(0); + clock_internal.blink_year.setValue(1); + } + } elsif (clock_internal.set_cont.getValue() == 5) { + #clock internal SET day + if (condition) { + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(1); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } else { + clock_internal.blink_hh.setValue(1); + clock_internal.blink_mm.setValue(1); + clock_internal.blink_day.setValue(0); + clock_internal.blink_month.setValue(1); + clock_internal.blink_year.setValue(1); + } + } + } + } + + if (clock.set_knob.getValue() == "") { + clock.set_knob.setValue(0); + } + + #Chrono + chr_tmp = chrono.et.getValue(); + if (chr_tmp >= 6000) { + chrono.et.setValue(chr_tmp - 6000); } - chr_min = int(chr_tmp * 0.0166666666667); if (chr_tmp >= 60) { chr_sec = int(chr_tmp - (chr_min * 60)); } else { chr_sec = int(chr_tmp); } - - chrono.etMin.setValue(chr_min); - chrono.etSec.setValue(chr_sec); - chrono.etString.setValue(sprintf("%02d:%02d", chr_min, chr_sec)); - - # ET clock - et_tmp = clock.elapsedSec.getValue(); - if (et_tmp >= 360000) { - clock.elapsedSec.setValue(et_tmp - 360000); + chrono.etMin.setValue(sprintf("%02d", chr_min)); + chrono.etSec.setValue(sprintf("%02d", chr_sec)); + if (chrono.paused.getBoolValue()) { + chrono.etString.setValue(sprintf("%02d %02d", chr_min, chr_sec)); + } else { + chrono.etString.setValue(sprintf("%02d:%02d", chr_min, chr_sec)); } - + + #ET clock + et_tmp = clock_et.et.getValue(); + if (et_tmp >= 360000) { + clock_et.et.setValue(et_tmp - 360000); + } + et_min = int(et_tmp * 0.0166666666667); et_hr = int(et_min * 0.0166666666667); et_min = et_min - (et_hr * 60); - - clock.elapsedHour.setValue(et_hr); - clock.elapsedMin.setValue(et_min); - clock.elapsedString.setValue(sprintf("%02d:%02d", et_hr, et_min)); - + + clock_et.hrs.setValue(sprintf("%02d", et_hr)); + clock_et.min.setValue(sprintf("%02d",et_min)); + if (clock_et.et_selector.getValue()==1) { + if (clock_et.et.getValue()==0) { + clock_et.elapsedString.setValue(""); + } else { + clock_et.elapsedString.setValue(sprintf("%02d %02d", et_hr, et_min)); + } + } else { + clock_et.elapsedString.setValue(sprintf("%02d:%02d", et_hr, et_min)); + } + + #Rudder Trim update loop foreach (item; update_items) { item.update(nil); } + } #Cpt Chrono - chr0_tmp = chrono_cpt_node.getValue(); + chr0_tmp = cpttimer.et.getValue(); if (chr0_tmp >= 360000) { - chrono_cpt_node.setValue(chrono_cpt_node.getValue() - 360000); + cpttimer.et.setValue(chr0_tmp - 360000); } - - chr0_hh = int(chr0_tmp * 0.000277777777778); + + chr0_hh = int(chr0_tmp * 0.000277777777778); chr0_min = int((chr0_tmp * 0.0166666666667) - (chr0_hh * 60)); chr0_sec = int(chr0_tmp - (chr0_min * 60) - (chr0_hh * 3600)); - cpt_chrono.etHh_cpt.setValue(chr0_hh); - cpt_chrono.etMin_cpt.setValue(chr0_min); - cpt_chrono.etSec_cpt.setValue(chr0_sec); + cpttimer.etHh_cpt.setValue(chr0_hh); + cpttimer.etMin_cpt.setValue(chr0_min); + cpttimer.etSec_cpt.setValue(chr0_sec); if (chr0_tmp >= 3600) { - cpt_chrono.text.setValue(sprintf("%02d H %02d'", chr0_hh, chr0_min)); + cpttimer.text.setValue(sprintf("%2d H %2d'", chr0_hh, chr0_min)); } else { - cpt_chrono.text.setValue(sprintf("%02d' %02d''", chr0_min, chr0_sec)); + cpttimer.text.setValue(sprintf("%2d' %2d''", chr0_min, chr0_sec)); } - + #Fo Chrono - chr1_tmp = chrono_fo_node.getValue(); + chr1_tmp = fotimer.et.getValue(); if (chr1_tmp >= 360000) { - chrono_fo_node.setValue(chrono_fo_node.getValue() - 360000); + fotimer.et.setValue(chr1_tmp - 360000); } - - chr1_hh = int(chr1_tmp * 0.000277777777778); + + chr1_hh = int(chr1_tmp * 0.000277777777778); chr1_min = int(chr1_tmp * 0.0166666666667); chr1_sec = int(chr1_tmp - (chr1_min * 60) - (chr1_hh * 3600)); - fo_chrono.etHh_fo.setValue(chr1_hh); - fo_chrono.etMin_fo.setValue(chr1_min); - fo_chrono.etSec_fo.setValue(chr1_sec); + fotimer.etHh_fo.setValue(chr1_hh); + fotimer.etMin_fo.setValue(chr1_min); + fotimer.etSec_fo.setValue(chr1_sec); if (chr1_tmp >= 3600) { - fo_chrono.text.setValue(sprintf("%02d H %02d'", chr1_hh, chr1_min)); + fotimer.text.setValue(sprintf("%2d H %2d'", chr1_hh, chr1_min)); } else { - fo_chrono.text.setValue(sprintf("%02d' %02d''", chr1_min, chr1_sec)); + fotimer.text.setValue(sprintf("%2d' %2d''", chr1_min, chr1_sec)); } + }); var updateRudderTrim = func() { if (pts.Controls.Switches.annunTest.getBoolValue()) { - rudderTrim.rudderTrimDisplay.setValue(sprintf("%3.1f", "88.8")); + rudderTrim.rudderTrimDisplay.setValue(sprintf("%2.1f", "88.8")); rudderTrim.rudderTrimDisplayLetter.setValue(sprintf("%1.0f", "8")); } else { rudder_val = pts.Fdm.JSBsim.Hydraulics.Rudder.trimDeg.getValue(); diff --git a/Systems/a320-cockpit.xml b/Systems/a320-cockpit.xml index 33eab26e..481f93f3 100644 --- a/Systems/a320-cockpit.xml +++ b/Systems/a320-cockpit.xml @@ -251,8 +251,8 @@ <c1>20</c1> </lag_filter> - <lag_filter name="/instrumentation/clock/et-selector-pos"> - <input>/instrumentation/clock/et-selector</input> + <lag_filter name="/instrumentation/clock/et/et-selector-pos"> + <input>/instrumentation/clock/et/et-selector</input> <c1>20</c1> </lag_filter>