Temperatura, Prędkość wiatraków i Napięcia

Temperatura, Prędkość wiatraków i Napięcia
  • Rejestracja: dni
  • Ostatnio: dni
0

Krótko,

Jak to zrobić, żeby odczytać te wartości z płyty głównej z poziomu Delphi ??

//Proszę odpowiadać na temat lub w ogóle - wszelkie pogawędki będą kasowane - m.M

lofix
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wdzydze
0

ZlPortio (komponent do odczytu BIOSu pod winda)
musisz tylko miec mape zeby odczytac dobre wartosci)
w jakims archiwalnym CHIPie byl o tym artykul

Krecik
  • Rejestracja: dni
  • Ostatnio: dni
0

Od razu uprzedzam: Nawet nie próbowałem tego robić bo mój komp nie ma termometru.
Ale wiem jak to wygląda i że można to odcztać w BIOS... Więc chyba jest gdzies w pamięci. Poszukaj może znajdziesz gdzieś informację gdzie, a wtedy możesz np. posłużyć się czymś takim:

[code]int a=0xFE061;//W tym wypadku jest to chyba nr. seryjny plyty glownej.
char M[255];
strcpy(M, (char*)a);
Label1->Caption = M;[/code]

i zmienić zmienną "a" na dany adres w pamięci

Wodzu
  • Rejestracja: dni
  • Ostatnio: dni
0

Sam chcialbym napisac taki program, co to sa te mapy? :-/

buras
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 69
0

Poza tym ten kod (od krecika) nie zadziała pod żadną nt-podobną windą... tam nie da się tak po prostu odczytać zawartości jakiejś komórki pamięci. Niestety nie dokopałem się jak to zrobić pod tymi systemami i w C++B, nie używająć magicznych wstawek w asm-ie... jak ktoś wie to proszę o dopisek ...

Krecik
  • Rejestracja: dni
  • Ostatnio: dni
0

W ASMie też się najpewniej nie uda...

Ale pozostaje WinApi (MOŻE) i sterowniki...

buras
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 69
0

Zauważyłem że jest możliwość odczytu pod windą np xp bo na takiej sprawdzałem, ale z poziomu programu napisanego pod dosa i uruchamianego z konsoli... może bys ię dało jakoś oszukać windę że prog napisany w BCB jest dosowy... jak kogoś interesuje to dam kod przepisany z książki Taylora...

Centralny
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tychy
  • Postów: 46
0

Witam,

Pomęczyłem troszke ludzi z Solteka, bo tej firmy mam płyte, i przysłali mi opis techniczny mojej płyty :-). 2 MB textu w PFD. Pogubiłem się przeglądając to, ale zauważyłem że sa podane jakieś adresy, offsety itd.

Nie udało się wyciągnąc od nich kodów ich firmowego programu :-( niestety. Teraz tylko zrozumieś tego "manuala" i program napisać :-D

Jak ktoś chce moge podasłać tego PDF'a.

jas_dream
  • Rejestracja: dni
  • Ostatnio: dni
0

--- odczyt szybkości procesora ---

Kopiuj
function TForm1.GetCpuSpeed: Extended;
var
  t: DWORD;
  mhi, mlo, nhi, nlo: DWORD;
  t0, t1, chi, clo, shr32: Comp;
begin
  shr32 := 65536;
  shr32 := shr32 * 65536;
  t := GetTickCount;
  while t = GetTickCount do begin end;

asm

Kopiuj
    DB 0FH
    DB 031H
    mov mhi,edx
    mov mlo,eax
Kopiuj
end;

  while GetTickCount < (t + 1000) do begin end;

  asm

Kopiuj
    DB 0FH
    DB 031H
    mov nhi,edx
    mov nlo,eax

Kopiuj
  end;
  chi := mhi; if mhi < 0 then  chi := chi + shr32;
  clo := mlo; if mlo < 0 then  clo := clo + shr32;
  t0 := chi * shr32 + clo;
  chi := nhi; if nhi < 0 then  chi := chi + shr32;
  clo := nlo; if nlo < 0 then  clo := clo + shr32;
  t1 := chi * shr32 + clo;
  Result := (t1 - t0) / 1E6;
end;

procedure Button1.onClick;
begin
 label1.Caption := FloatToStr(GetCpuSpeed) + 'mhz';
end;

jeżeli chodzi o temperature to pozostawiam tylko jedną metodę:

  • instalujemy Hardware Sensor Monitor (hmonitor)
  • ustalamy w konfiguracji że log ma byc co jakiś czas np. 15 sek. i zaznaczyc pole "EventLog.csv"
  • plik "EventLog.csv" zpaisywać w stałej lokalizacji, np. "c:\hmonitor\log\EventLog.csv"
  • dodaj na formę Memo1, Button1, i Captrion1
  • (plik csv, to dane oddzielone od siebie znakiem średnika ; ) wpisać w Delphi funkcję (button1.onclick)
Kopiuj
procedure TForm1.Button1Click(Sender: TObject);
var
   List: TStringList;
   begin
   List := TStringList.Create;
   try
   memo1.Lines.LoadFromFile('c:\hmonitor\log\EventLog.csv');{lokalizacja, np.: c:\hmonitor\log\EventLog.csv }
   text := memo1.Lines.Text;
   Extract(';', text, List);
      Label1.Caption := List[2] + '*C oraz ' + List[3] + '*C';
   finally
      List.Free;
   end;
end;

powinno działać

Kopiuj
ShowMessage('Niech Delphi będzie z Tobą');

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.