diff --git a/src/pyefis/__init__.py b/src/pyefis/__init__.py index 4dc1cc4c..8045c148 100644 --- a/src/pyefis/__init__.py +++ b/src/pyefis/__init__.py @@ -1,2 +1,2 @@ -__version__ = "2.0.27" +__version__ = "2.0.29" diff --git a/src/pyefis/config/includes/arcs/horizontal/four_wide_one_state_preferences_ARC9-12.yaml b/src/pyefis/config/includes/arcs/horizontal/four_wide_one_state_preferences_ARC9-12.yaml new file mode 100644 index 00000000..d88efd8f --- /dev/null +++ b/src/pyefis/config/includes/arcs/horizontal/four_wide_one_state_preferences_ARC9-12.yaml @@ -0,0 +1,15 @@ +instruments: + - type: ganged_arc_gauge + gang_type: horizontal + groups: + - name: Power and Temp + instruments: + - + preferences: ARC9 + - + preferences: ARC10 + - + preferences: ARC11 + - + preferences: ARC12 + diff --git a/src/pyefis/config/includes/arcs/horizontal/four_wide_two_states_preferences_ARC1-8.yaml b/src/pyefis/config/includes/arcs/horizontal/four_wide_two_states_preferences_ARC1-8.yaml new file mode 100644 index 00000000..45fdabe9 --- /dev/null +++ b/src/pyefis/config/includes/arcs/horizontal/four_wide_two_states_preferences_ARC1-8.yaml @@ -0,0 +1,29 @@ +instruments: + - type: ganged_arc_gauge + gang_type: horizontal + display_state: 1 + groups: + - name: Engine + instruments: + - + preferences: ARC1 + - + preferences: ARC2 + - + preferences: ARC3 + - + preferences: ARC4 + - type: ganged_arc_gauge + gang_type: horizontal + display_state: 2 + groups: + - name: Engine + instruments: + - + preferences: ARC5 + - + preferences: ARC6 + - + preferences: ARC7 + - + preferences: ARC8 diff --git a/src/pyefis/config/includes/bars/vertical/4_CHT.yaml b/src/pyefis/config/includes/bars/vertical/4_CHT.yaml index 2dfa34dc..d21f3595 100644 --- a/src/pyefis/config/includes/bars/vertical/4_CHT.yaml +++ b/src/pyefis/config/includes/bars/vertical/4_CHT.yaml @@ -2,11 +2,6 @@ instruments: - type: ganged_vertical_bar_gauge gang_type: horizontal ratio: 0.2 - row: 0 - column: 0 - span: - rows: 40 - columns: 30 groups: - name: CHT gap: 0 diff --git a/src/pyefis/config/includes/bars/vertical/4_EGT.yaml b/src/pyefis/config/includes/bars/vertical/4_EGT.yaml index b9f3f781..c34a0bb8 100644 --- a/src/pyefis/config/includes/bars/vertical/4_EGT.yaml +++ b/src/pyefis/config/includes/bars/vertical/4_EGT.yaml @@ -2,11 +2,6 @@ instruments: - type: ganged_vertical_bar_gauge gang_type: horizontal ratio: 0.2 - row: 0 - column: 0 - span: - rows: 40 - columns: 30 groups: - name: EGT gap: 0 diff --git a/src/pyefis/config/includes/buttons/horizontal/screen_changing_PFD-EMS-EMS2-ANDROID-RADIO-SIXPACK-Units.yaml b/src/pyefis/config/includes/buttons/horizontal/screen_changing_PFD-EMS-EMS2-ANDROID-RADIO-SIXPACK-Units.yaml new file mode 100644 index 00000000..75425cef --- /dev/null +++ b/src/pyefis/config/includes/buttons/horizontal/screen_changing_PFD-EMS-EMS2-ANDROID-RADIO-SIXPACK-Units.yaml @@ -0,0 +1,39 @@ +instruments: + - type: ganged_button + gang_type: horizontal + row: 0 + column: 0 + span: + rows: 9 + columns: 200 + groups: + - name: Side Buttons + gap: 1 + common_options: + font_mask: "ANDROID" + instruments: + - + options: + config: buttons/screen-ems-pfd.yaml + encoder_order: 100011 + - + options: + config: buttons/screen-ems2-pfd.yaml + encoder_order: 100012 + - + options: + config: buttons/screen-android-pfd.yaml + encoder_order: 100013 + - + options: + config: buttons/screen-radio-pfd.yaml + encoder_order: 100014 + - + options: + config: buttons/screen-sixpack-pfd.yaml + encoder_order: 100015 + - + options: + config: buttons/units.yaml + encoder_order: 100016 + diff --git a/src/pyefis/config/includes/mgl/v16/rectangle-radio-primary-secondary-display.yaml b/src/pyefis/config/includes/mgl/v16/rectangle-radio-primary-secondary-display.yaml new file mode 100644 index 00000000..fd59f900 --- /dev/null +++ b/src/pyefis/config/includes/mgl/v16/rectangle-radio-primary-secondary-display.yaml @@ -0,0 +1,55 @@ +instruments: + - type: minimal_size + disabled: true + row: 0 + column: 0 + span: + rows: 37 + columns: 67 + - type: static_text + row: 0 + column: 0 + span: + rows: 5 + columns: 27 + preferences: TEXT3 + options: + text: "Active:" + font_mask: "XXXXXXX:" + alignment: AlignLeft + - type: static_text + row: 0 + column: 35 + span: + rows: 5 + columns: 27 + preferences: TEXT4 + options: + text: "Standby:" + font_mask: "XXXXXXX:" + alignment: AlignLeft + - type: include,RADIO_ACTIVE + row: 5 + column: 0 + span: + rows: 32 + columns: 32 + - type: include,RADIO_STANDBY + row: 5 + column: 35 + span: + rows: 32 + columns: 32 + - type: button + row: 26 + column: 35 + span: + rows: 6 + columns: 6 + #move: + # shrink: 14 + options: + config: buttons/mgl/v16/swap-active-standby.yaml + font_mask: "SWAP" + encoder_order: 400026 + diff --git a/src/pyefis/config/includes/mgl/v16/rectangle-radio-volume-primary-secondary-display.yaml b/src/pyefis/config/includes/mgl/v16/rectangle-radio-volume-primary-secondary-listbox-display.yaml similarity index 91% rename from src/pyefis/config/includes/mgl/v16/rectangle-radio-volume-primary-secondary-display.yaml rename to src/pyefis/config/includes/mgl/v16/rectangle-radio-volume-primary-secondary-listbox-display.yaml index d0ee91cf..e6254708 100644 --- a/src/pyefis/config/includes/mgl/v16/rectangle-radio-volume-primary-secondary-display.yaml +++ b/src/pyefis/config/includes/mgl/v16/rectangle-radio-volume-primary-secondary-listbox-display.yaml @@ -30,12 +30,15 @@ instruments: - type: include,RADIO_ACTIVE row: 5 column: 28 -# span: -# rows: 27 -# columns: 42 + span: + rows: 27 + columns: 42 - type: include,RADIO_STANDBY row: 5 column: 64 + span: + rows: 27 + columns: 42 - type: button row: 26 column: 64 diff --git a/src/pyefis/config/includes/mgl/v16/square-active-radio-display.yaml b/src/pyefis/config/includes/mgl/v16/square-active-radio-display.yaml index 53fd8976..79955950 100644 --- a/src/pyefis/config/includes/mgl/v16/square-active-radio-display.yaml +++ b/src/pyefis/config/includes/mgl/v16/square-active-radio-display.yaml @@ -1,4 +1,11 @@ instruments: + - type: minimal_size + disabled: true + row: 0 + column: 0 + span: + rows: 32 + columns: 32 - type: numeric_display gang_type: horizontal row: 0 diff --git a/src/pyefis/config/includes/mgl/v16/square-standby-radio-display.yaml b/src/pyefis/config/includes/mgl/v16/square-standby-radio-display.yaml index 2e191311..985d3607 100644 --- a/src/pyefis/config/includes/mgl/v16/square-standby-radio-display.yaml +++ b/src/pyefis/config/includes/mgl/v16/square-standby-radio-display.yaml @@ -1,4 +1,11 @@ instruments: + - type: minimal_size + disabled: true + row: 0 + column: 0 + span: + rows: 32 + columns: 32 - type: numeric_display gang_type: horizontal row: 0 diff --git a/src/pyefis/config/includes/trim/pitch-yaw-roll-combined.yaml b/src/pyefis/config/includes/trim/pitch-yaw-roll-combined.yaml index 933b1015..1140605c 100644 --- a/src/pyefis/config/includes/trim/pitch-yaw-roll-combined.yaml +++ b/src/pyefis/config/includes/trim/pitch-yaw-roll-combined.yaml @@ -10,11 +10,20 @@ instruments: disabled: PITCH_TRIM row: 0 column: 0 + span: + rows: 32 + columns: 13 - type: include,includes/trim/roll-slider-button-control.yaml disabled: ROLL_TRIM row: 12 column: 12 + span: + rows: 10 + columns: 29 - type: include,includes/trim/yaw-slider-button-control.yaml disabled: YAW_TRIM row: 22 - column: 12 + column: 12 + span: + rows: 10 + columns: 29 diff --git a/src/pyefis/config/main/default.yaml b/src/pyefis/config/main/default.yaml index 05254c70..c0c75ede 100644 --- a/src/pyefis/config/main/default.yaml +++ b/src/pyefis/config/main/default.yaml @@ -23,6 +23,10 @@ #screenWidth: 1920 #screenHeight: 1080 + # portrait testing + #screenHeight: 960 + #screenWidth: 540 + # Set EFIS to occupy the entire screen without system border / menu screenFullSize: True diff --git a/src/pyefis/config/preferences.yaml b/src/pyefis/config/preferences.yaml index b761b020..89618d9f 100644 --- a/src/pyefis/config/preferences.yaml +++ b/src/pyefis/config/preferences.yaml @@ -116,15 +116,17 @@ includes: SCREENS_CONFIG: screens/default_list.yaml # The include for the main navigations buttons: BUTTON_GROUP1: includes/buttons/vertical/screen_changing_PFD-EMS-EMS2-ANDROID-RADIO-SIXPACK-Units.yaml + BUTTON_GROUP2: includes/buttons/horizontal/screen_changing_PFD-EMS-EMS2-ANDROID-RADIO-SIXPACK-Units.yaml + # The include for the encoder button control feature HMI_ENCODER_BUTTONS: hmi/encoder_input.yaml # The screen config files to load for the various default screens: - SCREEN_SIXPACK: screens/sixpack.yaml - SCREEN_ANDROID: screens/android.yaml - SCREEN_PFD: screens/pfd.yaml - SCREEN_RADIO: screens/radio.yaml - SCREEN_EMS: screens/ems.yaml - SCREEN_EMS2: screens/ems2.yaml + SCREEN_SIXPACK: screens/sixpack.yaml # screens/sixpack-portrait.yaml + SCREEN_ANDROID: screens/android.yaml # screens/android-portrait.yaml + SCREEN_PFD: screens/pfd.yaml # screens/pfd-portrait.yaml + SCREEN_RADIO: screens/radio.yaml # screens/radio-portrait.yaml + SCREEN_EMS: screens/ems.yaml # screens/ems-portrait.yaml + SCREEN_EMS2: screens/ems2.yaml # screens/ems2-portrait.yaml # Include file for logging configuration LOGGING_CONFIG: logging/stderr-info.yaml # File that defines what lists are included in the radio listbox @@ -132,7 +134,8 @@ includes: RADIO_ACTIVE: includes/mgl/v16/square-active-radio-display.yaml RADIO_STANDBY: includes/mgl/v16/square-standby-radio-display.yaml RADIO_VOLUMES: includes/mgl/v16/radio-volumes-controls-display.yaml - RADIO_COMBINED: includes/mgl/v16/rectangle-radio-volume-primary-secondary-display.yaml + RADIO_COMBINED_MINIMAL: includes/mgl/v16/rectangle-radio-primary-secondary-display.yaml + RADIO_COMBINED: includes/mgl/v16/rectangle-radio-volume-primary-secondary-listbox-display.yaml # columns: 35 for square # 29 + 35 = 64 diff --git a/src/pyefis/config/screens/android-portrait.yaml b/src/pyefis/config/screens/android-portrait.yaml new file mode 100644 index 00000000..dfac9b7c --- /dev/null +++ b/src/pyefis/config/screens/android-portrait.yaml @@ -0,0 +1,84 @@ +ANDROID: + module: pyefis.screens.screenbuilder + title: Screen Builder + include: + - HMI_ENCODER_BUTTONS + layout: + #draw_grid: true + rows: 110 + columns: 200 + display_state: + interval: 3000 + states: 2 + instruments: + - type: value_text + disabled: DEMO_TESTING_TEXT + row: 0 + column: 0 + span: + rows: 2 + columns: 200 + options: + dbkey: MAVMSG + font_percent: 0.9 + - type: weston + disabled: DEMO_TESTING_TEXT + row: 2 + column: 0 + span: + rows: 43 + columns: 200 + options: + socket: pyefis-waydroid-1 + ini: weston.ini + command: waydroid + args: + - show-full-ui + - type: weston + disabled: not DEMO_TESTING_TEXT + row: 0 + column: 0 + span: + rows: 45 + columns: 200 + options: + socket: pyefis-waydroid-1 + ini: weston.ini + command: waydroid + args: + - show-full-ui + - type: include,includes/arcs/horizontal/four_wide_two_states_preferences_ARC1-8.yaml + disabled: BUTTONS + row: 45 + column: 0 + span: + columns: 195.5 + rows: 15 + - type: include,includes/arcs/vertical/four_high_two_states_preferences_ARC1-8.yaml + disabled: not BUTTONS + row: 45 + column: 0 + span: + columns: 195.5 + rows: 15 + - type: include,BUTTON_GROUP2 + disabled: BUTTONS + row: 100 + column: 0 + - type: include,includes/bars/vertical/six_wide_preferences_BAR1-6.yaml + row: 60 + column: 0 + display_state: 1 + span: + rows: 40 + columns: 200 + - type: include,includes/mgl/v16/square-active-radio-display.yaml + row: 60 + column: 0 + span: + rows: 40 + columns: 200 + display_state: 2 + replace: + radio_id: 1 + diff --git a/src/pyefis/config/screens/ems-left-buttons.yaml b/src/pyefis/config/screens/ems-left-buttons.yaml index 6d8cccbc..476edc76 100644 --- a/src/pyefis/config/screens/ems-left-buttons.yaml +++ b/src/pyefis/config/screens/ems-left-buttons.yaml @@ -1,5 +1,7 @@ -EMS2: - include: HMI_ENCODER_BUTTONS +EMS: + include: + - screens/virtualvfr_db.yaml + - HMI_ENCODER_BUTTONS module: pyefis.screens.screenbuilder title: Engine Management New layout: @@ -10,152 +12,190 @@ EMS2: - type: value_text disabled: DEMO_TESTING_TEXT row: 100 - column: 95 + column: 0 span: rows: 10 - columns: 140 + columns: 80 options: dbkey: MAVMSG font_percent: 0.9 + - type: include,includes/ahrs/virtual_vfr.yaml + row: 0 + column: 75 + span: + rows: 70 + columns: 125 + - type: include,includes/arcs/vertical/four_high_two_states_preferences_ARC1-8.yaml + disabled: BUTTONS + row: 0 + column: 44.5 + span: + columns: 30 + rows: 70 + - type: include,includes/arcs/vertical/four_high_two_states_preferences_ARC1-8.yaml + disabled: not BUTTONS + row: 0 + column: 37 + span: + columns: 37.5 + rows: 70 + - type: include,includes/arcs/vertical/four_high_one_state_preferences_ARC9-12.yaml + disabled: BUTTONS + row: 0 + column: 14.5 + span: + columns: 30 + rows: 70 + - type: include,includes/arcs/vertical/four_high_one_state_preferences_ARC9-12.yaml + disabled: not BUTTONS + row: 0 + column: 14.5 + span: + columns: 37.5 + rows: 70 + - type: include,BUTTON_GROUP1 + disabled: BUTTONS + row: 0 + column: 0 + - type: include,includes/bars/vertical/six_wide_preferences_BAR1-6.yaml + row: 70 + column: 155 + - type: include,includes/bars/vertical/4_CHT.yaml + row: 70 + column: 123 + span: + rows: 40 + columns: 30 + - type: include,includes/bars/vertical/4_EGT.yaml + row: 70 + column: 91 + span: + rows: 40 + columns: 30 - type: ganged_button - gang_type: horizontal - row: 103 - column: 50 -# move: -# shrink: 25 -# justify: top + #disabled: true + gang_type: vertical + row: 74 + column: 80 + #move: + # shrink: 25 + # justify: top span: - rows: 4 - columns: 45 + rows: 30 + columns: 10 groups: - name: Buttons - gap: 4 + gap: 12 + common_options: + font_mask: Normalize instruments: - options: config: buttons/egt-Normalize.yaml + encoder_order: 600031 - options: config: buttons/egt-Lean.yaml + encoder_order: 600032 - options: config: buttons/egt-Peak.yaml + encoder_order: 600033 - options: config: buttons/egt-reset-peak.yaml - - - type: arc_gauge - row: 0 - column: 15 - span: - rows: 45 - columns: 70 - preferences: ARC13 - - - type: arc_gauge - row: 0 - column: 86 - span: - rows: 45 - columns: 70 - preferences: ARC14 - - - type: ganged_horizontal_bar_gauge - gang_type: vertical - row: 0 - column: 157 - span: - rows: 50 - columns: 40 - groups: - - name: Oil - instruments: - - - preferences: BAR7 - - - preferences: BAR8 - - - type: static_text - row: 45 - column: 18 - span: - columns: 21 - rows: 5 - options: - text: Power - - - type: static_text - row: 45 - column: 67 - span: - columns: 12 - rows: 5 - options: - text: EGT - - - type: static_text - row: 45 - column: 124 - span: - columns: 12 - rows: 5 - options: - text: CHT - - - type: static_text - row: 45 - column: 174 - span: - columns: 14 - rows: 5 - options: - text: FUEL + encoder_order: 600034 - type: ganged_vertical_bar_gauge + disabled: DEMO_TESTING_TEXT gang_type: horizontal - ratio: 0.2 - row: 51 - column: 15 + row: 70 + column: 0 span: - rows: 50 - columns: 186 + rows: 30 + columns: 80 groups: - - name: Power + - name: RPM + gap: 0 instruments: - - preferences: BAR9 + preferences: BAR28 - - preferences: BAR10 - - name: EGT + preferences: BAR29 + - name: Engine + gap: 0 instruments: - - preferences: BAR11 + preferences: BAR22 - - preferences: BAR12 + preferences: BAR23 - - preferences: BAR13 + preferences: BAR24 - - preferences: BAR14 - - name: CHT + preferences: BAR25 + - + preferences: BAR26 + + - name: Temps + gap: 0 instruments: - - preferences: BAR15 + preferences: BAR27 + - + type: ganged_vertical_bar_gauge + disabled: not DEMO_TESTING_TEXT + ratio: 0.2 + gang_type: horizontal + row: 72 + column: 0 + span: + rows: 38 + columns: 80 + groups: + - name: RPM + gap: 0 + common_options: + bar_width_percent: 0.5 + line_width_percent: 0.7 + text_gap: 8 + small_font_percent: 0.060 + big_font_percent: 0.085 + instruments: - - preferences: BAR16 + preferences: BAR28 + - + preferences: BAR29 + - name: Engine + common_options: + bar_width_percent: 0.5 + line_width_percent: 0.7 + text_gap: 8 + small_font_percent: 0.060 + big_font_percent: 0.085 + gap: 0 + instruments: - - preferences: BAR17 + preferences: BAR22 - - preferences: BAR18 - - name: FUEL - instruments: + preferences: BAR23 - - preferences: BAR19 + preferences: BAR24 - - preferences: BAR20 + preferences: BAR25 - - preferences: BAR21 + preferences: BAR26 - - type: include,BUTTON_GROUP1 - row: 0 - column: 0 + - name: Temps + common_options: + bar_width_percent: 0.5 + line_width_percent: 0.7 + text_gap: 8 + small_font_percent: 0.060 + big_font_percent: 0.085 + gap: 0 + instruments: + gap: 0 + instruments: + - + preferences: BAR27 diff --git a/src/pyefis/config/screens/ems-portrait.yaml b/src/pyefis/config/screens/ems-portrait.yaml new file mode 100644 index 00000000..fef4f2d1 --- /dev/null +++ b/src/pyefis/config/screens/ems-portrait.yaml @@ -0,0 +1,201 @@ +EMS: + include: + - screens/virtualvfr_db.yaml + - HMI_ENCODER_BUTTONS + module: pyefis.screens.screenbuilder + title: Engine Management New + layout: + rows: 110 + columns: 200 + draw_grid: false + instruments: + - type: value_text + disabled: DEMO_TESTING_TEXT + row: 100 + column: 00 + span: + rows: 10 + columns: 80 + options: + dbkey: MAVMSG + font_percent: 0.9 + - type: include,includes/ahrs/virtual_vfr.yaml + row: 0 + column: 0 + span: + rows: 45 + columns: 200 + - type: include,includes/arcs/horizontal/four_wide_two_states_preferences_ARC1-8.yaml + disabled: BUTTONS + row: 45 + column: 0 + span: + columns: 195.5 + rows: 15 + - type: include,includes/arcs/horizontal/four_wide_two_states_preferences_ARC1-8.yaml + disabled: not BUTTONS + row: 45 + column: 0 + span: + columns: 195.5 + rows: 15 + - type: include,includes/arcs/horizontal/four_wide_one_state_preferences_ARC9-12.yaml + disabled: BUTTONS + row: 60 + column: 0 + span: + columns: 195.5 + rows: 15 + - type: include,includes/arcs/vertical/four_high_one_state_preferences_ARC9-12.yaml + disabled: not BUTTONS + row: 60 + column: 0 + span: + columns: 195.5 + rows: 15 + - type: include,BUTTON_GROUP2 + disabled: BUTTONS + row: 100 + column: 0 +# - type: include,includes/bars/vertical/six_wide_preferences_BAR1-6.yaml +# row: 75 +# column: 0 + - type: include,includes/bars/vertical/4_CHT.yaml + row: 75 + column: 100 + span: + rows: 20 + columns: 100 + - type: include,includes/bars/vertical/4_EGT.yaml + row: 75 + column: 0 + span: + rows: 20 + columns: 100 + - type: ganged_button + #disabled: true + gang_type: horizontal + row: 95.5 + column: 5 + #move: + # shrink: 25 + # justify: top + span: + rows: 4 + columns: 100 + groups: + - name: Buttons + gap: 2 + common_options: + font_mask: Normalize + instruments: + - + options: + config: buttons/egt-Normalize.yaml + encoder_order: 600031 + - + options: + config: buttons/egt-Lean.yaml + encoder_order: 600032 + - + options: + config: buttons/egt-Peak.yaml + encoder_order: 600033 + - + options: + config: buttons/egt-reset-peak.yaml + encoder_order: 600034 + - + type: ganged_vertical_bar_gauge + gang_type: horizontal + disabled: DEMO_TESTING_TEXT + row: 70 + column: 0 + span: + rows: 30 + columns: 80 + groups: + - name: RPM + gap: 0 + instruments: + - + preferences: BAR28 + - + preferences: BAR29 + - name: Engine + gap: 0 + instruments: + - + preferences: BAR22 + - + preferences: BAR23 + - + preferences: BAR24 + - + preferences: BAR25 + - + preferences: BAR26 + + - name: Temps + gap: 0 + instruments: + - + preferences: BAR27 + + - + type: ganged_vertical_bar_gauge + disabled: true #not DEMO_TESTING_TEXT + ratio: 0.2 + gang_type: horizontal + row: 72 + column: 0 + span: + rows: 38 + columns: 80 + groups: + - name: RPM + gap: 0 + common_options: + bar_width_percent: 0.5 + line_width_percent: 0.7 + text_gap: 8 + small_font_percent: 0.060 + big_font_percent: 0.085 + instruments: + - + preferences: BAR28 + - + preferences: BAR29 + - name: Engine + common_options: + bar_width_percent: 0.5 + line_width_percent: 0.7 + text_gap: 8 + small_font_percent: 0.060 + big_font_percent: 0.085 + gap: 0 + instruments: + - + preferences: BAR22 + - + preferences: BAR23 + - + preferences: BAR24 + - + preferences: BAR25 + - + preferences: BAR26 + - name: Temps + common_options: + bar_width_percent: 0.5 + line_width_percent: 0.7 + text_gap: 8 + small_font_percent: 0.060 + big_font_percent: 0.085 + gap: 0 + instruments: + gap: 0 + instruments: + - + preferences: BAR27 + diff --git a/src/pyefis/config/screens/ems.yaml b/src/pyefis/config/screens/ems.yaml index 1aa993a9..27fc2a09 100644 --- a/src/pyefis/config/screens/ems.yaml +++ b/src/pyefis/config/screens/ems.yaml @@ -63,9 +63,15 @@ EMS: - type: include,includes/bars/vertical/4_CHT.yaml row: 70 column: 123 + span: + rows: 40 + columns: 30 - type: include,includes/bars/vertical/4_EGT.yaml row: 70 column: 91 + span: + rows: 40 + columns: 30 - type: ganged_button #disabled: true gang_type: vertical diff --git a/src/pyefis/config/screens/ems2-portrait.yaml b/src/pyefis/config/screens/ems2-portrait.yaml new file mode 100644 index 00000000..966a0bf8 --- /dev/null +++ b/src/pyefis/config/screens/ems2-portrait.yaml @@ -0,0 +1,240 @@ +EMS2: + include: HMI_ENCODER_BUTTONS + module: pyefis.screens.screenbuilder + title: Engine Management New + layout: + rows: 110 + columns: 200 + draw_grid: false + instruments: + - type: value_text + disabled: DEMO_TESTING_TEXT + row: 100 + column: 80 + span: + rows: 10 + columns: 140 + options: + dbkey: MAVMSG + font_percent: 0.9 + - type: ganged_button + gang_type: horizontal + row: 68 + column: 80 +# move: +# shrink: 25 +# justify: top + span: + rows: 4 + columns: 110 + groups: + - name: Buttons + gap: 4 + instruments: + - + options: + config: buttons/egt-Normalize.yaml + - + options: + config: buttons/egt-Lean.yaml + - + options: + config: buttons/egt-Peak.yaml + - + options: + config: buttons/egt-reset-peak.yaml + - + type: arc_gauge + row: 0 + column: 0 + span: + rows: 25 + columns: 99 + preferences: ARC13 + - + type: arc_gauge + row: 0 + column: 100 + span: + rows: 25 + columns: 99 + preferences: ARC14 + - + type: ganged_horizontal_bar_gauge + disabled: BUTTONS + gang_type: horizontal + row: 25 + column: 0 + span: + rows: 15 + columns: 200 + groups: + - name: Oil + gap: 2 + instruments: + - + preferences: BAR7 + - + preferences: BAR8 + - + type: ganged_horizontal_bar_gauge + disabled: not BUTTONS + gang_type: vertical + row: 25 + column: 0 + span: + rows: 15 + columns: 200 + groups: + - name: Oil + gap: 2 + instruments: + - + preferences: BAR7 + - + preferences: BAR8 + + - + type: static_text + row: 40 + column: 20 + span: + columns: 30 + rows: 2 + options: + text: Power + - + type: static_text + row: 40 + column: 130 + span: + columns: 30 + rows: 2 + options: + text: EGT + - + type: static_text + row: 72.5 + column: 50 + span: + columns: 30 + rows: 2 + options: + text: CHT + - + type: static_text + row: 72.5 + column: 150 + span: + columns: 30 + rows: 2 + options: + text: FUEL + - + type: ganged_vertical_bar_gauge + disabled: BUTTONS + gang_type: horizontal + ratio: 0.2 + row: 43 + column: 0 + span: + rows: 24 + columns: 200 + groups: + - name: Power + instruments: + - + preferences: BAR9 + - + preferences: BAR10 + - name: EGT + instruments: + - + preferences: BAR11 + - + preferences: BAR12 + - + preferences: BAR13 + - + preferences: BAR14 + + - + type: ganged_vertical_bar_gauge + disabled: BUTTONS + gang_type: horizontal + ratio: 0.2 + row: 76 + column: 0 + span: + rows: 24 + columns: 200 + groups: + - name: CHT + instruments: + - + preferences: BAR15 + - + preferences: BAR16 + - + preferences: BAR17 + - + preferences: BAR18 + - name: FUEL + instruments: + - + preferences: BAR19 + - + preferences: BAR20 + - + preferences: BAR21 + - + type: ganged_vertical_bar_gauge + disabled: not BUTTONS + gang_type: horizontal + ratio: 0.2 + row: 51 + column: 0 + span: + rows: 50 + columns: 200 + groups: + - name: Power + instruments: + - + preferences: BAR9 + - + preferences: BAR10 + - name: EGT + instruments: + - + preferences: BAR11 + - + preferences: BAR12 + - + preferences: BAR13 + - + preferences: BAR14 + - name: CHT + instruments: + - + preferences: BAR15 + - + preferences: BAR16 + - + preferences: BAR17 + - + preferences: BAR18 + - name: FUEL + instruments: + - + preferences: BAR19 + - + preferences: BAR20 + - + preferences: BAR21 + + - type: include,BUTTON_GROUP2 + disabled: BUTTONS + row: 100 + column: 0 + diff --git a/src/pyefis/config/screens/pfd-portrait.yaml b/src/pyefis/config/screens/pfd-portrait.yaml new file mode 100644 index 00000000..2baaa549 --- /dev/null +++ b/src/pyefis/config/screens/pfd-portrait.yaml @@ -0,0 +1,57 @@ +# Example primary flight display +PFD: + include: + - screens/virtualvfr_db.yaml + - HMI_ENCODER_BUTTONS + #refresh_period: 0.25 + module: pyefis.screens.screenbuilder + title: Screen Builder + layout: + #draw_grid: true + rows: 110 + columns: 200 + display_state: + interval: 3000 + states: 2 + instruments: + - type: include,includes/ahrs/virtual_vfr.yaml + row: 0 + column: 0 + span: + columns: 200 + rows: 45 + - type: include,includes/arcs/horizontal/four_wide_two_states_preferences_ARC1-8.yaml + disabled: BUTTONS + row: 45 + column: 0 + span: + columns: 195.5 + rows: 15 + - type: include,includes/arcs/horizontal/four_wide_two_states_preferences_ARC1-8.yaml + disabled: not BUTTONS + row: 45 + column: 0 + span: + columns: 195.5 + rows: 15 + - type: include,BUTTON_GROUP2 + disabled: BUTTONS + row: 100 + column: 0 + - type: include,includes/bars/vertical/six_wide_preferences_BAR1-6.yaml + row: 60 + column: 0 + display_state: 1 + span: + rows: 40 + columns: 200 + - type: include,includes/mgl/v16/square-active-radio-display.yaml + row: 60 + column: 0 + span: + rows: 40 + columns: 200 + display_state: 2 + replace: + radio_id: 1 + diff --git a/src/pyefis/config/screens/radio-portrait.yaml b/src/pyefis/config/screens/radio-portrait.yaml new file mode 100644 index 00000000..eaf19e4a --- /dev/null +++ b/src/pyefis/config/screens/radio-portrait.yaml @@ -0,0 +1,64 @@ +# This is a work in progress for a radio interface +# Eric plans to purchase an MGL V16 radio, once in hand +# development on this feature will continue +RADIO: + include: + - screens/virtualvfr_db.yaml + - HMI_ENCODER_BUTTONS + module: pyefis.screens.screenbuilder + title: Radio Screen + layout: + rows: 110 + columns: 200 + #draw_grid: true + instruments: + - type: value_text + disabled: DEMO_TESTING_TEXT + row: 103 + column: 30 + span: + rows: 6 + columns: 60 + options: + dbkey: MAVMSG + font_percent: 0.9 + - type: include,includes/ahrs/virtual_vfr.yaml + disabled: false + row: 0 + column: 0 + span: + rows: 45 + columns: 200 + - type: include,BUTTON_GROUP2 + disabled: BUTTONS + row: 100 + column: 0 + - type: include,includes/bars/vertical/six_wide_preferences_BAR1-6.yaml + row: 70 + column: 155 + - type: include,RADIO_VOLUMES + replace: + radio_id: 1 + row: 75 + column: 0 + span: + rows: 23 + columns: 50 + - type: include,RADIO_LISTBOX + row: 75 + column: 51 + span: + rows: 23 + columns: 148 + - type: include,RADIO_COMBINED_MINIMAL + replace: + radio_id: 1 # {radio_id} is replaced anywhere it appears in the included config + # Maybe you have two radios COMACTTX{radio_id} -> COMACTTX1 + row: 45 + column: 0 + span: + rows: 30 + columns: 200 + + + diff --git a/src/pyefis/config/screens/sixpack-portrait.yaml b/src/pyefis/config/screens/sixpack-portrait.yaml new file mode 100644 index 00000000..666ea7e3 --- /dev/null +++ b/src/pyefis/config/screens/sixpack-portrait.yaml @@ -0,0 +1,84 @@ +SIXPACK: + module: pyefis.screens.screenbuilder + title: Standard Instrument Panel New + include: + - HMI_ENCODER_BUTTONS + layout: + rows: 110 + columns: 200 + draw_grid: false + instruments: + - type: include,BUTTON_GROUP2 + disabled: BUTTONS + row: 100 + column: 0 + - + type: airspeed_dial + row: 0 + column: 0 + span: + rows: 30 + columns: 100 + options: + bg_color: "#00000000" + - type: atitude_indicator + row: 30 + column: 0 + span: + rows: 30 + columns: 100 + - + type: altimeter_dial + row: 0 + column: 100 + span: + rows: 30 + columns: 100 + options: + altitude: true + - + type: turn_coordinator + row: 30 + column: 100 + span: + rows: 30 + columns: 100 + - + type: horizontal_situation_indicator + row: 64 + column: 0 + span: + rows: 30 + columns: 100 + move: + shrink: 11 + justify: + - bottom + options: + gsi_enabled: true + cdi_enabled: true + font_percent: 0.07 + - + type: heading_display + column: 40 + row: 60 + span: + rows: 5 + columns: 14 + - + type: vsi_dial + row: 64 + column: 100 + span: + rows: 30 + columns: 100 + - type: value_text + disabled: DEMO_TESTING_TEXT + row: 100 + column: 60 + span: + rows: 10 + columns: 140 + options: + dbkey: MAVMSG + font_percent: 0.9 diff --git a/src/pyefis/screens/screenbuilder.py b/src/pyefis/screens/screenbuilder.py index 70d92817..325b750a 100644 --- a/src/pyefis/screens/screenbuilder.py +++ b/src/pyefis/screens/screenbuilder.py @@ -102,7 +102,7 @@ def __init__(self, parent=None,config=None): # vsi_pfd # Testing to do - def calc_includes(self,i): + def calc_includes(self,i,p_rows,p_cols): args = i['type'].split(',') if os.path.exists(os.path.join(self.parent.config_path,args[1])): iconfig = yaml.load(open(os.path.join(self.parent.config_path,args[1])), Loader=yaml.SafeLoader) @@ -115,20 +115,38 @@ def calc_includes(self,i): inst_cols = 0 # Calculate max spans for inst in insts: + a_rows = p_rows + a_cols = p_cols if 'span' in inst: if 'rows' in inst['span']: - # inst_rows shold be the sum of row + row span - if inst['span']['rows'] + inst['row'] > inst_rows: inst_rows = inst['span']['rows'] + inst['row'] + a_rows = inst['span']['rows'] if 'columns' in inst['span']: - # inst_cols should be the sum of colum + column span - if inst['span']['columns'] + inst['column'] > inst_cols: inst_cols = inst['span']['columns'] + inst['column'] + a_cols = inst['span']['columns'] + + # inst_rows shold be the sum of row + row span + if a_rows + inst.get('row',0) > inst_rows: inst_rows = a_rows + inst.get('row',0) + # inst_cols should be the sum of colum + column span + if a_cols + inst.get('column',0) > inst_cols: inst_cols = a_cols + inst.get('column',0) else: # This is not spanned - if 'include,' in i['type']: + if 'include,' in inst['type']: # Need to resolve these includes too - rows, cols = self.calc_includes(inst) + pp_rows = inst_rows + pp_cols = inst_cols + if inst_rows == 0: + pp_rows = p_rows + if inst_cols == 0: + pp_cols = p_cols + rows, cols = self.calc_includes(inst,pp_rows,pp_cols) if rows + inst['row'] > inst_rows: inst_row = rows + inst['row'] if cols + inst['column'] > inst_cols: inst_cols = cols + inst['column'] + else: + inst_rows = p_rows + inst_cols = p_cols + if inst_rows == 0: + inst_rows = p_rows + if inst_cols == 0: + inst_cols = p_cols return [ inst_rows, inst_cols ] def load_instrument(self,i,count,replacements=None,row_p=1,col_p=1,relative_x=0,relative_y=0,inst_rows=0,inst_cols=0,state=False): @@ -155,10 +173,10 @@ def load_instrument(self,i,count,replacements=None,row_p=1,col_p=1,relative_x=0, return count relative_x = i.get('row', 0) relative_y = i.get('column', 0) - inst_rows, inst_cols = self.calc_includes(i) if 'span' in i: span_rows = i['span'].get('rows',0) span_cols = i['span'].get('columns',0) + inst_rows, inst_cols = self.calc_includes(i,span_rows,span_cols) args = i['type'].split(',') if os.path.exists(os.path.join(self.parent.config_path,args[1])): iconfig = yaml.load(open(os.path.join(self.parent.config_path,args[1])), Loader=yaml.SafeLoader) @@ -212,8 +230,8 @@ def load_instrument(self,i,count,replacements=None,row_p=1,col_p=1,relative_x=0, row_p = ( span_rows / inst_rows ) if span_cols > 0 and inst_cols > 0: col_p = ( span_cols / inst_cols ) - inst['row'] = (inst['row'] * row_p) + relative_x - inst['column'] = (inst['column'] * col_p) + relative_y + inst['row'] = (inst.get('row',0) * row_p) + relative_x + inst['column'] = (inst.get('column',0) * col_p) + relative_y if 'span' in inst: if 'rows' in inst['span']: if inst['span']['rows'] >= 0: @@ -221,6 +239,10 @@ def load_instrument(self,i,count,replacements=None,row_p=1,col_p=1,relative_x=0, if 'columns' in inst['span']: if inst['span']['columns'] >= 0: inst['span']['columns'] = inst['span']['columns'] * col_p + else: + inst['span'] = {} + inst['span']['rows'] = inst_rows + inst['span']['columns'] = inst_cols if 'ganged' in inst['type']: #ganged instrument if 'gang_type' not in inst: