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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Рабочий журнал (http://pccar.ru/forumdisplay.php?f=25)
-   -   ACURA MDX '08 (http://pccar.ru/showthread.php?t=6698)

Hamster 21.03.2010 01:12

Не, я не из-за гемора... :) Меня просто устраивает 800х600 :)

Hamster 02.04.2010 23:06

Вложений: 1
Давненько не писал ничего :)
Ардуино - супермега вещь!
Отснифферил протокол родного джойстика. Ну, что сказать, SlDen был прав - решения, применяемые альпайном иногда просто взрывают мозг. Это ж надо додуматься кодировать сигнал от джойстика длительностью импульсов, через ( | ) просто...
Выглядит как-то так:

Вложение 16132

В итоге написал скетч для ардуины, который читает нажатую кнопку и выдает некий цифровой код кнопки. Работает без сбоев.

Вот, сижу - думаю, как теперь красиво сделать управление джойстиком в центрефуге...

slden 02.04.2010 23:46

Цитата:

Сообщение от Hamster (Сообщение 136836)
Это ж надо додуматься кодировать сигнал от джойстика длительностью импульсов, через ( | ) просто...

На самом деле истина глубже - есть там цифра
Цитата:

Сообщение от Hamster (Сообщение 136836)
Вот, сижу - думаю, как теперь красиво сделать управление джойстиком в центрефуге...

Тема актуальна.. В лоб не получится, тем более, есть внутренние баги флюкса. Заказал, известному в местных кругах гуру CF, скин (движок 3.1) под штатный дизайн Honda\Acura. Вливайтесь, сэр.

Hamster 02.04.2010 23:57

Цитата:

Сообщение от slden (Сообщение 136843)
На самом деле истина глубже - есть там цифра

Ну, я заморачиваться не стал. И решил не анализировать каждый из четырех "пакетов". Просто считаю, что нажатие кнопки - это посылка нескольких "пульсов" различной длительности (от 100 мкс до 1500 мкс), общей длительностью 11 мс. И все. Мож не очень грамотно, но работает :)

Цитата:

Сообщение от slden (Сообщение 136843)
На самом деле истина глубже - есть там цифра

Тема актуальна.. В лоб не получится, тем более, есть внутренние баги флюкса. Заказал, известному в местных кругах гуру CF, скин (движок 3.1) под штатный дизайн Honda\Acura. Вливайтесь, сэр.

Да, есть такое дело. В ЦФ несколько другой подход к интерфейсу, нежели в штатной системе.
Т.е. если в штате я могу поворотным энкодером джойстика выбирать пункт меню, а потом подтверждаю выбор кнопкой enter, то в ЦФ такие фишки не проходят...

Я наверное оставлю функции поворотного энкодера только в тех местах, где есть списки (т.е. движение по списку вверх-вниз). Ну, плюс в режиме нави он будет управлять зуумом, так же как в штатной нави.

Chip 03.04.2010 00:48

Цитата:

Сообщение от Hamster (Сообщение 136836)
Давненько не писал ничего :)
Ардуино - супермега вещь!
Отснифферил протокол родного джойстика. Ну, что сказать, SlDen был прав - решения, применяемые альпайном иногда просто взрывают мозг. Это ж надо додуматься кодировать сигнал от джойстика длительностью импульсов, через ( | ) просто...
Выглядит как-то так:

В итоге написал скетч для ардуины, который читает нажатую кнопку и выдает некий цифровой код кнопки. Работает без сбоев.

Вот, сижу - думаю, как теперь красиво сделать управление джойстиком в центрефуге...

Неплохо :thumbup1:

Hamster 06.04.2010 17:45

Цитата:

Сообщение от Hamster (Сообщение 136844)
В ЦФ несколько другой подход к интерфейсу, нежели в штатной системе.
Т.е. если в штате я могу поворотным энкодером джойстика выбирать пункт меню, а потом подтверждаю выбор кнопкой enter, то в ЦФ такие фишки не проходят...

Нда... Фигню какую-то написал. Я как ярый "тачскринщик" к стыду своему никогда не использовал для управления центрефугой клавиатуру :) И не знал, что там отлично работают кнопки управления курсором. На них и повесил поворотный энкодер.

В общем, прикрутил все кнопки (окромя Info, х.з. что на нее повесить можно, пока не придумал) и поворотный энкодер. теперь дело за малым - GA-NET+ читать с помощью ардуины.

Cyb1980 07.04.2010 16:01

Цитата:

Сообщение от Hamster (Сообщение 137289)
В общем, прикрутил все кнопки (окромя Info, х.з. что на нее повесить можно, пока не придумал) и поворотный энкодер. теперь дело за малым - GA-NET+ читать с помощью ардуины.

Привет! Я вижу ты решил проблему, к которой я только подступаюсь - прикрутил штатные кнопки к центрифуге.
Каким же образом? Предположим ардуино уже знает какая кнопка нажата. Посредством чего (какого софта) она сообщает об этом центрифуге?

Hamster 07.04.2010 16:39

Вложений: 1
Цитата:

Сообщение от Cyb1980 (Сообщение 137426)
Привет! Я вижу ты решил проблему, к которой я только подступаюсь - прикрутил штатные кнопки к центрифуге.
Каким же образом? Предположим ардуино уже знает какая кнопка нажата. Посредством чего (какого софта) она сообщает об этом центрифуге?

Если про МДХ говорить - то это не совсем штатные кнопки. Т.е. они штатные, но это не кнопки руля (резистивные), а кнопки и поворотный энкодер. Обычно все это барахло вместе называют джойстиком.
Вложение 16208

После того, как ардуина определила, что за кнопка на джойстике нажата она посылает код кнопки в компорт.
С другой стороны сидит скрипт на автохоткее который банально мапит полученные коды кнопок в нажатия клавиш. Типа того:

PHP код:

  WinActivate centrafuse
MAP/GUIDE
Вызов нави (должна быть первой external application)
  If 
JogKey == MAP
    
{
      
Send ^+{F1}
    }

SCROLL_L
Кнопка вверх
  
If JogKey == SCROLL_L
    
{
      
Send {Up}
    }

SCROLL_R
Кнопка вниз
  
If JogKey == SCROLL_R
    
{
      
Send {Down}
    }

ENTER
Кнопка enter
  
If JogKey == ENTER
    
{
      
Send {Enter}
    }

  
PrevKey := JogKey 

Что касается рулевых кнопок в Цивике - с ними та же песня, за исключением другого кода в ардуине.
На МДХ штатные кнопки руля я не заводил в комп. Дело в том, что в МДХ комп это лишь часть системы, поэтому полность брать контроль на себя кнопками он не может. Буду делать по - другому, комп будет читать шину (GA-NET+) и оттуда вылавливать нажатия кнопок на руле.
Вот, как-то так.

St@rz 07.04.2010 22:39

Вот еще скриптик.
Может что то используешь из него для себя.
Содержание поймешь.


Код:

; AutoHotkey Version: 1.x
; Language:      English
; Platform:      Win9x/NT
; Author:        A.N.Other
;
; Script Function:
;        Template script (you can customize this template by editing "ShellNew\Template.ahk" in your Windows folder)
;

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
#Persistent
#NoTrayIcon

SendMode Input
SetTitleMatchMode RegEx


~WheelUp::
IfWinActive, ahk_class WindowsForms10.Window
{
GetKeyState, state, mButton
if state = u
Send {Up}
}

return


~WheelDown::
IfWinActive, ahk_class WindowsForms10.Window
{
GetKeyState, state, mButton
if state = u
Send  {Down}
}

return


~MButton::
gosub,nazad
if stat= kor
Send {Enter}
if stat= dln
{
Send {Control down}
sleep,30
Send {0}
sleep,30
Send {Control up}
}


return

~g::
gosub,nazad1
if stat= kor
Send {Enter}
if stat= dln
{
Send {Control down}
sleep,30
Send {0}
sleep,30
Send {Control up}
}
return


~f4::
exitapp
return






nazad:
Loop
{
    Sleep, 1
    GetKeyState, state, MButton, P
    if state = U  ; The key has been released, so break out of the loop.
        break
    tim=%A_Index%
}
if tim <= 30
{
;tooltip, %tim%
stat= kor
return
}
if tim >= 30
{
;tooltip, %tim% "2"
stat= dln
}

return




nazad1:

Loop
{
    Sleep, 1
    GetKeyState, state, g, P
    if state = U  ; The key has been released, so break out of the loop.
        break
    tim=%A_Index%
}
if tim <= 30
{
;tooltip, %tim%
stat= kor
return
}
if tim >= 30
{
;tooltip, %tim% "2"
stat= dln
}

return


Hamster 07.04.2010 23:12

Цитата:

Сообщение от St@rz (Сообщение 137497)
Вот еще скриптик.
Может что то используешь из него для себя.
Содержание поймешь.

Пасиба. Но, мне он не может. Во-первых, ужо все работает, а во-вторых у меня ведь джойстик не эмулирует полноценную клавиатуру. GetKeyState ничего не вернет, да и понятия "нажата кнопка" ("U") или "отжата кнопка" ("D") у меня нет.


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

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