Delphi-PRAXiS
Seite 1 von 6  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi SMART-Werte lesen (https://www.delphipraxis.net/72013-smart-werte-lesen.html)

ManuMF 23. Jun 2006 18:55


SMART-Werte lesen
 
Hallo,

ich bastele mir gerade eine Komponente, die mir die SMART-Festplatteninfos liefern soll. Ich habe dazu den Code von SwissDelphiCenter.ch verwendet, aber der liefert entweder keine oder nur falsche Werte (Vergleich: SpeedFan). Hier im Forum habe ich nur 2 Themen gefunden, eines davon mit Hinweis zu SwissDelphiCenter. Gibt es vielleicht noch eine andere Möglichkeit, die Werte auszulesen?

Danke,
ManuMF

Daniel G 23. Jun 2006 19:03

Re: SMART-Werte lesen
 
Probier mal, diese C-Demo nach Delphi zu portieren.

http://download.microsoft.com/downlo...S/SmartApp.exe

Ich habe es nicht geschafft.

ManuMF 24. Jun 2006 12:45

Re: SMART-Werte lesen
 
Hallo,

wenn ich C könnte und ein bisschen mehr Zeit hätte... :cyclops:

Gruß,
ManuMF

Muetze1 25. Jun 2006 01:34

Re: SMART-Werte lesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, ich hatte ein wenig Zeit und interessiert hatte es mich auch. Hier nun die Übersetzung der SmartApp von Microsoft. Ich habe das ganze von einem Kommandozeilentool in eine Form-basierende Form gebracht.

Ich habe einmal IfThen() benutzt, daher ab Delphi 7. Wenn man das IfThen() ersetzt, dann sollte es ab Delphi 4 klappen (die Unit Variants einfach kicken).

Daniel G 25. Jun 2006 10:39

Re: SMART-Werte lesen
 
:shock:

*räusper*

Tja, funktioniert einwandfrei. Die Gelegenheit für mich, mal nachzusehen, warum mein Programm bei mir nur Mist produziert hat. Aus Fehlern lernt man ja bekanntlich...

ManuMF 25. Jun 2006 11:43

Re: SMART-Werte lesen
 
Hallo,

das funktioniert super :thumb:
Auch unter D6.

Aber wie kann ich die Werte verwerten? ;-) Mich interessiert vor allem die Temperatur, und der gelesene Wert ist "157", sowohl von dem Programm als auch von SpeedFan. Aber SpeedFan wandelt das um in "27°C". Was steckt dahinter? Fahrenheit nicht, denn die wären weniger.

Gruß,
ManuMF

Daniel G 25. Jun 2006 11:54

Re: SMART-Werte lesen
 
Zitat:

Zitat von ManuMF
Aber SpeedFan wandelt das um in "27°C".

Ein Irrglaube. Speedfan wandelt nichts um.Die Hersteller weisen den Werten, bis auf ein paar Ausnahmen, unterschiedliche Bedeutung zu. Ähnlich verhält es sich mit dem Wert für die Temperatur. Ich hatte mal 'ne Liste, mal sehen, ob ich die noch finde...

//Edit: Ok, ich sehe gerade, bei mir arbeitet Speedfan mit dem "RAW" - Wert dieser Eigenschaft... D.h., dieser müsste auch noch abgefragt werden...

Daniel G 25. Jun 2006 12:30

Re: SMART-Werte lesen
 
So, ich schon wieder. Wenn du in Zeile 352 der Smartfunc.pas das hier:

Delphi-Quellcode:
      AOut.Add(Format('%.2X %-29s%d%20s%d', [lDA^.bAttrID,
                                             coAttrNames[lAttr],
                                             lDA^.bAttrValue,
                                             ' ',
                                             lAT^.bWarrantyThreshold]));
in das änderst

Delphi-Quellcode:
      AOut.Add(Format('%.2X %-29s%d%20s%d%20s%d', [lDA^.bAttrID,
                                             coAttrNames[lAttr],
                                             lDA^.bAttrValue,
                                             ' ',
                                             lAT^.bWarrantyThreshold,
                                             ' ',
                                             lDA^.bRAWValue[0]]));
