Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sending abort with opcode a4 and reason 'unrecognised opcode' to TV #615

Open
ballle98 opened this issue Sep 13, 2022 · 1 comment
Open

Comments

@ballle98
Copy link

I'm working on a project here to bridge CEC to LIRC to control the volume on my ancient Yamaha receiver. https://github.com/ballle98/cec-lirc

There are several CEC 1.4 Audo opcodes that are known but report unknown

/* CEC 1.4 */
  CEC_OPCODE_REQUEST_SHORT_AUDIO_DESCRIPTORS  = 0xA4,

This is log for 0xA4

[09/09/22 08:19:22.0330] LOG4 CEC client registered: libCEC version = 6.0.2, client version = 4.0.0, firmware version = 1, logical address(es) = Audio (5) , physical address: 1.0.0.0, compiled on Linux-5.4.0-72-generic ... , features: P8_USB, DRM, P8_detect, randr, RPi, Exynos, Linux, AOCEC
[09/09/22 08:19:22.0330] LOG16 << Audio (5) -> TV (0): OSD name 'CECtoIR'
[09/09/22 08:19:22.0330] LOG8 << 50:47:43:45:43:74:6f:49:52
[09/09/22 08:19:22.0570] LOG16 << requesting power status of 'TV' (0)
[09/09/22 08:19:22.0570] LOG8 << 50:8f
[09/09/22 08:19:22.0721] LOG8 >> 05:a4:0a
CECCommand: opcode a4 0 -> 5
[09/09/22 08:19:22.0721] LOG16 sending abort with opcode a4 and reason 'unrecognised opcode' to TV
[09/09/22 08:19:22.0721] LOG16 << transmitting abort message
[09/09/22 08:19:22.0721] LOG8 << 50:00:a4:00
[09/09/22 08:19:22.0721] LOG16 >> TV (0) -> Audio (5): UNKNOWN (A4)
[09/09/22 08:19:22.0901] LOG8 >> 05:9f
CECCommand: opcode 9f 0 -> 5
[09/09/22 08:19:22.0901] LOG16 << Audio (5) -> TV (0): cec version 1.4
[09/09/22 08:19:22.0901] LOG8 << 50:9e:05
[09/09/22 08:19:22.0901] LOG16 >> TV (0) -> Audio (5): get cec version (9F)

This is log for 0xC3

CECCommand: opcode c3 0 -> 5
[09/09/22 08:20:00.0750] LOG16 sending abort with opcode c3 and reason 'unrecognised opcode' to TV
[09/09/22 08:20:00.0750] LOG16 << transmitting abort message
[09/09/22 08:20:00.0750] LOG8 << 50:00:c3:00
[09/09/22 08:20:00.0750] LOG16 >> TV (0) -> Audio (5): request ARC start (C3)

@gmsoft-tuxicoman
Copy link

You will not be able to achieve this with current libcec. It lacks the features you need.
The problem is that you might send commands to the TV but their answer will get a "Unrecognized opcode." since you cannot tell libcec not to handle a specific command.

I have just created PR #617 to address this issue. See issue #612 for more details.

You can also find my python implementation here : https://github.com/gmsoft-tuxicoman/py-z906/

You can probably reuse cecclient.py and base your ceclirc.py code from z906cec.py from my repository.
HTH

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

No branches or pull requests

2 participants