question

Alxndr-6021 avatar image
0 Votes"
Alxndr-6021 asked Alxndr-6021 edited

Available screen resolutions in Windows 10 IoT Core and 4K

To properly display the download process of the Window 10 IoT Core operating system on Raspberry Pi, you must be known to be acceptable for frame rate and screen resolution of monitor. They come from somewhere and most likely when you get an EDID of connected monitor. From different types of platforms in Windows 10 IoT Core can be used as a Remote Machine and installed UWP applications in Visual Studio 2019.

Most commonly used for a single monitor

DisplayInformation displayInfo = DisplayInformation.GetForCurrentView();

As a result, it is possible to obtain such an introduction

CurrentOrientation Landscape Windows.Graphics.Display.DisplayOrientations
DiagonalSizeInInches null double?
LogicalDpi 96 float
NativeOrientation Landscape Windows.Graphics.Display.DisplayOrientations
RawDpiX 0 float
RawDpiY 0 float
RawPixelsPerViewPixel 1 double
ResolutionScale Scale100Percent Windows.Graphics.Display.ResolutionScale
ScreenHeightInRawPixels 768 uint
ScreenWidthInRawPixels 1360 uint
StereoEnabled false bool
Static members
AutoRotationPreferences None Windows.Graphics.Display.DisplayOrientations..

ScreenWidthInRawPixels, ScreenHeightInRawPixels are most likely used for established video mode. In more detail about the monitor in the Raspberry Pi 3 and Windows 10 IoT Core monitor is presented as "Generic Non-PnP Monitor", and EDID is not read on I2C. Magic MSMonitorClass is outside of UWP application platform of Windows 10 IoT Core.

