???
Математика на уровне МГУ

Показано с 1 по 25 из 347

Тема: Разное.

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #6
    Офицер Форума
    Регистрация
    16.05.2005
    Адрес
    СПб
    Возраст
    63
    Сообщений
    1,096

    Re: Разное.

    Вчера в процессе базара через аську с Виталей возникла мысль о том, что при наличии фритрека POV перестал использоваться. А это фактически ещё 8 "кнопок" на джое. Надо как-то задействовать. Дома поигравшись я понял, что на самом деле не 8, а 4, т.к. только в 4 положения мне чётко удаётся "попасть" - вертикальные и горизонтальные. Диагональные положения почти всегда "проходят" через одно из вертикальных или горизонтальных. Если в полёте при манипуляции одним органом управления случайно зацепишь другой, то это может быть опасно. Поэтому я диагональные положения рассматривать не стал.
    В результате я назначил POV таким образом: вперёд-назад - триммер, влево-вправо - короткие взгляды на левое и правое крыло соответственно (с фритреком работает). Освободившиеся кнопки триммера, которые у меня были на рукоятке газа, я назначил на управление закрылками. Протестил, оказалось очень удобно. Надо только чуть привыкнуть. Вот мой скрипт для автохоткея (там ещё есть мои назначения кнопок - они все описаны):


    ;=============================================================================
    ; Кусок отработки POV взят из хелп-файла ahk
    ; Т.к. POV используется для «несвойственных ему функций», то
    ; управление видами от POV в Кондоре должно быть выключено
    ;
    ; Назначение позиций POV:
    ; Вперёд – триммер вниз (более естественно получается, когда отклонение POV
    ; в том же направлении, что и ручка, вызывает то же действие) – “Ins”
    ; Назад – триммер вверх – “Del”
    ; Влево – короткий взгляд влево – “Numpad 7”
    ; Вправо – короткий взгляд вправо – “Numpad 9”
    ;
    ;=============================================================================

    SetTimer, WatchPOV, 10
    return

    WatchPOV:
    GetKeyState, POV, JoyPOV ; Get position of the POV control.
    KeyToHoldDownPrev = %KeyToHoldDown% ; Prev now holds the key that was down before (if any).

    ; Some joysticks might have a smooth/continous POV rather than one in fixed increments.
    ; To support them all, use a range:
    if POV < 0 ; No angle to report
    KeyToHoldDown =
    else if POV > 31500 ; 315 to 360 degrees: Ins (триммер вниз)
    KeyToHoldDown = Ins
    else if POV between 0 and 4500 ; 0 to 45 degrees: Ins (триммер вниз)
    KeyToHoldDown = Ins
    else if POV between 4501 and 13500 ; 45 to 135 degrees: Numpad9 (короткий взгляд вправо)
    KeyToHoldDown = Numpad9
    else if POV between 13501 and 22500 ; 135 to 225 degrees: Del (триммер вверх)
    KeyToHoldDown = Del
    else ; 225 to 315 degrees: Numpad7 (короткий взгляд влево)
    KeyToHoldDown = Numpad7

    if KeyToHoldDown = %KeyToHoldDownPrev% ; The correct key is already down (or no key is needed).
    return ; Do nothing.

    ; Otherwise, release the previous key and press down the new key:
    SetKeyDelay -1 ; Avoid delays between keystrokes.
    if KeyToHoldDownPrev ; There is a previous key to release.
    Send, {%KeyToHoldDownPrev% up} ; Release it.
    if KeyToHoldDown ; There is a key to press down.
    Send, {%KeyToHoldDown% down} ; Press it down.
    return


    ;=============================================================================
    ; Это назначение кнопки #6 джоя на левый Ctrl. У меня это PTT тимспика.
    ; (PTT – Push To Talk – кнопка при нажатии которой выполняется передача в эфир)
    ; У меня кнопка 6 – это средняя кнопка под большим пальцем на ручке сектора газа
    ; Этот кусок тоже из хелп-файла ahk.
    ;=============================================================================
    Joy6::
    Send {LCtrl down} ; Hold down the LCtrl
    SetTimer, WaitForButtonUp6, 10
    return

    WaitForButtonUp6:
    if GetKeyState("Joy6") ; The button is still, down, so keep waiting.
    return
    ; Otherwise, the button has been released.
    Send {LCtrl up} ; Release the LCtrl
    SetTimer, WaitForButtonUp6, off
    return

    ;=============================================================================
    ; Это назначение кнопки #4 джоя на Scroll Lock. У меня это кнопка центрирования
    ; взгляда во фритреке в режиме переключателя – первое нажатие включает режим
    ; центрирования, второе нажатие отключает. В настройках фритрека должно быть
    ; сделано соответствующее назначение:
    ; Закладка “Keys” -> секция “Tracking” -> в поле “Center” задано “ScrollLock”,
    ; галочка в колонке “Hold” убрана.
    ; На моём джое это правая кнопка под большим пальцем на самом джойстике
    ;=============================================================================

    Joy4::
    Send {ScrollLock down}
    Sleep 100
    Send {ScrollLock up}
    return

    ;=============================================================================
    ; Это назначение кнопок 5 и 7 джоя на уборку (V) и выпуск (F) закрылков
    ; У меня это верхняя и нижняя кнопки под большим пальцем на ручке сектора газа
    ; (между ними кнопка №6, которая работает как PTT)
    ;=============================================================================

    Joy5::
    Send {V down}
    Sleep 100
    Send {V up}
    return

    Joy7::
    Send {F down}
    Sleep 100
    Send {F up}
    return

    ;=============================================================================
    ; Это назначение кнопки 1 джоя на функцию «Приблизить»
    ; У меня это кнопка под указательным пальцем – «спусковой крючок»
    ;=============================================================================

    Joy1::
    Send {NumpadAdd down} ; Hold down the Numpad +
    SetTimer, WaitForButtonUp1, 10
    return

    WaitForButtonUp1:
    if GetKeyState("Joy1") ; The button is still, down, so keep waiting.
    return
    ; Otherwise, the button has been released.
    Send {NumpadAdd up} ; Release the Numpad +
    SetTimer, WaitForButtonUp1, off
    return

    Крайний раз редактировалось twww; 24.01.2008 в 12:34.
    Позывной в онлайне - TSD.

Ваши права

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