AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SMART-Werte lesen

Ein Thema von ManuMF · begonnen am 23. Jun 2006 · letzter Beitrag vom 31. Jul 2007
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#1

SMART-Werte lesen

  Alt 23. Jun 2006, 18:55
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
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#2

Re: SMART-Werte lesen

  Alt 23. Jun 2006, 19:03
Probier mal, diese C-Demo nach Delphi zu portieren.

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

Ich habe es nicht geschafft.
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#3

Re: SMART-Werte lesen

  Alt 24. Jun 2006, 12:45
Hallo,

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

Gruß,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: SMART-Werte lesen

  Alt 25. Jun 2006, 01:34
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).
Angehängte Dateien
Dateityp: zip delphi_-_smart_144.zip (8,7 KB, 386x aufgerufen)
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#5

Re: SMART-Werte lesen

  Alt 25. Jun 2006, 10:39


*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...
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#6

Re: SMART-Werte lesen

  Alt 25. Jun 2006, 11:43
Hallo,

das funktioniert super
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
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#7

Re: SMART-Werte lesen

  Alt 25. Jun 2006, 11:54
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...
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#8

Re: SMART-Werte lesen

  Alt 25. Jun 2006, 12:30
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...
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: SMART-Werte lesen

  Alt 25. Jun 2006, 19:19
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
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#10

Re: SMART-Werte lesen

  Alt 26. Jun 2006, 00:18
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 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?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:01 Uhr.
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