PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > Разработка программ > Программы управления > Centrafuse

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2013, 16:47   #1
e-statik
Старший Пользователь
 
Регистрация: 07.05.2010
Возраст: 45
Город: Москва
Регион: 77, 97, 99, 177
Машина: Skoda Octavia RS FL 2010
Сообщений: 318
e-statik is on a distinguished road
По умолчанию Плагин System Monitor - отображение температур, загрузки CPU и т.д.

Кажется, почти вся аудитория форума сидит на iCarDS, поэтому сильно сомневаюсь, что кому-то будет это интересно, но вдруг...
Продолжаю по тихой грусти пытаться что-то пописать для Centrafuse. Прежде всего хотелось иметь представление о температуре системы, так же хотел видеть график загрузки CPU - комп иногда подвисал, было интересно увидеть, есть ли при этом завал процессора.

В итоге получился вот такой плагин.
Позволяет настроить несколько экранов отображения интересующих данных, переключение между экранами - кнопками слева в окне плагина ("влево","вправо"), просто листаете окна, смотрите инфо.
Реализовано три типа экранов: 1) загрузка CPU 2) свободное место на дисках 3) данные от SpeedFan. Для временных диаграм можно задавать длину сбора и отображения информации (от 1 минуты до 2 часов). Много визуальных настроек - можно баловаться с цветами разных элементов и прочими параметрами.
Исходно заточен под стандартный скин Clean (800*480). Установка простая: в папку \Plugins положить содержимое архива, затем в настройках CF кинуть кнопку для открытия плагина в меню.
Миниатюры
Нажмите на изображение для увеличения
Название: SM1.jpg
Просмотров: 601
Размер:	68.4 Кб
ID:	33429   Нажмите на изображение для увеличения
Название: SM2.jpg
Просмотров: 595
Размер:	66.5 Кб
ID:	33430   Нажмите на изображение для увеличения
Название: SM3.jpg
Просмотров: 563
Размер:	67.3 Кб
ID:	33431  
Вложения
Тип файла: zip SystemMonitor.zip (67.7 Кб, 438 просмотров)
__________________
White Octavia RS FL DSG

Последний раз редактировалось e-statik; 12.11.2013 в 00:49.
e-statik вне форума   Ответить с цитированием
Старый 06.11.2013, 16:49   #2
e-statik
Старший Пользователь
 
Регистрация: 07.05.2010
Возраст: 45
Город: Москва
Регион: 77, 97, 99, 177
Машина: Skoda Octavia RS FL 2010
Сообщений: 318
e-statik is on a distinguished road
По умолчанию

Основные настройки.
Настройки в самом плагине делать не стал - слишком много опций + некоторые из них очень не удобно настраивать через 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.
e-statik вне форума   Ответить с цитированием
Старый 06.11.2013, 17:27   #3
kotya
Пользователь
 
Регистрация: 24.12.2008
Возраст: 46
Город: Прокопьевск
Регион: 42
Машина: 2003/honda/inspire
Сообщений: 39
kotya is on a distinguished road
По умолчанию

Очень интересно!,продолжайте пожалуйста.
kotya вне форума   Ответить с цитированием
Старый 07.11.2013, 10:28   #4
avic
Старший Пользователь
 
Регистрация: 03.07.2012
Возраст: 47
Город: Казань
Регион: 16, 116
Машина: Android
Сообщений: 177
avic has a spectacular aura aboutavic has a spectacular aura about
По умолчанию

Красиво, нужно!
avic вне форума   Ответить с цитированием
Старый 07.11.2013, 12:49   #5
e-statik
Старший Пользователь
 
Регистрация: 07.05.2010
Возраст: 45
Город: Москва
Регион: 77, 97, 99, 177
Машина: Skoda Octavia RS FL 2010
Сообщений: 318
e-statik is on a distinguished road
По умолчанию

Ок! Добавил описание выше. Ещё допишу.
__________________
White Octavia RS FL DSG
e-statik вне форума   Ответить с цитированием
Старый 07.11.2013, 13:21   #6
e-statik
Старший Пользователь
 
Регистрация: 07.05.2010
Возраст: 45
Город: Москва
Регион: 77, 97, 99, 177
Машина: Skoda Octavia RS FL 2010
Сообщений: 318
e-statik is on a distinguished road
По умолчанию

Обновил архив с плагином - исправил несколько критичных багов.
(в частности в одном месте в коде был жестко зашит путь "C:\Program Files (x86)\SpeedFan" - устранено)
__________________
White Octavia RS FL DSG
e-statik вне форума   Ответить с цитированием
Старый 12.11.2013, 00:51   #7
e-statik
Старший Пользователь
 
Регистрация: 07.05.2010
Возраст: 45
Город: Москва
Регион: 77, 97, 99, 177
Машина: Skoda Octavia RS FL 2010
Сообщений: 318
e-statik is on a distinguished road
По умолчанию

Обновил DLL в архиве.
Логи спидфана теперь правильно привязываются к шкале времени. Заработала настройка SkipIdenticValues (специфически). Некоторые исправления и оптимизации.
__________________
White Octavia RS FL DSG
e-statik вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 16:34.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot