Что нового

Программа для просмотра информации S.M.A.R.T. жестких дисков компьютера

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
может температура выводится в фаренгейтах? 104 как раз 40 градусов будет.
 
Автор
Aleksandr Prilutskiy

Aleksandr Prilutskiy

Знающий
Сообщения
29
Репутация
9
Kaster сказал(а):
может температура выводится в фаренгейтах? 104 как раз 40 градусов будет.
Маловероятно. Во всех мануалах пишут что температура в цельсиях. И главное - эксперимент показал, что на дисках WD этот параметр (который больше 100) при охлаждении увеличивается.


Добавлено:
Сообщение автоматически объединено:

Обновил программу.
Поправил алгоритм определения температуры.
расширил поля для вывода серийного номера.
Выложил exe-шник и архив с исходниками по старым ссылкам.
Поправил стартовое сообщение темы.
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Кстати, как уже говорил, что ваш софт температуру мой вэдэшки не показывает, но я скачал CrystalDiskInfo и что я увидел. Температуру он показывает, но поля с таким ID (192) в нем тоже нету. Вот и вопрос, откуда он значение температуры забирает? Стоит пошаркаться на WD-форумах, имхо...




Наблюдал, читал и сравнивал:

В вики написано, что температура по адресу поля С2 для Seagate считается так: 100-температура воздушного потока, а для WD так: 125-температура воздушного потока. Но если смотреть на КристалДиск то понятно, что и для тех и для тех дисков она считает по формуле 100-температура воздушного потока. т.е. получается примерно следующее:

Смотрим по вашему софту на температуру воздушного потока моего WD: 64 градуса. Тогда, чтобы получить температуру диска, нужно сделать 100-64=36. 36 - это как раз то значение, которое мне показывает КристалДиск. Но вот почему 100, а не 125? Может быть в новых дисках формулы унифицировали и привели к всеобщему так сказать СМАРТ-стандарту? Трудно сказать... Да и статья эта в вики неизвестно когда была написана, так что думаю, что за неимением ничего лучшего, можно считать температуру как КристалДиск. Ну это всего лишь мое предложение вам, как автору софта.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
При 70 С° градусах и выше – диск как правило сразу, или спустя некоторое непродолжительное время эксплуатации выходит из строя в результате серьезных повреждений.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Aleksandr Prilutskiy [?]
на твоем скрине в самом верху показывается 41 градус, а ниже в таблице 106 что есть 41 градус если перевести из фаренгейта
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Рябяты, системщики подсказали как правильно смарт-рау-данные дешифровывать: короче, там последний октет температуры воздушного потока (рау-данных) - это и есть температура, которую кажут всякие диагностеры. Вот. Хотя, сказали, что вариант с вычитанием тоже правильный. Про последний байт это я не знаю, откуда они почитали (я так и не нашел), а про вычитание - это я на вики сам вычитал. Но им можно верить, я думаю, они бородаты.
 
Автор
Aleksandr Prilutskiy

Aleksandr Prilutskiy

Знающий
Сообщения
29
Репутация
9
Kaster сказал(а):
Aleksandr Prilutskiy [?]
на твоем скрине в самом верху показывается 41 градус, а ниже в таблице 106 что есть 41 градус если перевести из фаренгейта
... а если от 106 отнять 99 и добавить это к 41 градусу, то получится ровно 48, как в мультике про "48 попугаев", значит оно меряет в попугаях? :smile:

Я уже писал, что для винтов WD в поле "значение" при охлаждении показания увеличиваются а в поле "Всего" - уменьшаются.
В фаренгейтах при охлаждении температура тоже уменьшается, так что это не фаренгейты, а просто совпадение.
Сейчас я этот винт засунул в вентилируемый рэк и он у меня показывает 108/35... (35 по цельсию это 95 фаренгейтов, а не 108).
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Ну вот проверь то, что я написал. Если смотреть по твоей проге: поле всего переведи в hex, возьми последний байт и переведи в dec - должно прокатить. Прям в калькуляторе.


Добавлено:
Сообщение автоматически объединено:

У меня прокатило, вроде то, что нужно.
 
Автор
Aleksandr Prilutskiy

Aleksandr Prilutskiy

