Датчики живут в папке
C:\Program Files\TipTop software\iCar DS\skins\CFStyle\LABELS
label_list.txt - в этом файле описаны переменные, которые используются в качестве датчиков.
label_ru.ini - в этом файле находятся подписи к датчикам.
И так теперь нам нужно получить данные которые необходимо отобразить. Данные можно получить двумя способами:
1. Плагин для iCar DS. Этот способ я не изучал. Если кто поделится велкам.
2. Из внешней программы или скрипта используя SDK. Вот этот способ расмотрим по подробнее на примере программы speedfan.
Как известно эту программу iCar DS и так прекрасно подерживает, но есть маленькие недочеты которые портят всю картину. А именно температуру показывает умноженную на 100.
Из внешней программы данные можно получить тремя способами:
1. Добровально. Например есть логи или еще какие файлы для внешней обработки.
2. Если на форме программы данные помешены в текстовые поля или другие визуальные элементы с которых можно вытащить текст. К сожалению к этим типам не относится тип Label, который часто применяется для отображение текстовой информации. Но и это тоже не проблема, только сложно это делается: Либо перехват вывода текста при прорисовке, либо напрямую из памяти.
3. Напрямую из памяти. Этот способ и расмотрим. Для этого нужно знать структуру данных или хотбы точное количество памяти.
Теперь добавим один датчик.
1. В файле
label_list.txt добавим одну строчку в конец файла:
!Test
2. В файле
label_ru.ini добавим одну строчку а конец файла:
l_label_!Test=Тестовый датчик
3. Создадим скрипт с кодом:
PHP код:
;ждем когда появится iCar
WinWait ("iCar DS")
;икар грузится какоето время
sleep(5000)
;Создаем объект для работы с Икаром
$rr = ObjCreate("RideRunner.sdk")
$rr.Execute("SETLABEL;!Test;Test =)")
4. Запускаем скрипт, iCar DS и получаем наш текст
Test =)
Теперь вернемся к нашему speedfan'у.
Поковыряв исходники RideRuner'а находим вот это:
PHP код:
'=============Speedfan================
Public Type SFSharedData
Version As Integer
flags As Integer
MemSize As Integer
Handle As Long
NumTemps As Integer
NumFans As Integer
NumVolts As Integer
Temps(30) As Integer
placeholder(32) As Integer
Fans(30) As Integer
placeholder2(32) As Integer
Volts(30) As Integer
End Type
Это структура данных speedfan'а в которой хранится та информация, которая выводится на экран. Нам необходимо найти кусок памяти, скопировать его в свои переменые и пользоватся. Подробнее можно посмотреть в исходнике скрипта.
При запуске скрипта без параметров он выводит 3 окошка с датчиками их номерами. Запомним эти номера они пригодятся.

В моем случае это 1, 3, 5, 7. Скоростей вращения кулеров нет, напряжений тоже нет. Ноут новый speedfan еще видать не умеет с ним работать.
запускаем скрипт с параметрами
speedfan.exe SFT1 SFT3 SFT5 SFT7
Если необходимы скорости вращения, то в параметры добавить SFF1. SFV1 - напряжения.
В файл label_list.txt добавляем:
!SFT1
!SFT2
!SFT3
!SFT4
В файл label_ru.ini добавляем:
l_label_!SFT1=Темп. HDD
l_label_!SFT2=Темп. SYS
l_label_!SFT3=Темп. CPU1
l_label_!SFT4=Темп. CPU2
Если что непонятно спрашиваем =) Я в этом уверен что не понятно. Отшлифую пост добавлю в инструкцию. Если нужно добавить в датчики данные с других программ, а сами не можете, то обращайтесь. Чем могу тем помогу.
Примеры реализации датчиков:
1.
iCarDS + Тестер ECU
2. Термометр - в данный момент этим занимаюсь
PS: все исходники есть. Я не жадный могу поделится. Спрашиваем в личку не стесняемся.