SOS: вопросы по приборам на XML — Панели и приборы

Эээ, а паттерн печати дробного числа правильный? Вот это вот %!0.4f!%

Просто это всё пришло из С, а там печать числа типа 0.123 будет через паттерн %5.3f , где 5 — это общее число знаков включая разделитель, 3 — кол-во знаков после запятой, ну и f — это собсно float. Попробуйте %!5.3f!%

Я тоже это заподозрил, но не, в приборе-шпаргалке (4.5f) показывает 5 знаков, но меняются (независимо от АП) только до второго знака. Похоже точность через (>K:AP_MACH_VAR_DEC/INC)   задана (при переводе из узлов в км/ч)  2-мя знаками после запятой. 

Попробуйте через set, как выше писали.

ЗЫ: ни разу не смог вкл. удержание числа М, не хочет. + заданное число М в окне не всегда меняется, не реагирует на мышь, в отладочном приборе значение меняется, в окне АП — нет.       

Я тоже это заподозрил, но не, в приборе-шпаргалке (4.5f) показывает 5 знаков, но меняются (независимо от АП) только до второго знака. Похоже точность через (>K:AP_MACH_VAR_DEC/INC)   задана (при переводе из узлов в км/ч)  2-мя знаками после запятой. 

Попробуйте через set, как выше писали.

ЗЫ: ни разу не смог вкл. удержание числа М, не хочет. + заданное число М в окне не всегда меняется, не реагирует на мышь, в отладочном приборе значение меняется, в окне АП — нет.       

Я уже много чего пробовал. Моих знаний очевидно не хватает. Пока пользуюсь только изменением скорости удержания вот в таком виде:

 

    <!— IAS-MCH windows —>
    <Area Left=»386″ Right=»424″ Top=»68″ Bottom=»93″>
      <Cursor Type=»DownArrow» />
      <Click Event=»AP_SPD_VAR_DEC» Repeat=»Yes»></Click>
    </Area>
    <Area Left=»425″ Right=»462″ Top=»68″ Bottom=»93″>
      <Cursor Type=»UpArrow» />
      <Click Event=»AP_SPD_VAR_INC» Repeat=»Yes»></Click>
    </Area>
 

По шелчку мышки изменяются десятки узлов. Кручу колесо мышки — меняю единицы. На удержание числа М не переключаюсь.

Как мне кажется, здесь нужно менять сам алгоритм установки(изменения) скорости (числа М) удержания автопилотом.

Этот простенький автопилот очень подходит для отладки динамики того или иного самолёта.

Подниму старую тему.

 

Нужен совет не столько по конкретным переменным, т. к. их в SDK нет, сколько по идеям. В симе есть встроенное УВД. Надо обнаружить факт приёма голосового сообщения (типа диспетчер или другой борт вышел на передачу, которую я слышу) и получить уровень сигнала/расстояние до передающей станции. Дело в том, что для NAV и ADF это всё по дефолту есть, а вот для COM нету. Может быть, кто-нибудь встречался с подобной задачей и мог бы подсказать?

Это можно сделать с использованием GPS-модуля. Вот тут:

 

http://www.robbiemce…m/fs/guides/gps

 

есть хорошая книга по этой тематике:

 

http://www.robbiemce…debook v1.1.pdf

 

Станцию РЭБ для В-29 и «всеволновый» радиопеленгатор для «каталины» делал по этой докуемнтации.

Это можно сделать с использованием GPS-модуля.

Александр, спасибо! Я, пока ехал домой, уже всякого напридумывал :sarcastic: , а тут, оказывается, всё есть :) Буду читать.

P. S.: Расковырял дефолтный G1000 из ФСХ и стало интересно: трафик он рисует, а как — не могу найти в коде. Даже битмапа с иконкой самолётика нет  :umnik2:

И не будет — это делается через вызов CustomDraw. Для FSX вся работа с GPS и картой изложена на сайте:

 

http://msdn.microsof…y/cc527031.aspx

 

Там все подробнейше разобрано.

От оно чё… Спасибо, это, похоже, то же, что и SDK. На всякий случай добавил в закладки. Ничего раньше не знал про CustomDraw.

Читаю книгу… Оказывается, никаких «переменных» и «битмапов» для sim-GPS в понимании привычных нам «гауг» не существует! Есть GPS-модуль, который запускается симом и работает, а мы, из нашей sim-GPS, просто обращаемся к нему и говорим, что вывести, что нарисовать… Надо же, как! :preved:  Теперь гораздо понятнее вся та «китайская грамота», которая содержится в дефолтных GPS-кодах.

Не тольк так. В принципе, можно получить данные из GPS-модуля и использовать их для собственных целей. Но при этом надо учитывать, что вызов GPS-модуля — это длительная процедура. В книге это особо оговаривается.

Всех приветствую!

 

Коллеги, подскажите:

Нужно тумблер написать на стандартную команду симулятора (MFS 2004) «разложение хвостового крюка» (в моём симе).

Какую переменную записывать?

Буду признателен за помощь.

Переменные тут не помогут. Нужно воспользоваться эвентом (событием):

 

0 (>K:TOGGLE_TAIL_HOOK_HANDLE)

Благодарю за помощь!

Можно G-переменную ввести

А зачем? Если только переключением битмапок управлять? Но тогда L-переменные (глобальные) удобнее — их видно и из других приборов. Можно не только тумблер, управляющий гаком (таки это устройство называется на флоте «гак»), но и сигнальную лампу сделать.

Ещё раз всем спасибо!

 

Вот так записал:

 

  <Click>(L:Var1,bool) ! (>L:Var1,bool) 0 (>K:TOGGLE_TAIL_HOOK_HANDLE)</Click>

 

А G-переменная не подходит — по разному ведёт себя в ВК и 2D почему-то.

2 hours ago, Казачок said:

Код прибора (снял с Lockheed P-3B) оказался на столько мудрёным, что я до сих пор не понимаю как, но он работает.

А не покажете здесь? Интересно посмотреть.

9 часов назад, hrjushkin пишет:

Так может просто записать в переменную  K:PROP_PITCH1_SET нужное значение? 0 — макс. шаг, 16383 — минимальный, -16384 — винт зафлюгирован.

Не получится — шаг винта меняется только в пределах, заданных в aircraft.cfg (параметры beta_min и beta_max). За эти границы выйти нельзя.

В 14.03.2017 в 00:28, ilya1502 пишет:

А не покажете здесь? Интересно посмотреть.

Приветствую!

Да пожалуйста. Секретного-то ничего нет…


    <Element>
    <Select>
    <Value>(L:Feather1_Var,number) (P:Local Time, seconds) &lt; (L:Prop1_Feathered,bool) 1 == &amp;&amp; if{ 2 (&gt;L:Prop1_Feathered_State,enum) 0 (&gt;L:Feather1_Var,number) }</Value>
    </Select>
    </Element>
        <Element>
     <Select>
      <Value>(L:Prop1_Feathered_State,enum) 1 == (A:Circuit general panel on, bool) 0 == &amp;&amp; if{ 2 (&gt;L:Prop1_Feathered_State,enum) 0 (&gt;L:Feather1_Var,number) }</Value>
     </Select>
    </Element> 

<Element>
      <Position X=»16″ Y=»45″/>
      <Select>
         <Value>(A:general eng1 propeller lever position,part)</Value>             <Case Value=»0″>
<Image Name=»KFL-37_On_L.bmp» ImageSizes=»72,104,0,0″/>
         </Case>
         <Case Value=»1″>
<Image Name=»KFL-37_Off_L.bmp» ImageSizes=»72,104,0,0″/>
         </Case>
      </Select>
   </Element>

 <Mouse>
  <Area Left=»16″ Right=»88″ Top=»85″ Bottom=»150″>
         <Tooltip>Push To Feather</Tooltip>
         <Cursor Type=»Hand»/>
         <Click>(P:Local Time, seconds) 59.00 + (&gt;L:Feather1_Var,number) + -16384.0 (>K:PROP_PITCH1_SET) 1 (>L:Prop1_Feathered,bool) 1 (>L:Prop1_Feathered_State,enum) (&gt;K:MIXTURE1_LEAN) (>K:ENGINE) (L:Prop2_Feathered,bool) ! if{ (>K:SELECT_2) } (L:Prop3_Feathered,bool) ! if{ (>K:SELECT_3) } (L:Prop4_Feathered,bool) ! if{ (>K:SELECT_4) }