Знающий
Сообщения
29
Репутация
9
oesoes сказал(а):
Рябяты, системщики подсказали как правильно смарт-рау-данные дешифровывать: короче, там последний октет температуры воздушного потока (рау-данных) - это и есть температура, которую кажут всякие диагностеры.
Похоже на правду, но только "всякие диагностеры" - термин не корректный. Как раз "всякие" показывают разные значения. А нам нужно докопаться до правды и понять алгоритм правильного вычисления температуры дисков.
Из того, что я подметил:
- Винты Seagate в поле "значение" и "RAW" содержится одно и то же число. У меня почти все винты сегейтовские, поэтому я сначала подумал что температуру можно брать просто из поля "значение" 194-го атрибута. И, кстати несколько раз в Инете находил что делать нужно именно так.
- Оказалось что все винты WD, которые у меня есть (а есть и прошлогодние, и выпуска 2006 года) все показывают в поле RAW значение, похожее на температуру, а в поле "значение" число больше 100, которое с охлаждением диска только увеличивается.
(По идее на этом месте можно предположить, что если у Seagate и WD температура хранится в RAW, то можно брать её просто оттуда, если бы не еще один случай)
- У меня есть еще один SSD-шный диск Kingston. Он показывает в поле RAW какое то нереальное число, например 2 752 556... Но если разложить это на 2-х байтные числа то получается 0x2A=42 и 0x2C=44. Похоже на температуру... Только температуру чего? По спецификации S.M.A.R.T. 194 - это температура шпинделя (блока магнитных дисков). В SSD дисков вообще нет. Наверное там 2 датчика в разных местах, которые показывают эти результаты.
Надо как нибудь этот диск выкрутить и поэксперементировать с градусником...

Вся беда в том, что не могу пока найти где четко написано про то, где нужно брать правильную температуру дисков...


Добавлено:
Сообщение автоматически объединено:

oesoes сказал(а):
Ну вот проверь то, что я написал. Если смотреть по твоей проге: поле всего переведи в hex, возьми последний байт и переведи в dec - должно прокатить. Прям в калькуляторе.


Добавлено:
Сообщение автоматически объединено:

У меня прокатило, вроде то, что нужно.



Я верю. Спасибо.
На сегодняшний момент у меня есть мнение, что самый правильный способ брать температуру диска - из поля RAW 194-го атрибута, наложив на него маску в 16 бит.
Но, у меня остаются большие сомнения: что будут показывать диски других. менее распространенных, но присутствующих на рынке производителей жестких дисков?
 

oesoes

xor eax,eax
Сообщения
171
Репутация
9
Aleksandr Prilutskiy [?]
Ну я сам не уверен, я же говорю, сам нигде не смог найти ничего такого, просто верю словам электронщиков. Но я все равно не поверю, что нигде в инете нет точной спецификации, хотябы на какую-то одну из контор.
 

Red Shadow

Новичок
Сообщения
5
Репутация
0
Странно, у меня стоят два винта, а программа показывает только один (((. Правда больше ничем его не тестил, винт поставылен времменно , только данные скинуть.
 
Автор
Aleksandr Prilutskiy

Aleksandr Prilutskiy

Знающий
Сообщения
29
Репутация
9
Red Shadow сказал(а):
Странно, у меня стоят два винта, а программа показывает только один (((. Правда больше ничем его не тестил, винт поставылен времменно , только данные скинуть.
А оба винта поддерживают S.M.A.R.T.?
Вернее винты сами все должны его поддерживать - в зависимости от способа подключения S.M.A.R.T. может не читаться.
 

All2khoff

Продвинутый
Сообщения
347
Репутация
65
Отличное приложение, маленькое удобное.
А можно добавить сколько винт уже отработал? в некоторых есть такая инфа.
 
Автор
Aleksandr Prilutskiy

Aleksandr Prilutskiy

Знающий
Сообщения
29
Репутация
9
Glass4217 сказал(а):
А можно добавить сколько винт уже отработал? в некоторых есть такая инфа.
Это же есть в поле "время во включенном состоянии (POH)" - показывает сколько диск отработал в часах.
 

DyadyaGenya

Знающий
Сообщения
300
Репутация
10
Добрый день. Прикольная штука. Но поскольку я новичок, но могу вытянуть код температуры для своих нужд. Данные серийника, модели, объема получается. Понял, как они вытягиваются. А вот с температурой не разобрался.
Можете подсказать, а ещё лучше показать как вытянуть инфу про температуру. Достаточно в сообщении MsgBox. И мониторит ли ваш код температуру, или она статична?
P.S. почти разобрался. Жаль, что она не меряется динамически. Нужно каждый раз перезапускать, чтоб увидеть изменения температуры.
Ну и вы тянул инфу в сообщение )
Сообщение автоматически объединено:

Это же есть в поле "время во включенном состоянии (POH)" - показывает сколько диск отработал в часах.
Никак не могу разобраться, как именно получается это число. Если я правильно понимаю, то за его вывод отвечает эта переменная:
Код:
Local $raw = ((((($sVendorSpecific[$i + 8] * 256 ) + $sVendorSpecific[$i + 7]) * 256) +$sVendorSpecific[$i + 6]) * 256) + $sVendorSpecific[$i + 5]

Почему именно такая формула?
Если сравнивать с данными других программ, напр, Кристал диск инфо или Виктория, то некоторые сырые значения совпадают, а некоторые нет. Хотелось бы понять почему.
 
Последнее редактирование:
Верх