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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2011, 16:36   #1
= Nicki =
Старший Пользователь
 
Регистрация: 06.07.2007
Возраст: 44
Город: Екатеринбург
Регион: 66, 96
Машина: Honda Fit
Сообщений: 820
= Nicki = is a jewel in the rough= Nicki = is a jewel in the rough= Nicki = is a jewel in the rough= Nicki = is a jewel in the rough
По умолчанию Как сделать свой датчик

Датчики живут в папке 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: все исходники есть. Я не жадный могу поделится. Спрашиваем в личку не стесняемся.
Вложения
Тип файла: zip speedfan.zip (1,012.7 Кб, 689 просмотров)
__________________
Мой проект: Honda Fit 2002 г.в.

Некоторые полезности в которых принимаю участие:
Инструкция к iCar DS
iCarDS + Тестер ECU

Последний раз редактировалось = Nicki =; 31.03.2011 в 04:45.
= Nicki = вне форума   Ответить с цитированием
Старый 09.03.2011, 13:47   #2
pierrotm777
Старший Пользователь
 
Аватар для pierrotm777
 
Регистрация: 07.11.2010
Регион: другой - для добавления сообщить ab
Сообщений: 324
pierrotm777 is just really nicepierrotm777 is just really nicepierrotm777 is just really nicepierrotm777 is just really nice
По умолчанию

Thanks for this share

The test exemple don't run for me and the temp add also don't run !!!

Последний раз редактировалось pierrotm777; 09.03.2011 в 15:18.
pierrotm777 вне форума   Ответить с цитированием
Старый 10.03.2011, 22:58   #3
Мишаня 121
Пользователь
 
Регистрация: 26.11.2009
Возраст: 43
Город: Серпухов
Регион: 50, 90, 150
Машина: BMW E46
Сообщений: 75
Мишаня 121 is on a distinguished road
По умолчанию

Вообще нифига не понял))) В файлах все написал, а вот пункты 3 и 4 ступор)))
Как создать скрипт с кодом?
Как его запустить?
Speedfan 4.41 окошки откуда взялись?
В общем если не сложно, напиши поподробнее. Тож хочу температуру процессора видеть в Икаре)
__________________
Мой проект: http://www.pccar.ru/showthread.php?p=165201#post165201
Мишаня 121 вне форума   Ответить с цитированием
Старый 11.03.2011, 07:48   #4
= Nicki =
Старший Пользователь
 
Регистрация: 06.07.2007
Возраст: 44
Город: Екатеринбург
Регион: 66, 96
Машина: Honda Fit
Сообщений: 820
= Nicki = is a jewel in the rough= Nicki = is a jewel in the rough= Nicki = is a jewel in the rough= Nicki = is a jewel in the rough
По умолчанию

Цитата:
Сообщение от Мишаня 121 Посмотреть сообщение
Вообще нифига не понял))) В файлах все написал, а вот пункты 3 и 4 ступор)))
Как создать скрипт с кодом?
Как его запустить?
Speedfan 4.41 окошки откуда взялись?
В общем если не сложно, напиши поподробнее. Тож хочу температуру процессора видеть в Икаре)
В инструкции описан общий случай, т.е. создания своего датчика из какой-нибудь проги. Тебе же нужно из speedfan'а. Я это уже сделал.


1. Взять скрипт из первого поста этой темы.
2. запусти speedfan.exe и мой скрипт. Скрипт сохрани отдельно от speedfan'а.
3. Скрипт выдаст по очереди 3 окна. Температуры, скорости вентеляторов и напряжения. Запомни номера в которых будут цыфры.
4. Далее запускаещь скрипт с параметрами spedfan.exe SFT1 SFT3 SFT5 SFT7 Цифры мои, у тебя могут отличатся.
5. в икаре нужно добавить сктроки:
В файл 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

сделаей скрины 3-х окошек скрипта и speedfan'а и я тебе подробнее скажу что куда.
__________________
Мой проект: Honda Fit 2002 г.в.

Некоторые полезности в которых принимаю участие:
Инструкция к iCar DS
iCarDS + Тестер ECU
= Nicki = вне форума   Ответить с цитированием
Старый 11.03.2011, 13:37   #5
Alex-NN
Гуру
 
Аватар для Alex-NN
 
Регистрация: 11.05.2008
Возраст: 55
Город: Дзержинск
Регион: 52
Машина: Nissan Almera N16
Сообщений: 1,015
Alex-NN has a spectacular aura aboutAlex-NN has a spectacular aura about
По умолчанию

Попробывал. Все получилось, спасибо!
Вопросик: как лучше поступить, чтобы при автозапуске Икара все сразу отображалось.
Скрипт и спидфан в автозагрузку? Или возможны варианты?
Alex-NN вне форума   Ответить с цитированием
Старый 11.03.2011, 14:05   #6
= Nicki =
Старший Пользователь
 
Регистрация: 06.07.2007
Возраст: 44
Город: Екатеринбург
Регион: 66, 96
Машина: Honda Fit
Сообщений: 820
= Nicki = is a jewel in the rough= Nicki = is a jewel in the rough= Nicki = is a jewel in the rough= Nicki = is a jewel in the rough
По умолчанию

