06.11.2013, 16:47 | #1 |
Старший Пользователь
Регистрация: 07.05.2010
Возраст: 45
Город: Москва
Регион: 77, 97, 99, 177
Машина: Skoda Octavia RS FL 2010
Сообщений: 318
|
Плагин System Monitor - отображение температур, загрузки CPU и т.д.
Кажется, почти вся аудитория форума сидит на iCarDS, поэтому сильно сомневаюсь, что кому-то будет это интересно, но вдруг...
Продолжаю по тихой грусти пытаться что-то пописать для Centrafuse. Прежде всего хотелось иметь представление о температуре системы, так же хотел видеть график загрузки CPU - комп иногда подвисал, было интересно увидеть, есть ли при этом завал процессора. В итоге получился вот такой плагин. Позволяет настроить несколько экранов отображения интересующих данных, переключение между экранами - кнопками слева в окне плагина ("влево","вправо"), просто листаете окна, смотрите инфо. Реализовано три типа экранов: 1) загрузка CPU 2) свободное место на дисках 3) данные от SpeedFan. Для временных диаграм можно задавать длину сбора и отображения информации (от 1 минуты до 2 часов). Много визуальных настроек - можно баловаться с цветами разных элементов и прочими параметрами. Исходно заточен под стандартный скин Clean (800*480). Установка простая: в папку \Plugins положить содержимое архива, затем в настройках CF кинуть кнопку для открытия плагина в меню.
__________________
White Octavia RS FL DSG Последний раз редактировалось e-statik; 12.11.2013 в 00:49. |
06.11.2013, 16:49 | #2 |
Старший Пользователь
Регистрация: 07.05.2010
Возраст: 45
Город: Москва
Регион: 77, 97, 99, 177
Машина: Skoda Octavia RS FL 2010
Сообщений: 318
|
Основные настройки.
Настройки в самом плагине делать не стал - слишком много опций + некоторые из них очень не удобно настраивать через CF. Поэтому основные настройки находятся в файле config.xml, который лежит в папаке плагина. Там всё достаточно просто. Несколько элементов <SCREEN> - каждый из них это один экран. В параметре Type - тип экрана. Пока 3 варианта (можно придумать ещё): MonitorCPU - показ загрузки процессора, MonitorSpace - свободное место на носителях (любых), MonitorSpeedFan - показ данных из лога SpeedFan (любых, которые он может писать в лог). Настройки MonitorCPU. RefreshRateSec (целое число, секунды) - с этой частотой будет определяться текущая загрузка CPU и обновляться график на экране. IntervalShowMin (целое число, минуты, от 1 до 120) - за этот период на экране будут показаны данные. Причем период не календарный (последние 2 часа), а рабочий (последние 2 часа работы компа). Т.е, если комп работал каждый день по 5 минут, то на графике будут все эти дни. Так же на графике вверху показывается "аптайм" - время работы системы с последней загрузки Настройки MonitorSpace. RefreshRateSec - (описано выше) DisksList (строка) - через запятую буквы дисков, занятость которых нужно показывать. Порядок перечисления имеет значение: слева на право в списке - это снизу вверх на экране, можно настроить как хочется. Флешки тоже будут отображаться, можно вынимать и вставлять - на диаграмме её полоса будет появляться и пропадать. Внизу на экране шкала в процентах от 0 до 100 - соотв, занятость в процентах. Настройки MonitorSpeedFan. RefreshRateSec - (описано выше) соотв с этой частотой будут искаться новые данные в логах SpeedFan IntervalShowMin - (описано выше) LogFileFolderPath (строка) - путь к папке, где собираются логи SpeedFan DataIntervalSec (целое, секунды) - в данный момент не используется, идейно казался нужным, период, с которым SpeedFan пишет в лог BreakLimitSec (целое, секунды) - это размер разрыва в данных, при обнаружении на графике рисуется вертикальная пунктирная черта. Комп выключили на час (день и тд, не важно), в логе соотв будет некоторая пауза, на диаграмме пустоту на такой отрезок показывать не очень юзабельно, поэтому показывается разрыв пунктиром а за ним левее следуют более ранние данные, какие найдены Title (строка) - показывается в заголовке вверху экрана. Ниже в блоке идет перечисление элементов <MEASURE> - это один показатель из лога, одна из температур, например. Настройки MEASURE. Id (строка) - просто уникальный код, по большому счету не используется, добавлен чисто идейно Label (строка) - имя показателя для отображения в заголовке на экране. UnitLabel (строка) - имя единицы измерения для отображения в заголовке на экране. Итого общий формат заголовка: [Title] : [Label1 X1 UnitLabel1], [Label2 X2 UnitLabel2] .. и тд, где X - само число, показатель (текущая температура, например) LineColor (цвет) - цвет линии этого показателя. Подробнее про варианты указания цвета напишу ниже. LogId (строка) - это название колонки в логе SpeedFan, из которой будут читаться значения показателя SkipIdenticValues (true/false - т.е. да/нет) - дело в том, что в логе температура пишется целыми числами и на графике это может показаться не очень красивым ("лесенка", а не плавная линия) и одна из идей - просто не писать в график одинаковые значения, писать только разные, а линия между ними будет проходить уже плавно. Работает специфически, радикально навести плавность не сможет, если есть сильный дребезг показаний - вообще почти ничего не даст. По-хорошему для плавности нужно пересчитывать все значения по некой формуле (строить тренд или что-то в таком духе; да нужно ли...). На одном экране можно отображать несколько показателей. Либо можно сделать несколько экранов с типом MonitorSpeedFan и показывать там разные графики. Единственное, стоит учесть, что у показателей могут быть разные единицы измерения и порядок цифр. Поэтому не получится красиво показать на одном экране температуру (которая грубо говоря от 20 до 80 градусов) и частоту вращения кулера (2000-3000 например), т.к. всё привязывается к одной оси Y. Хотя можно и это доработать, сделав возможность делать двухосевые диаграммы (справа шкала для кулера, слева для темепературы). Вообще, в перспективе можно доработать плагин так, чтобы он кушал вообще любые адекватные по структуре логи. И подсовывать ему другие логи, кроме SpeedFan. Можно генерить что-то свое, например, читая из CAN шины авто какие-то показатели. Расход бензина, что угодно. Лично у меня пока подходящих идей не появилось, но сделать можно. Настройка самого SpeedFan для сбора логов Прогу, само собой, нужно настроить на автозапуск и минимизацию при старте. И во вкладке "Лог" включить логгирование данных. Обязательно включить опцию добавления шапки в лог файл (чтобы были имена колонок - чтобы понять, какая колонка про что). И уже в другой вкладке выбрать - какие показатели писать в лог. Если не очень получается - могу добавить подробную инструкцию. Описание визуальных настроек (цвета, шрифты и тд). Находятся в файле Skin.xml в папке \Skins\Clean Чуть позже опишу! Указание цвета. В любой параметр, предполагающий указание цвета, можно задать цвет, указав либо его имя (есть список стандартных имен), либо произвольный код вида #55CC00 (т.е. вообще любой цвет). Список стандартных цветов можно посмотреть здесь, например: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx Так же можно указать "Empty" или "Transparent". Это полезно чтобы просто скрыть надпись, линию или сделать элемент прозрачным, невидимым. TO DO, баги и т.д. Плагин пока бета, ещё нужно кое-что допилить. В частности пока не очень правильно подтягиваются логи из спидфана - не корректно привязываются к шкале времени. На днях доделаю, не до конца понял как реализовать правильный алгоритм. Дело в том, что данные не тупо показываются какие есть, а идёт отбор и привязка к шкале. А данные в логе очень не постоянны. В общем, доделываю. ДОДЕЛАНО 11.11.2013 Ну и в целом можно много чего придумать и реализовать - были бы стоящие идеи. Исходники тоже выложу чуть позже, когда "приберусь" в коде.
__________________
White Octavia RS FL DSG Последний раз редактировалось e-statik; 12.11.2013 в 00:55. |
06.11.2013, 17:27 | #3 |
Пользователь
Регистрация: 24.12.2008
Возраст: 46
Город: Прокопьевск
Регион: 42
Машина: 2003/honda/inspire
Сообщений: 39
|
Очень интересно!,продолжайте пожалуйста.
|
07.11.2013, 10:28 | #4 |
Старший Пользователь
Регистрация: 03.07.2012
Возраст: 47
Город: Казань
Регион: 16, 116
Машина: Android
Сообщений: 177
|
Красиво, нужно!
|
07.11.2013, 12:49 | #5 |
Старший Пользователь
Регистрация: 07.05.2010
Возраст: 45
Город: Москва
Регион: 77, 97, 99, 177
Машина: Skoda Octavia RS FL 2010
Сообщений: 318
|
Ок! Добавил описание выше. Ещё допишу.
__________________
White Octavia RS FL DSG |
07.11.2013, 13:21 | #6 |
Старший Пользователь
Регистрация: 07.05.2010
Возраст: 45
Город: Москва
Регион: 77, 97, 99, 177
Машина: Skoda Octavia RS FL 2010
Сообщений: 318
|
Обновил архив с плагином - исправил несколько критичных багов.
(в частности в одном месте в коде был жестко зашит путь "C:\Program Files (x86)\SpeedFan" - устранено)
__________________
White Octavia RS FL DSG |
12.11.2013, 00:51 | #7 |
Старший Пользователь
Регистрация: 07.05.2010
Возраст: 45
Город: Москва
Регион: 77, 97, 99, 177
Машина: Skoda Octavia RS FL 2010
Сообщений: 318
|
Обновил DLL в архиве.
Логи спидфана теперь правильно привязываются к шкале времени. Заработала настройка SkipIdenticValues (специфически). Некоторые исправления и оптимизации.
__________________
White Octavia RS FL DSG |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|