bekommst du den ersten "RAW" - Wert. Bei mir entspricht dieser Wert in der Eigenschaft "C2" der Temperatur der Festplatte. Allerdings weiß ich nicht, ob das genormt ist, sprich, ob alle Hersteller denselben Wert nutzen...

Muetze1 25. Jun 2006 19:19

Re: SMART-Werte lesen
 
Moin!

So, schön zu hören, das das Prog klappt. Es ist nur schnell dahingeschmiert - das Memo hat keine Anchors, etc. Sollte alles noch gemacht werden.

Nun zu der Frage mit der Temperatur: Ich habe mir mal alle ATA/ATAPI Standards von 1 bis zur 8 (Draft) besorgt und studiert sowie die S.M.A.R.T. Definition der SFF. Bei allen steht halt, dass es Vendor-Specific ist. Die von Microsoft schon mit Text versehenen Attribute sind nur bis ATA-3 richtig, ab ATA-4 sind diese komplett Vendor Specific. Daher müsste man eigentlich aus der vom DEVICE_INQUIRE zurück gelieferten Info-Struktur auslesen nach welcher Revision das Gerät arbeitet und entsprechend umsetzen. Maxtor hat bei vielen Platten eine Attribute ID von 192 (dezimal) für die Temperatur in °C, aber leider nicht überall. Es gibt auch Maxtor Platten mit einem anderen Wert auf dem Attribute ID von 192. Toshiba hat dort meist die Minuten der aktuellen Laufzeit und bei manchen Platten auch die Temperatur - aber mit 10 Multipliziert um eine Kommastelle zu ermöglichen.

Ich habe dann mich nochmal mit dem Quellcode von dem SMARTmontools (http://www.sourceforge.net/projects/smartmontools) auseinander gesetzt und die Jungs (und Mädels) machen es auch nur nach verifizierten Informationen. D.h. sie haben eine Tabelle mit den jeweiligen Zuordnungen der Attribute IDs zu den Modellen der Herstellern über RegExpressions.

Dann habe ich mich noch auf Suche nach herstellerspezifischen Dokumentationen begeben zu den SMART Attributen, aber Maxtor, Seagate (sind ja nun eins), IBM (Naja, nun Hitachi) und WDC schweigen sich aus oder wollen deftig Geld für die PDFs.

Nun aber noch was am Rande: Ich versuche den ATAPI_INQUIRE an meine ATAPI Laufwerke zu senden, aber ich bekomme diese grundlegend nicht erreicht. Wenn ich PhysicalDriveX abändere bekomme ich nie die beiden Laufwerke (obwohl sie am Secondary hängen) und der Laufwerksbuchstabe ist auch nicht erfolgreich (\\.\e:). Ich weiss nicht mehr weiter. Die Kombinationen der Attribute (z.B. entfernen von GENERIC_WRITE) hat auch nicht gebraucht. Irgendwelche Ideen?

MfG
Muetze1

Daniel G 26. Jun 2006 00:18

Re: SMART-Werte lesen
 
Zitat:

Zitat von Muetze1
Dann habe ich mich noch auf Suche nach herstellerspezifischen Dokumentationen begeben zu den SMART Attributen, aber Maxtor, Seagate (sind ja nun eins), IBM (Naja, nun Hitachi) und WDC schweigen sich aus oder wollen deftig Geld für die PDFs.

Jupp, ging mir damals eben so. Es ist teils echt frustrierend und ich muss gestehen, ich kann es auch nicht wirklich nachvollziehen... Aber wat soll man machen...
Zitat:

Zitat von Muetze1
Ich versuche den ATAPI_INQUIRE an meine ATAPI Laufwerke zu senden, aber ich bekomme diese grundlegend nicht erreicht.

ATAPI - Laufwerke? Du meinst Wechseldatenträger, oder? Was genau willst du denn da machen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:12 Uhr.
Seite 1 von 6  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz