-
Notifications
You must be signed in to change notification settings - Fork 29
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
Checking input works for one monitor but not the other (both same model) #130
Comments
What Can you re-run with debug logging on, like this? import logging
import monitorcontrol
logging.basicConfig(level=logging.DEBUG)
for monitor in monitorcontrol.get_monitors():
with monitor:
print(monitor.get_input_source()) This it what it shows on my triple-monitor system:
|
|
In the header the first byte is the source address, so that's 0x6E in the working monitor, and 0xBE in the non-working monitor. The second byte is the payload length, which is where things get weird. For your first monitor it is 0x88, 0x08 with the protocol flag cleared, which is valid. In the second monitor it is just zero, which I think isn't valid according to DDC-CI spec (though it has been a while since I read the spec). Can you run another test like this? This will increase the time given to the monitor to decode and send a reply. import logging
import monitorcontrol
logging.basicConfig(level=logging.DEBUG)
for monitor in monitorcontrol.get_monitors():
with monitor:
monitor.vcp.GET_VCP_TIMEOUT *= 4
print(monitor.get_input_source()) |
timeout doesn't appear to have improved things:
|
Here is a fully verbose trace from ddcutil in case it's helpful the full dump:
|
I am not seeing any obvious differences between ddcutil and monitorcontrol unfortunately. If you're comfortable with python I would recommend diving in and tinkering around - this is one of those situations that requires lots of trial and error to determine what is going wrong. |
At this point I've scripted something else to attain the goal I was aiming for. I probably won't get digging around to try and solve this personally, however am happy to help with testing or debugging if anyone happens across this and wants to attempt a fix |
possibly caused by sending two commands too frequently? I encountered a similar problem when sending two commands to a monitor successively, and fixed it by adding |
monitorcontrol --version
):Steps to Reproduce
Iterate through monitors checking which input is selected:
display info from ddcutil:
The text was updated successfully, but these errors were encountered: