Skip to content

Adding control commands for all non-av modules - #72

Open
kanjoe24 wants to merge 2 commits into
developfrom
feature/add-control-commands
Open

Adding control commands for all non-av modules#72
kanjoe24 wants to merge 2 commits into
developfrom
feature/add-control-commands

Conversation

@kanjoe24

Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI review requested due to automatic review settings July 29, 2026 18:30

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a set of YAML “control command” examples for multiple non-AV modules (e.g., HDMI input/output events, HDMI-CEC network/configuration, deep sleep triggers, composite input events, bootreason triggers, motion/thermal sensors). These files appear intended to be consumed by a stub/test harness to inject module events or simulate device state.

Changes:

  • Added new control-command YAMLs for HDMI input/output event injection (EDID read, HDCP status, hotplug, infoframes, VRR, etc.).
  • Added new HDMI-CEC YAMLs for configuring a CEC topology, adding/removing devices, and sending CEC messages.
  • Added YAMLs for deepsleep triggers/errors, composite input state/events, bootreason triggers, and motion/thermal sensor triggers.

Reviewed changes

Copilot reviewed 31 out of 31 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
controlCommands/thermalsensor/thermalsensor_trigger.yaml Adds a control command example to inject a thermal sensor temperature update.
controlCommands/motionsensor/motionsensor_trigger.yaml Adds a control command example to inject a motion sensor event.
controlCommands/hdmioutput/hdmioutput_hotplug_state.yaml Adds HDMI output hotplug state event command example.
controlCommands/hdmioutput/hdmioutput_hdcp_status.yaml Adds HDMI output HDCP status event command example.
controlCommands/hdmioutput/hdmioutput_frame_rate_changed.yaml Adds HDMI output frame-rate-changed event command example.
controlCommands/hdmioutput/hdmioutput_edid_read.yaml Adds HDMI output EDID read event command example (with sample EDID bytes).
controlCommands/hdmiinput/hdmiinput_vrr_status.yaml Adds HDMI input VRR status event command example.
controlCommands/hdmiinput/hdmiinput_videoformat_change.yaml Adds HDMI input video format change event command example.
controlCommands/hdmiinput/hdmiinput_vendorspecificinfo_frame.yaml Adds HDMI input VSIF infoframe injection command example.
controlCommands/hdmiinput/hdmiinput_spdinfo_frame.yaml Adds HDMI input SPD infoframe injection command example.
controlCommands/hdmiinput/hdmiinput_signal_status.yaml Adds HDMI input signal status event command example.
controlCommands/hdmiinput/hdmiinput_hdcp_status.yaml Adds HDMI input HDCP status event command example.
controlCommands/hdmiinput/hdmiinput_drminfo_frame.yaml Adds HDMI input DRM infoframe injection command example.
controlCommands/hdmiinput/hdmiinput_connection_status.yaml Adds HDMI input connection status event command example.
controlCommands/hdmiinput/hdmiinput_aviinfo_frame.yaml Adds HDMI input AVI infoframe injection command example.
controlCommands/hdmiinput/hdmiinput_audioinfo_frame.yaml Adds HDMI input audio infoframe injection command example.
controlCommands/hdmicec/hdmicec_device_status.yaml Adds HDMI-CEC command example for updating an existing device’s status.
controlCommands/hdmicec/hdmicec_device_remove.yaml Adds HDMI-CEC command example for removing a device from the map.
controlCommands/hdmicec/hdmicec_device_print.yaml Adds HDMI-CEC command example for printing the device map.
controlCommands/hdmicec/hdmicec_device_config.yaml Adds HDMI-CEC command example for initializing a minimal device map.
controlCommands/hdmicec/hdmicec_device_config_add_network.yaml Adds HDMI-CEC command example for initializing a multi-device CEC topology.
controlCommands/hdmicec/hdmicec_device_cec_message.yaml Adds HDMI-CEC command example for sending a named CEC message.
controlCommands/hdmicec/hdmicec_device_cec_message_userdef.yaml Adds HDMI-CEC command example for sending a raw user-defined CEC message.
controlCommands/hdmicec/hdmicec_device_bus_status.yaml Adds HDMI-CEC command example for updating CEC bus line state.
controlCommands/hdmicec/hdmicec_device_add.yaml Adds HDMI-CEC command example for dynamically adding a new device.
controlCommands/deepsleep/deepsleep_trigger.yaml Adds deep-sleep wakeup trigger command example.
controlCommands/deepsleep/deepsleep_simulate_error.yaml Adds deep-sleep error injection command example.
controlCommands/compositeinput/compositeinput_video_mode.yaml Adds composite input detected video mode change command example.
controlCommands/compositeinput/compositeinput_signal_status.yaml Adds composite input signal status command example.
controlCommands/compositeinput/compositeinput_connection_status.yaml Adds composite input connection/cable state command example.
controlCommands/bootreason/bootreason_external_triggers.yaml Adds boot reason trigger command example with documented reason options.
Comments suppressed due to low confidence (8)

controlCommands/hdmicec/hdmicec_device_config.yaml:43

  • Unquoted no will be parsed as boolean false by YAML 1.1 parsers (including PyYAML). Since this field is documented as an enum-like string (no/yes), quote it to avoid type mismatches.
        fault: no                      # Fault state: no | yes

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:54

  • Unquoted no will be parsed as boolean false by YAML 1.1 parsers (including PyYAML). Since this field is documented as an enum-like string (no/yes), quote it to avoid type mismatches.
            fault: no                  # Fault state: no | yes

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:43

  • Unquoted no will be parsed as boolean false by YAML 1.1 parsers (including PyYAML). Since this field is documented as an enum-like string (no/yes), quote it to avoid type mismatches.
        fault: no                      # Fault state: no | yes

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:65

  • Unquoted no will be parsed as boolean false by YAML 1.1 parsers (including PyYAML). Since this field is documented as an enum-like string (no/yes), quote it to avoid type mismatches.
                fault: no              # Fault state: no | yes

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:76

  • Unquoted no will be parsed as boolean false by YAML 1.1 parsers (including PyYAML). Since this field is documented as an enum-like string (no/yes), quote it to avoid type mismatches.
                fault: no              # Fault state: no | yes

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:87

  • Unquoted no will be parsed as boolean false by YAML 1.1 parsers (including PyYAML). Since this field is documented as an enum-like string (no/yes), quote it to avoid type mismatches.
            fault: no                  # Fault state: no | yes

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:98

  • Unquoted no will be parsed as boolean false by YAML 1.1 parsers (including PyYAML). Since this field is documented as an enum-like string (no/yes), quote it to avoid type mismatches.
            fault: no                  # Fault state: no | yes

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:109

  • Unquoted no will be parsed as boolean false by YAML 1.1 parsers (including PyYAML). Since this field is documented as an enum-like string (no/yes), quote it to avoid type mismatches.
                fault: no              # Fault state: no | yes

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread controlCommands/hdmicec/hdmicec_device_add.yaml Outdated
Comment thread controlCommands/deepsleep/deepsleep_simulate_error.yaml Outdated
Comment thread controlCommands/hdmicec/hdmicec_device_config_add_network.yaml Outdated
Comment thread controlCommands/hdmicec/hdmicec_device_config.yaml Outdated

@bhanucbp bhanucbp left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

. 1. Add one readme

  1. add type for each parameter (int, uint, string, Boolean, float etc)

Copilot AI review requested due to automatic review settings July 30, 2026 10:43

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 32 out of 32 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (11)

controlCommands/hdmicec/hdmicec_device_config.yaml:43

  • fault: no will be parsed as boolean False by PyYAML (YAML 1.1), but this field is documented as a string enum. Quote the value to preserve the intended string.
        fault: no                      # Fault state, string (enum) : no | yes

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:43

  • fault: no will be parsed as boolean False by PyYAML (YAML 1.1), but this field is documented as a string enum. Quote the value to preserve the intended string.
        fault: no                      # Fault state, string (enum) : no | yes

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:54

  • fault: no will be parsed as boolean False by PyYAML (YAML 1.1), but this field is documented as a string enum. Quote the value to preserve the intended string.
            fault: no                  # Fault state, string (enum) : no | yes

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:65

  • fault: no will be parsed as boolean False by PyYAML (YAML 1.1), but this field is documented as a string enum. Quote the value to preserve the intended string.
                fault: no              # Fault state, string (enum) : no | yes

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:76

  • fault: no will be parsed as boolean False by PyYAML (YAML 1.1), but this field is documented as a string enum. Quote the value to preserve the intended string.
                fault: no              # Fault state, string (enum) : no | yes

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:87

  • fault: no will be parsed as boolean False by PyYAML (YAML 1.1), but this field is documented as a string enum. Quote the value to preserve the intended string.
            fault: no                  # Fault state, string (enum) : no | yes

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:98

  • fault: no will be parsed as boolean False by PyYAML (YAML 1.1), but this field is documented as a string enum. Quote the value to preserve the intended string.
            fault: no                  # Fault state, string (enum) : no | yes

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:109

  • fault: no will be parsed as boolean False by PyYAML (YAML 1.1), but this field is documented as a string enum. Quote the value to preserve the intended string.
                fault: no              # Fault state, string (enum) : no | yes

controlCommands/hdmicec/hdmicec_device_add.yaml:32

  • Unquoted YAML scalars like on and no are parsed as booleans by PyYAML (YAML 1.1), but the comments describe these as string enums. If a controller loads this template with yaml.safe_load, power_status becomes True and fault becomes False, causing a type mismatch downstream.
    power_status: on                   # Initial power state, string (enum) : on | off | standby | transitionToOn | transitionToStandby
    fault: no                          # Fault/error state, string (enum) : no = normal operation, yes = device in error state

controlCommands/hdmicec/hdmicec_device_config.yaml:33

  • fault: no will be parsed as boolean False by PyYAML (YAML 1.1), but this field is documented as a string enum. Quote the value to preserve the intended string.

