Adding control commands for all non-av modules - #72
Conversation
There was a problem hiding this comment.
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
nowill be parsed as booleanfalseby 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
nowill be parsed as booleanfalseby 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
nowill be parsed as booleanfalseby 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
nowill be parsed as booleanfalseby 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
nowill be parsed as booleanfalseby 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
nowill be parsed as booleanfalseby 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
nowill be parsed as booleanfalseby 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
nowill be parsed as booleanfalseby 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.
bhanucbp
left a comment
There was a problem hiding this comment.
. 1. Add one readme
- add type for each parameter (int, uint, string, Boolean, float etc)
There was a problem hiding this comment.
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: nowill be parsed as booleanFalseby 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: nowill be parsed as booleanFalseby 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: nowill be parsed as booleanFalseby 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: nowill be parsed as booleanFalseby 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: nowill be parsed as booleanFalseby 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: nowill be parsed as booleanFalseby 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: nowill be parsed as booleanFalseby 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: nowill be parsed as booleanFalseby 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
onandnoare parsed as booleans by PyYAML (YAML 1.1), but the comments describe these as string enums. If a controller loads this template withyaml.safe_load,power_statusbecomesTrueandfaultbecomesFalse, 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: nowill be parsed as booleanFalseby 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: nowill be parsed as booleanFalseby 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
4d8837f to
04e6b32
Compare
There was a problem hiding this comment.
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
nois 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
nois 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
nois 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
nois 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
nois 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
nois 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
nois 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
nois 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
nois 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
keycodeexample value doesn’t match the documented mapping: withtrigger: 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
0x82for byte lists, but the README describeslist[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
onis 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
nois 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
nois 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
No description provided.