MSMonitorClass is very useful for desktops ( Win32, C#, C++ )

https://docs.microsoft.com/en-us/windows/win32/wmicoreprov/wmigetmonitorraweedidv1block-wmimonitordescriptormethods

Examples
The following code example retrieves the EDID blocks of any display as raw 128 bit arrays.

CSharp

Copy
static void Main(string[] args)
{
ManagementClass mc = new ManagementClass(string.Format(@"\{0}\root\wmi:WmiMonitorDescriptorMethods", Environment.MachineName));

 foreach (ManagementObject mo in mc.GetInstances()) //Do this for each connected monitor
 {              
     for (int i = 0; i < 256; i++)
     {
         ManagementBaseObject inParams = mo.GetMethodParameters("WmiGetMonitorRawEEdidV1Block");
         inParams["BlockId"] = i; 

         ManagementBaseObject outParams = null;
         try
         {
             outParams = mo.InvokeMethod("WmiGetMonitorRawEEdidV1Block", inParams, null);
             Console.Out.WriteLine("Returned a block of type {0}, having a content of type {1} ",
                               outParams["BlockType"], outParams["BlockContent"].GetType());
         }
         catch { break; } //No more EDID blocks
     }
 }

}

Another way to get monitor and multiple monitor info in Windows 10 and in Windows 10 IoT Core

 String monitorSelector = DisplayMonitor.GetDeviceSelector();

 IAsyncOperation < DeviceInformationCollection> deviceSelection;

 deviceSelection = DeviceInformation.FindAllAsync(monitorSelector);

 AsyncStatus stat = deviceSelection.Status;

// Canceled, Error
if ( stat == AsyncStatus.Completed )
{
}
else
if ( stat == AsyncStatus.Started )
{
while ( (stat = deviceSelection.Status) != AsyncStatus.Completed )
{
}
}

 DeviceInformationCollection deviceCollection = deviceSelection.GetResults();

 foreach ( DeviceInformation device in deviceCollection )
 {
     String id = device.Id;

     IAsyncOperation<Windows.Devices.Display.DisplayMonitor> display;

     display = DisplayMonitor.FromInterfaceIdAsync(id);

     /*AsyncStatus*/ stat = display.Status;

// Canceled, Error
if ( stat == AsyncStatus.Completed)
{
}
else
if ( stat == AsyncStatus.Started )
{
while ((stat = display.Status) != AsyncStatus.Completed)
{
}
}

     DisplayMonitor monitor = display.GetResults();

     float x = monitor.RawDpiX;
     float y = monitor.RawDpiY;
 }

Properties from monitor EDID - "DisplayName", "PhysicalSizeInInches", "RawDpiX", "RawDpiY" are not real in Windows 10 IoT Core and
Raspberry Pi 3B but screen properties "NativeResolutionInRawPixels", "Height", "Width" are here correct

  • monitor {Windows.Devices.Display.DisplayMonitor} Windows.Devices.Display.DisplayMonitor

  • BluePrimary {0,0005;0,0005} Windows.Foundation.Point
    ConnectionKind Wired Windows.Devices.Display.DisplayMonitorConnectionKind
    DeviceId "\\\\?\\DISPLAY#Default_Monitor#1&8713bca&0&UID0#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7}" string
    DisplayAdapterDeviceId "\\\\?\\ROOT#BasicDisplay#0000#{5b45201d-f2f2-4f3b-85bb-30ff1f953599}" string

  • DisplayAdapterId {Windows.Graphics.DisplayAdapterId} Windows.Graphics.DisplayAdapterId
    HighPart 0 int
    LowPart 16506 uint
    DisplayAdapterTargetId 0 uint
    DisplayName "" string

  • GreenPrimary {0,0005;0,0005} Windows.Foundation.Point

  • IsDolbyVisionSupportedInHdrMode 'monitor.IsDolbyVisionSupportedInHdrMode' threw an exception of type 'System.InvalidCastException' bool {System.InvalidCastException}
    MaxAverageFullFrameLuminanceInNits 0 float
    MaxLuminanceInNits 0 float
    MinLuminanceInNits 0 float

  • NativeResolutionInRawPixels {Windows.Graphics.SizeInt32} Windows.Graphics.SizeInt32
    Height 1024 int
    Width 1280 int
    PhysicalConnector Unknown Windows.Devices.Display.DisplayMonitorPhysicalConnectorKind
    PhysicalSizeInInches null Windows.Foundation.Size?
    RawDpiX 0 float
    RawDpiY 0 float

  • RedPrimary {0,0005;0,0005} Windows.Foundation.Point
    UsageKind Standard Windows.Devices.Display.DisplayMonitorUsageKind

  • WhitePoint {0,0005;0,0005} Windows.Foundation.Point
    Native View To inspect the native object, enable native code debugging.

With same microcomputer and monitor Raspberry Pi OS command "tvservice" gives data from monitor EDID and dumps full EDID.

Windows 10 IoT Core for Intel SoC's ( MinnowBoard/MAX (x64)) gives correct results as in desktops.

Also "Windows Device Portal"

"Devices" "Device Manager"

ARM - "Generic Non-PnP Monitor"

 >Microsoft Basic Display Driver
 (ID:ROOT\BASICDISPLAY\0000, Class:System, Manufacturer:(Standard display types), StatusCode:1098907659)
     >Generic Non-PnP Monitor
     (ID:DISPLAY\DEFAULT_MONITOR\1&8713BCA&0&UID0, Class:Monitor, Manufacturer:(Standard monitor types), StatusCode:25190410)

x64 - "Generic PnP Monitor"

  >Microsoft Basic Display Adapter
  (ID:PCI\VEN_8086&DEV_5A84&SUBSYS_72708086&REV_0B\3&11583659&0&10, Class:Display, Manufacturer:(Standard display types), StatusCode:25174026)
     >Generic PnP Monitor
     (ID:DISPLAY\NCP0000\4&21AF0E9D&0&UID0, Class:Monitor, Manufacturer:(Standard monitor types), StatusCode:25174026)

Relative 4K

https://raspberrypi.stackexchange.com/questions/44089/can-raspberry-pi-3-do-4k-video

https://www.raspberrypi.org/forums/viewtopic.php?f=38&t=79330

dotnet-iot
5 |1600 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

0 Answers