This issue also appears on line 43 of the same file.

      fault: no                        # Fault state, string (enum) : no = normal operation, yes = error state

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:33

  • fault: no will be parsed as boolean False by PyYAML (YAML 1.1), but this field is documented as a string enum. Quote the value to preserve the intended string.

This issue also appears in the following locations of the same file:

  • line 43
  • line 54
  • line 65
  • line 76
  • line 87
  • ...and 2 more
      fault: no                        # Fault state, string (enum) : no = normal operation, yes = error state

@kanjoe24
kanjoe24 force-pushed the feature/add-control-commands branch from 4d8837f to 04e6b32 Compare July 30, 2026 13:57
Copilot AI review requested due to automatic review settings July 30, 2026 13:57

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 32 out of 32 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (16)

controlCommands/hdmicec/hdmicec_device_add.yaml:81

  • In YAML 1.1 (including common PyYAML defaults), unquoted no is parsed as a boolean rather than a string. Since this field is documented as an enum string, it should be quoted to avoid type mismatches.
    fault: no

controlCommands/hdmicec/hdmicec_device_config.yaml:126

  • In YAML 1.1 (including common PyYAML defaults), unquoted no is parsed as a boolean rather than a string. Since this field is documented as an enum string, it should be quoted to avoid type mismatches.
        fault: no

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:120

  • In YAML 1.1 (including common PyYAML defaults), unquoted no is parsed as a boolean rather than a string. Since this field is documented as an enum string, it should be quoted to avoid type mismatches.
        fault: no

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:148

  • In YAML 1.1 (including common PyYAML defaults), unquoted no is parsed as a boolean rather than a string. Since this field is documented as an enum string, it should be quoted to avoid type mismatches.
            fault: no

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:175

  • In YAML 1.1 (including common PyYAML defaults), unquoted no is parsed as a boolean rather than a string. Since this field is documented as an enum string, it should be quoted to avoid type mismatches.
                fault: no

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:202

  • In YAML 1.1 (including common PyYAML defaults), unquoted no is parsed as a boolean rather than a string. Since this field is documented as an enum string, it should be quoted to avoid type mismatches.
                fault: no

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:229

  • In YAML 1.1 (including common PyYAML defaults), unquoted no is parsed as a boolean rather than a string. Since this field is documented as an enum string, it should be quoted to avoid type mismatches.
            fault: no

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:256

  • In YAML 1.1 (including common PyYAML defaults), unquoted no is parsed as a boolean rather than a string. Since this field is documented as an enum string, it should be quoted to avoid type mismatches.
            fault: no

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:282

  • In YAML 1.1 (including common PyYAML defaults), unquoted no is parsed as a boolean rather than a string. Since this field is documented as an enum string, it should be quoted to avoid type mismatches.
                fault: no

controlCommands/deepsleep/deepsleep_trigger.yaml:48

  • keycode example value doesn’t match the documented mapping: with trigger: RCU_BT, the comment says RCU_BT uses keycode 7, but the template sets 6. This can lead to tests sending the wrong wakeup keycode.
    keycode: 6

controlCommands/README.md:36

  • This README claims every command file uses the three-level layout, but the templates in this PR include commands with fields directly under the root node (no params: block), so the statement is inaccurate/misleading.
Every command file follows the same three-level layout:

controlCommands/README.md:129

  • The templates in this directory use unquoted hex values like 0x82 for byte lists, but the README describes list[uint8] as “hex strings”. This mismatch can mislead controller authors about the expected YAML types.
| `list[uint8]` | List of byte values as hex strings (e.g. InfoFrame / EDID payloads) |

controlCommands/hdmicec/hdmicec_device_add.yaml:71

  • In YAML 1.1 (including common PyYAML defaults), unquoted on is parsed as a boolean rather than a string. Since this field is documented as an enum string, it should be quoted to avoid type mismatches.

This issue also appears on line 81 of the same file.

    power_status: on

controlCommands/hdmicec/hdmicec_device_config.yaml:82

  • In YAML 1.1 (including common PyYAML defaults), unquoted no is parsed as a boolean rather than a string. Since this field is documented as an enum string, it should be quoted to avoid type mismatches.

This issue also appears on line 126 of the same file.

      fault: no

controlCommands/hdmicec/hdmicec_device_config_add_network.yaml:82

  • In YAML 1.1 (including common PyYAML defaults), unquoted no is parsed as a boolean rather than a string. Since this field is documented as an enum string, it should be quoted to avoid type mismatches.

This issue also appears in the following locations of the same file:

  • line 120
  • line 148
  • line 175
  • line 202
  • line 229
  • ...and 2 more
      fault: no

controlCommands/hdmiinput/hdmiinput_vrr_status.yaml:52

  • This param key is the only all-caps identifier in these templates (others use snake_case or lowerCamelCase). If the stub/controller expects lowerCamelCase like the surrounding fields, consider renaming (or add a note explaining why the all-caps key is required).
    M_CONST: true

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Task: Control commands needs to be put under version control

4 participants