How to get monitor physical size in millimeters(mm) or centimetre(cm)? #8061
|
I know that |
Answered by
luozhonghe
Apr 6, 2026
Replies: 1 comment
|
I found a solution that allows me to query the physical dimensions of a monitor using the https://docs.rs/piaf/latest/piaf/struct.DisplayCapabilities.html Code Example: [dependencies]
piaf = "0.4"fn parse_display_capabilities(edid_bytes: &[u8]) -> Result<piaf::DisplayCapabilities, piaf::model::diagnostics::EdidError> {
let library = piaf::ExtensionLibrary::with_standard_handlers();
let parsed = piaf::parse_edid(&edid_bytes, &library)?;
Ok(piaf::capabilities_from_edid(&parsed, &library))
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
// "/sys/class/drm/card0-HDMI-A-1/edid"
// "/sys/class/drm/card1-HDMI-A-1/edid"
let path = "/sys/class/drm/card1-HDMI-A-1/edid";
let edid_bytes = std::fs::read(path)?;
let caps = parse_display_capabilities(&edid_bytes)?;
// println!("{:?}", caps);
if let Some(val) = caps.manufacturer {
println!("manufacturer: {:?}", val.as_str());
}
if let Some(val) = caps.manufacture_date {
println!("manufacture_date: {:?}", val);
}
if let Some(val) = caps.display_name {
println!("display_name: {:?}", val.as_str());
}
if let Some(val) = caps.serial_number_string {
println!("serial_number_string: {:?}", val);
}
if let Some(val) = caps.screen_size {
// in centimetre(cm)
println!("screen_size: {:?}", val);
}
if let Some(val) = caps.max_pixel_clock_mhz {
println!("max_pixel_clock_mhz: {:?}", val);
}
Ok(())
} |
0 replies
Answer selected by
luozhonghe
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I found a solution that allows me to query the physical dimensions of a monitor using the
piaflibrary.https://docs.rs/piaf/latest/piaf/struct.DisplayCapabilities.html
Code Example: