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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Предыдущие версии iCar DS (http://pccar.ru/forumdisplay.php?f=126)
-   -   iCar DS. Второй виток (http://pccar.ru/showthread.php?t=13693)

Bersenev 28.03.2011 23:36

Цитата:

Сообщение от nagval (Сообщение 178799)
Есть софтинка для OBD1 с исходниками (спасибо avgefke). Есть желание её прикрутить к iCar. Даже время для этого есть.
Буду благодарен за любые ссылки на инструкции/примеры плагинов, советы и т.д.

На каком языке исходники?

nagval 29.03.2011 00:53

Цитата:

Сообщение от Bersenev (Сообщение 178801)
На каком языке исходники?

C++ (VS2008SP1 + Qt 4.7.0)

= Nicki = 29.03.2011 06:50

Цитата:

Сообщение от nagval (Сообщение 178799)
Есть софтинка для OBD1 с исходниками (спасибо avgefke). Есть желание её прикрутить к iCar. Даже время для этого есть.
Буду благодарен за любые ссылки на инструкции/примеры плагинов, советы и т.д.

Если хочешь как Андрей делает : чтобы и к флешу прикрутить то плагин (чтобы датчики также назывались) - то плагин. А если для вывода в инфопанель или в шапку, то тут пофег как датчик будет называтся. С внешки вот так:

на AutoIt

PHP код:

        $rr ObjCreate("RideRunner.sdk"
        
$rr.Execute("MyApp1")
        
$speed $rr.getinfo("GPSSPDN")
        
$rr.Execute("SETLABEL;!n_test;425"

За исходниками для плагина обратись к Андрею.

ЗЫ не заметил что вы уже решили все =)

Bersenev 29.03.2011 09:15

Цитата:

Сообщение от nagval (Сообщение 178815)
C++ (VS2008SP1 + Qt 4.7.0)

Могу дать исходники плагина RRCheckEngine, они на C#, или iCarVOBD эти на Delphi. Первое, я думаю, ближе. Шаблона плагина на C++ я не встречал, можешь поискать на вражеском сайте, там была похожая тема, но по моему исходников не было, а может я и ошибаюсь.

Могу ещё предложить такой вариант, ты делаешь в программе возможность отправки данных через WM_COPYDATA, а я плагин для отображения этих данных в iCar

nagval 29.03.2011 09:48

Цитата:

Сообщение от Bersenev (Сообщение 178837)
Могу дать исходники плагина RRCheckEngine, они на C#, или iCarVOBD эти на Delphi. Первое, я думаю, ближе. Шаблона плагина на C++ я не встречал, можешь поискать на вражеском сайте, там была похожая тема, но по моему исходников не было, а может я и ошибаюсь.

Могу ещё предложить такой вариант, ты делаешь в программе возможность отправки данных через WM_COPYDATA, а я плагин для отображения этих данных в iCar

Так исходники как раз с вражеского... :blush: Давай попробую почитать исходники на С#, WM_COPYDATA я сделал уже. Только за глупые вопросы не бейте - программировал в последний раз лет 20 назад...

Bersenev 29.03.2011 10:04

Цитата:

Сообщение от nagval (Сообщение 178839)
Так исходники как раз с вражеского... :blush: Давай попробую почитать исходники на С#, WM_COPYDATA я сделал уже. Только за глупые вопросы не бейте - программировал в последний раз лет 20 назад...

Адрес куда отправить в личку.

А если WM_COPYDATA сделал, так давай я плагин сделаю, только добавь в программу режим эмуляции, так будет проще делать.

pierrotm777 29.03.2011 10:25

Exemple
 
You can use this exemple if you want use the copydata :

Код:

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_outfile=receiver.exe
#AutoIt3Wrapper_Compression=4
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include
#Include

;*******************************How to use this script****************************************
;1- Run this script
;2- Create a .skin with two buttons
;3- For each button, use the RR command "SENDMSG;NameOfYourScript;CMD1"

;*****************************************connexion à RR**************************************
Global Const $StructDef_COPYDATA = "ptr;dword;ptr"
;Global Const $WM_COPYDATA = 0x4A
;Global Const $WM_CLOSE = 0x10
Global Const $STRUCTDEF_AU3MESSAGE = "char[255]"

_Singleton(@ScriptName)

Global $FrontEndName
If ProcessExists("RideRunner.exe") Then
        $FrontEndName = "RideRunner.exe"
ElseIf ProcessExists("iCarDS.exe") Then
        $FrontEndName = "iCarDS.exe"
EndIf


;create SDK for COM with RR.  This must be done ONLY once per script
$rr = "NIL"
$F = WinExists("RoadRunner")
If $F = 0 Then MsgBox(0, "Error", "Need a RideRunner" & @CRLF & _
                        "process to run !!!", 5)
If $F = 1 Then
    $rr = ObjCreate("RideRunner.SDK")
EndIf

$rr.execute("SETTOPMOST;RR;false")

If @error Then
    MsgBox(4096, "Error", "An error it is produced")
EndIf

; Create Reciver window
$hwmd_Reciver = GUICreate("NameOfYourScript")

; Register Windows Messages
GUIRegisterMsg($WM_COPYDATA, "_GUIRegisterMsgProc")
GUIRegisterMsg($WM_CLOSE, "_GUIRegisterMsgProc")


Dim $cmd

While 1
        If $cmd = "CMD1" Then; you can change CMD1 by the command you want made
          $cmd = ""
                ;your code if CMD1 is send by DS or RR
                MsgBox(0,"Info","The button CMD1 is used !")
                $rr.execute("VIDEO")
        EndIf

        If $cmd = "CMD2" Then; you can change CMD2 by the command you want made
          $cmd = ""
                ;your code if CMD2 is send by DS or RR
                MsgBox(0,"Info","The button CMD2 is used !")
                $rr.execute("RADIO")
        EndIf

        If not ProcessExists($FrontEndName) Then
                Exit
        EndIf
        Sleep(250)
Wend

;**********************************************connexion à RR*************************************************
;*************************************************************************************************************

; Message Handler
Func _GUIRegisterMsgProc($hWnd, $MsgID, $WParam, $LParam)
        If $MsgID = $WM_COPYDATA Then
                ; We Recived a WM_COPYDATA Message
                ; $LParam = Poiter to a COPYDATA Struct
                $vs_cds = DllStructCreate($StructDef_COPYDATA, $LParam)
                ; Member No. 3 of COPYDATA Struct (PVOID lpData;) = Pointer to Costum Struct
                $vs_msg = DllStructCreate($STRUCTDEF_AU3MESSAGE, DllStructGetData($vs_cds, 3))

                $SciTECmdLen = DllStructGetData($vs_cds, 2)
                $cmd = StringLeft(DllStructGetData($vs_msg, 1), $SciTECmdLen)

                ; Display what we have recived
                ; MsgBox(0, "Test String", $cmd)

        ElseIf $MsgID = $WM_CLOSE Then
        ; We Recived a WM_CLOSE Message
                Exit
        EndIf
EndFunc ;==>_GUIRegisterMsgProc


Код:

;*******************************How to use this script****************************************
;1- Run this script
;2- Create a .skin with two buttons
;3- For each button, use the RR command "SENDMSG;NameOfYourScript;CMD1"


Bersenev 29.03.2011 10:47

Цитата:

Сообщение от pierrotm777 (Сообщение 178843)
You can use this exemple if you want use the copydata :

thanks:yes4:

ValeryL 29.03.2011 12:47

версия 1 0 5 37. только поставил-настроил. при включении не начинает играть музыку пока не зайдешь в экран "Музыка". даже если закроешь iCar и ту же запустишь его.

СитиГид: если закрыть iCar-ом кнопкой с крестиком СитиГид ничего не запомнит, если закрыть сам Ситигид, а потом ситигидовское окно iСar - все нормально.

sdslavi 29.03.2011 15:31

Извините меня за глупый вопрос, но как запустить Wi-Fi менаджере?При нажатие на его икон ничто не произходит


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

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