</Click>
      </Area>

      <Area Left=»16″ Right=»88″ Top=»40″ Bottom=»85″>
         <Tooltip>Pull To Defeather</Tooltip>
         <Cursor Type=»Hand»/>
         <Click> 16384 (>K:PROP_PITCH1_SET) 0 (>L:Prop1_Feathered,bool) 0 (>L:Prop1_Feathered_State,enum) (>K:ENGINE) (>K:SELECT_1) (L:Prop2_Feathered,bool) ! if{ (>K:SELECT_2) } (L:Prop3_Feathered,bool) ! if{ (>K:SELECT_3) } (L:Prop4_Feathered,bool) ! if{ (>K:SELECT_4) }</Click>
      </Area>

   </Mouse>

 

Это код кнопки левого двигателя.


Edited by Казачок

В 14.03.2017 в 07:27, Alexander Belov пишет:

Не получится — шаг винта меняется только в пределах, заданных в aircraft.cfg (параметры beta_min и beta_max). За эти границы выйти нельзя.

Так все-таки работает или нет?

1 час назад, Казачок пишет:

<Area Left=»16″ Right=»88″ Top=»85″ Bottom=»150″>
         <Tooltip>Push To Feather</Tooltip>
         <Cursor Type=»Hand»/>
         <Click>(P:Local Time, seconds) 59.00 + (&gt;L:Feather1_Var,number) + -16384.0 (>K:PROP_PITCH1_SET) 1 (>L:Prop1_Feathered,bool) 1 (>L:Prop1_Feathered_State,enum) (&gt;K:MIXTURE1_LEAN) (>K:ENGINE) (L:Prop2_Feathered,bool) ! if{ (>K:SELECT_2) } (L:Prop3_Feathered,bool) ! if{ (>K:SELECT_3) } (L:Prop4_Feathered,bool) ! if{ (>K:SELECT_4) }
</Click>
      </Area>

      <Area Left=»16″ Right=»88″ Top=»40″ Bottom=»85″>
         <Tooltip>Pull To Defeather</Tooltip>
         <Cursor Type=»Hand»/>
         <Click> 16384 (>K:PROP_PITCH1_SET) 0 (>L:Prop1_Feathered,bool) 0 (>L:Prop1_Feathered_State,enum) (>K:ENGINE) (>K:SELECT_1) (L:Prop2_Feathered,bool) ! if{ (>K:SELECT_2) } (L:Prop3_Feathered,bool) ! if{ (>K:SELECT_3) } (L:Prop4_Feathered,bool) ! if{ (>K:SELECT_4) }</Click>
      </Area>

 

1 час назад, Казачок пишет:

Приветствую!

Да пожалуйста. Секретного-то ничего нет…

А вы какую модель самолета крутите-вертите? Я что-то пропустил.. Самдим? Для 9-ки?

5 минут назад, hrjushkin пишет:

А вы какую модель самолета крутите-вертите? Я что-то пропустил.. Самдим? Для 9-ки?

Модель Ан-24РВ, для Девятки.

Приведёный код кнопки работает — Винт флюгируется, двигатель выключается. Может, конечно, тут что и не так в коде, но всё работает исправно — Я испытывал .


Edited by Казачок

 

7 минут назад, Казачок пишет:

Приведёный код кнопки работает — Винт флюгируется, двигатель выключается.

Я про чуть выше, был разговор, что как-то на флюгирование влияют переменные в aircraft.cfg:

В 14.03.2017 в 07:27, Alexander Belov пишет:

Не получится — шаг винта меняется только в пределах, заданных в aircraft.cfg (параметры beta_min и beta_max). За эти границы выйти нельзя.

Получается, что не влияют?

1 минуту назад, hrjushkin пишет:

 

Я про чуть выше, был разговор, что как-то на флюгирование влияют переменные в aircraft.cfg:

Получается, что не влияют?

Я в программировании вообще мало понимаю. Помню, что где-то на форуме по Ан-24РВ сообщалось, что можно на данной модели реализовать флюгирование (там даже скрин был самолёта с зафлюгированым винтом).

Ну и вот… Методом околонаучного тыка свинтил кнопку с другого самолёта.

5 минут назад, Казачок пишет:

Ну и вот… Методом околонаучного тыка свинтил кнопку с другого самолёта.

Я пытаюсь тоже повторить — не получается. Копирую все, что в секции <Click> на кнопке флюгирования. Двигатель останавливается, но лопасти остаются под углом малого шага. А что у вас в aircraft.cfg? Можно глянуть его?