vbs Variablen dynamisch erzeugen

Ja eben. Was sagen solche Werte denn aus? Dass über 190k Fehler beim Lesen passiert sind (Read Error Rate)? Wohl kaum.

Wie schon 2x erwähnt, können Load Cycles oder POH Hours schon mal 65k übersteigen. Und wenn du die Error Rate einfach bei 255 255 abschneidest und der Wert 1 0 0 erreicht dann wird der Wert mit 0 anstatt einem hohen Wert angezeigt.

Ja, und das ist recht einfach, wenn man ordentliche Arrays verwendet, wie ich das mittlerweile getan habe ;D.

Mit Array hat das gar nichts zu tun

Es gibt bei SMART keine Standards, jedenfalls nicht in dem Sinne. Dass die meisten Hersteller in POH (ID9) dennoch Stunden angeben, ist halt so, aber nirgendwo vorgegeben, weshalb Fujitsu eben einen eigenen Weg geht und Sekunden-Intervalle benutzt.

Glaube schon das es da ATA Standards gibt, die findet man eben nur nirgends. Ist irgendwie auch sinnlos von den anderen üblichen Werten abzuweichen und dann auch noch Sekunden, wer braucht denn sowas.

Ich habe mittlerweile auch für einige Werte 5 Spalten genommen: 4,9,193,195,200,225,241,242
 
Zuletzt bearbeitet:
Mit Array hat das gar nichts zu tun
Doch, weil man damit die Berechnung wesentlich vereinfachen kann, sie nur an einer Stelle stattfindet. Mal konkret gemacht:
PHP:
;--- Attribute, für die zusätzlich zu den "Count"-Attributen Werte berechnet werden sollen
Global const $attrCalc[10]      = [ 1, 2, 3, 7, 9, 194, 200 ]
;--- Attribute, für die keine weiteren Raw-Spalten berechnet/aufaddiert werden sollen
Global const $attrNoFullCalc[5] = [ 5, 7, 194, 196, 203 ]
[...]
if StringInStr($desc, "Count") OR (_ArraySearch($attrCalc, $arrVendorSpecific[$i+2]) >= 0) then
    $wert = $arrVendorSpecific[$i+7] + $arrVendorSpecific[$i+8]*(16^2)
    if (_ArraySearch($attrNoFullCalc, $arrVendorSpecific[$i+2]) < 0) then
        $wert += $arrVendorSpecific[$i+9]*(16^4) + $arrVendorSpecific[$i+10]*(16^6) + $arrVendorSpecific[$i+11]*(16^8)
    EndIf
else
    $wert=0
EndIf
Wenn die SMART ID in $attrCalc gefunden wird, wird ein Wert aus den ersten beiden Raw-Spalten berechnet. Ist die ID nicht in $attrNoFullCalc, werden die weiteren Spalten aufaddiert. Eine Stelle im Code, die für alle Attribute benutzt wird. Wenn man "Hunderte" elseif-Zweige hat, kopiert man sich einen Wolf, und macht dabei dennoch Fehler. Man könnte das auch mit Mengen machen, wenn AutoIt explizit welche unterstützen würde (ist eben keine ordentliche Programmiersprache, VBS ebensowenig ;D).

Glaube schon das es da ATA Standards gibt, die findet man eben nur nirgends.
Möglich, dass es für SMART irgendwelche Empfehlungen ("should", "could") oder sowas in der Art gibt, aber zwingende Vorgaben ("must") wohl eher nicht; sonst würden die Hersteller ja eben nicht teilweise ihr eigenes Süppchen kochen. Und AFAIK ist SMART kein Bestandteil von ATA.

Ist irgendwie auch sinnlos von den anderen üblichen Werten abzuweichen und dann auch noch Sekunden, wer braucht denn sowas.
Tja, das weiß ich auch nicht.

MfG Dalai
 
Ich meinte eigentlich was anderes, dass man erstmal rausfinden muss welche Attribute überhaupt mehr als 2 Spalten verwenden.

Bei deiner Fujitsu die 2000 bei ID5 das sind evtl. 1MB an Ersatzsektoren die noch genutzt werden könnten und 0 sind belegt. Oder irgendwie sowas...

Die ganzen If bekomme ich auch so schnell nicht raus, weil ich entsprechend einen Alarm setze bei bestimmten Values, die bei den normalized auch unterschiedlich sind.
Die 2 verschiedenen Werte berechne ich einfach vorab und stecke sie in eine Variable. Bei der Ausgabe gebe ich einfach 2 verschiedene Variablen aus.
 
Zuletzt bearbeitet:
Zurück
Oben Unten