Цитата:
Сообщение от Alex-NN Посмотреть сообщение
Вопросик: как лучше поступить, чтобы при автозапуске Икара все сразу отображалось.
Скрипт и спидфан в автозагрузку? Или возможны варианты?
ага, скрипт будет ждать когда загрузится спидфан и икар, после как икар появится, он подождет 5 секунд потом пойдут данные в икар. Задержка сделана т.к. икар грузится некоторое время. Поле выгрзки икара скрипт вывалится с ошибкой. Сколько не бился не получается отследить икар в памяти чтобы во время выйти и без ошибки
__________________
Мой проект: Honda Fit 2002 г.в.

Некоторые полезности в которых принимаю участие:
Инструкция к iCar DS
iCarDS + Тестер ECU
= Nicki = вне форума   Ответить с цитированием
Старый 11.03.2011, 14:14   #7
Alex-NN
Гуру
 
Аватар для Alex-NN
 
Регистрация: 11.05.2008
Возраст: 55
Город: Дзержинск
Регион: 52
Машина: Nissan Almera N16
Сообщений: 1,015
Alex-NN has a spectacular aura aboutAlex-NN has a spectacular aura about
По умолчанию

Цитата:
Сообщение от = Nicki = Посмотреть сообщение
ага, скрипт будет ждать когда загрузится спидфан и икар, после как икар появится, он подождет 5 секунд потом пойдут данные в икар. Задержка сделана т.к. икар грузится некоторое время. Поле выгрзки икара скрипт вывалится с ошибкой. Сколько не бился не получается отследить икар в памяти чтобы во время выйти и без ошибки
Точно, после закрытия Икара у меня тоже скрипт вылетает с ошибкой. Вроде, не смертельно.
Alex-NN вне форума   Ответить с цитированием
Старый 11.03.2011, 18:32   #8
pierrotm777
Старший Пользователь
 
Аватар для pierrotm777
 
Регистрация: 07.11.2010
Регион: другой - для добавления сообщить ab
Сообщений: 324
pierrotm777 is just really nicepierrotm777 is just really nicepierrotm777 is just really nicepierrotm777 is just really nice
Red face

Sorry, i have tried again the test exemple without succes !

I don't understand what is the utility of these two files label_list.txt and label_ru.ini .

I have made my own language (fr.ini) into the language folder and i don't know if my issue is here .

I don't understand also how you have on the left top the Test label .
Actually, i have the volume label and if i want change it , i do use the labe_choise.skin


NEED HELP for UNDERSTAN HOW TO
pierrotm777 вне форума   Ответить с цитированием
Старый 11.03.2011, 22:19   #9
= Nicki =
Старший Пользователь
 
Регистрация: 06.07.2007
Возраст: 44
Город: Екатеринбург
Регион: 66, 96
Машина: Honda Fit
Сообщений: 820
= Nicki = is a jewel in the rough= Nicki = is a jewel in the rough= Nicki = is a jewel in the rough= Nicki = is a jewel in the rough
По умолчанию

Цитата:
Сообщение от pierrotm777 Посмотреть сообщение
Sorry, i have tried again the test exemple without succes !

I don't understand what is the utility of these two files label_list.txt and label_ru.ini .

I have made my own language (fr.ini) into the language folder and i don't know if my issue is here .

I don't understand also how you have on the left top the Test label .
Actually, i have the volume label and if i want change it , i do use the labe_choise.skin


NEED HELP for UNDERSTAN HOW TO
add two file in labels folder:
label_list.txt and label_fr.ini
in label_list.txt file add last string - !Test
in label_fr.ini file add last string - l_label_!Test=Test hint

and run iCar DS. Long press "volume label" and select last string !Test

Create script in AutoIt:
PHP код:
;wait iCar
WinWait 
("iCar DS")

;
iCar run 1-5 seconds
sleep
(5000)

;
create iCar object
$rr 
ObjCreate("RideRunner.sdk")

;
send our text in iCar
$rr
.Execute("SETLABEL;!Test;Test =)"
and run script.

PS sory for my english
__________________
Мой проект: Honda Fit 2002 г.в.

Некоторые полезности в которых принимаю участие:
Инструкция к iCar DS
iCarDS + Тестер ECU
= Nicki = вне форума   Ответить с цитированием
Старый 29.03.2011, 13:07   #10
= Nicki =
Старший Пользователь
 
Регистрация: 06.07.2007
Возраст: 44
Город: Екатеринбург
Регион: 66, 96
Машина: Honda Fit
Сообщений: 820
= Nicki = is a jewel in the rough= Nicki = is a jewel in the rough= Nicki = is a jewel in the rough= Nicki = is a jewel in the rough
По умолчанию

мучаю все тему с датчиками ... Вот какая засада: настроил в скине на экране Звук чтобы проигрывался wav файл при превышеннии параметра !SFT1>40 Файлик так и не проигрался. Перезашел в iCar wav файл всеравно не проигрывается. Это так задуманно или я чтото нето делаю?
__________________
Мой проект: Honda Fit 2002 г.в.

Некоторые полезности в которых принимаю участие:
Инструкция к iCar DS
iCarDS + Тестер ECU
= Nicki = вне форума   Ответить с цитированием
Ответ


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

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

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



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


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