none
SetVCPFeature RRS feed

  • Вопрос

  • Всем добрый вечер!
    Собственно недавно заинтересовался как выключить и включить монитор. Вроде бы разобрался, но тут возникло одно НО. По факту все сейчас современные мониторы поддерживают VCP code D6h с 1 и 4, да и если что проверить эту поддержку не сложно - мало ли вдруг. Но некоторое производители используют свои VCP code например как я прочитал на хабраре Samsung использует VCP code E1h с 0 и 1. И например у меня как раз Самсунговский монитор и хоть он тоже поддерживает VCP code D6h с 1 и 4, но по факту корректно работает только с своими VCP code E1h с 0 и 1, а с стандартным только выключается но программно не включается. По стандарту MCCS во всех мониторах должно присутствовать VCP code C8h для проверки создателя чипа монитора благодаря чему можно уже по заранее готовой таблице использовать только доступные VCP code и определённые производителем.
    Я это виду к тому может кто в этом деле разбирается и знает где можно взять информацию о поддерживаемых VCP code для конкретного производителя чипа монитора?
    6 июня 2018 г. 16:26

Ответы

  • На домашнем компьютере кстати работает управление питанием через код D6. Вот полная строка (LG Flatron W2043T):

    prot(monitor)type(lcd)model(W2x43)mccs_ver(2.0)vcp(02 03 04 05 06 08 0B 0C 0E 10 12 14(01 05 06 07 08 0B) 16 18 1A 1E 20 30 3E 60 6C 6E 70 87 AC AE B6 C0 C6 C8 C9 D6(01 04) DF F2(00 01 02) F3(00 01 02 03) FC(00 01 02 03) FD(00 01) FE(00 01 02) )mswhql(1)

    8 июня 2018 г. 15:36

Все ответы

  • Может кто проверить как у него ведет SetVCPFeature, особенно если монитор не Самсунговский ?

    Вот ссылка на исходники и скомпилированный файл: 

    https://1drv.ms/u/s!AmUNKNi3f_RPhJgzLAHlSDzSGaYTzQ

    P.S Правда почему то Chrome блокирует скачивание считая вредоносным файлом...

    7 июня 2018 г. 16:46
  • У меня ноль эффекта.

    Что касается поддерживаемых VCP-кодов, можно посмотреть с помощью ControlMyMonitor, или программно:

    DWORD len;
    GetCapabilitiesStringLength(hMonitor,&len);
    LPSTR str = (LPSTR)malloc(len+1);
    CapabilitiesRequestAndCapabilitiesReply(hMonitor,str,len);

    У меня результат такой (Acer):

    (prot(monitor)type(lcd)model(P194W)cmds(01 02 03 07 0C 4E E3 F3)vcp(04 05 06 08
    0E 10 12 14(05 08 0B) 16 18 1A 1E 20 30 3E FA(00 01 02) FB FC FD FE(00 01 02 04)
     B6 C6 C8 C9 DF)mswhql(1)mccs_ver(2.0)asset_eep(32)mpu_ver(01))

  • Благодарю за проверку.

    Такой результат говорит об том что походу производители в своем большинстве не особо придерживаются стандартной спецификации выключения монитора через VCP code D6h, а реализуют через свои коды Manufacturer Specific. Так что без спецификаций производителей ну никак в этом деле...

    В общем если кто имеет такие спецификации или знает где можно их почитать то поделитесь ссылочкой.

    8 июня 2018 г. 10:55
  • На домашнем компьютере кстати работает управление питанием через код D6. Вот полная строка (LG Flatron W2043T):

    prot(monitor)type(lcd)model(W2x43)mccs_ver(2.0)vcp(02 03 04 05 06 08 0B 0C 0E 10 12 14(01 05 06 07 08 0B) 16 18 1A 1E 20 30 3E 60 6C 6E 70 87 AC AE B6 C0 C6 C8 C9 D6(01 04) DF F2(00 01 02) F3(00 01 02 03) FC(00 01 02 03) FD(00 01) FE(00 01 02) )mswhql(1)

    8 июня 2018 г. 15:36