Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Как прочитать показания датчиков?


Автор: able1985 24.6.2007, 21:37
Люди, кто-нибудь знает, как прочитать датчики материнской платы, проца, винта?
Интересует в первую очередь температура.
Возможно ли это вообще средствами С++?
Что-то поиск в этом разделе ничего не дает.

Автор: Klin 24.6.2007, 22:42
Какие датчики? У меня на материнке только провода, платы, проц и преобладающие килограмы пыли smile Если речь о скорости процессора, то воть:
Код

double CPUSpeed(void) 
  { 
    DWORD dwTimerHi, dwTimerLo; 
    asm
     { 
        DW 0x310F 
        mov dwTimerLo, EAX 
        mov dwTimerHi, EDX 
      } 
    Sleep (500); 
    asm
     { 
        DW 0x310F 
        sub EAX, dwTimerLo 
        sub EDX, dwTimerHi 
        mov dwTimerLo, EAX 
        mov dwTimerHi, EDX 
     } 
    return dwTimerLo/(1000.0*500); 
  }

Автор: able1985 25.6.2007, 00:56
Нет, Klin, это я и сам уже знаю и делал.
Я имел в виду те датчики, которые встроены в материнку, проц, винт. там какие-то термодиоды и они как-то передают свои данные, а проги типа Everest и MotherBoard Monitor их читают и показывают мне температуру.
Вот мне и интересно, как они их читают и как это сделать в своей программе.

Автор: ksili 25.6.2007, 09:48
Скорее всего средствами С++ не получится. Придётся использовать асм, как в приведённом примере.
наверняка значения этих датчиков выставляются на каких-то портах. Причём порты эти меняются от модели к модели, от производителя к производителю. Именно поэтому всякие программки, управляющие вентиляторами на основании имеющихся в системе датчиков не работают со всеми мат. платами, а только с определёнными платами определённого производителя. И как правило утилитка такая написана тем же производителем.

Ещё вроде есть какие-то машинно-зависимые регистры. Они находятся в проце (начиная кажется с Пентиума первого). Может и в них есть такая инфа, если в проце есть термодатчик. Но опять же - от модели к модели они меняются и вообще не очень-то афишируются производителями.

Автор: able1985 25.6.2007, 11:03
Ksili, спасибо и на том. Теперь хотя бы ясно, куда копать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)