Jump to content
Tory

SOS: вопросы по приборам на XML

Recommended Posts

У DC-3 хвостовое колесо, в aircraft.cfg прописано tailwheel_lock = 1, там это работает. А как это может сработать на передней стойке?

  • Upvote 1

Share this post


Link to post
Share on other sites

Где ошибка (ткните меня)?

Скрытый текст

<Gauge Name="Tailwheel Lock" Version="1.0">
   <Element>
      <Select>
         <Value>(A:Tailwheel lock on,bool)</Value>
         <Case Value="0">
            <Image Name="Kn_1_OFF.bmp" ImageSizes="51,52"/>
         </Case>
         <Case Value="1">
            <Image Name="Kn_1_ON.bmp" ImageSizes="51,52"/>
         </Case>
      </Select>
   </Element>
   <Mouse>
      <Cursor Type="Hand"/>
      <Click Event="TOGGLE_TAILWHEEL_LOCK"/>
   </Mouse>
</Gauge>

Код простейший, чуть ли не в пять строчек... Кнопка вообще не нажимается даже. В aircraft.cf записывал tailwheel_lock = 1 (изначально у меня tailwheel_lock = 0), что бы хоть посмотреть, что получится. Ничего подобного - Не работает кнопка. Ни так, ни так...

Share this post


Link to post
Share on other sites
34 минуты назад, Alexander Belov пишет:

А в самом DC-3 этот код срабатывает? 

Безупречно.

Share this post


Link to post
Share on other sites

Странно... Тогда я - пас... Не знаю.

Может быть, должны быть какие-то еще настройки.

Share this post


Link to post
Share on other sites
6 минут назад, Alexander Belov пишет:

Странно... Тогда я - пас... Не знаю.

Может быть, должны быть какие-то еще настройки.

Спасибо огромное, Александр, за то , что всегда приходите на помощь!

Вопрос с этим управлением передней стойкой - Мудрёная вещь. Пожалуй пока его реализацию я отложу.

Ещё раз спасибо всем, кто помогает!

Share this post


Link to post
Share on other sites
Спасибо огромное, Александр, за то , что всегда приходите на помощь!
...


Плюсую).
по поводу ПОШ, несколько раз читал здесь, что управлением ей возможно только из Си прибора. Так что только какой то прибор мостить на панель чужой и пытаться попользовать его переменные в своём приборе, через условия. Но это не точно.


Отправлено с моего iPhone используя Tapatalk

Share this post


Link to post
Share on other sites

Из GAU? Не вопрос сделать, только надо понять, какой эвент (событие) надо активировать. Можно сделать трансляцию из XML в GAU и обратно. Меняем переменную в XML-приборе, а в GAU отрабатываем изменение.

И все-таки, почему в DC-3 все работает, а в других моделях - нет?... :(

Share this post


Link to post
Share on other sites

И все-таки, почему в DC-3 все работает, а в других моделях - нет?... [emoji20]

Так у костыля вроде своя переменная? ПОШ не костыль все же. Переменную можно в сдк сишном посмотреть и попробовать помучить приборы которые есть с управлением. Хотя вроде речь шла о секретной библиотеке для своих, вроде в пт использовалась и ещё где то.



Отправлено с моего iPhone используя Tapatalk

Share this post


Link to post
Share on other sites

В SDK для FS9 нет специально выделенной "носовой стойки шасси". Есть хвостовая опора. В "дакоте" она закрепляется командой, которую мы рассматривали выше. В GAU (С++) для этой операции используется эвент: KEY_TOGGLE_TAILWHEEL_LOCK.

Попробую поискать, может что и отыщется для носовой стойки.

Кстати, проверьте: носовая стойка отличается по номеру ее строки - она ДОЛЖНА БЫТЬ ПЕРВОЙ в секции [contact points]:

[contact_points]
point.0=1, 40.00, 0.00, -8.40, 1181.1, 0, 1.442, 55.92, 0.6, 2.5, 0.9, 4.0, 4.0, 0, 220.0, 250.0

В DC-3 "хвостовое колесо" тоже первое в списке.

Edited by Alexander Belov

Share this post


Link to post
Share on other sites

А вот интересно, на какую модель автор это прилаживает? Там стойка анимирована? Вообще есть ли возможность посмотреть анимацию модели, в которой колесо может отключаться - переменная скорее всего и будет той переменой что в приборе гау.
Я не помню есть ли переменная поворота (управления рулением, что угодно) пош в девятке? Дефолты же как то рулят.
Смысл в том чтобы найти такую переменную - отвечающую за руление, дефолт или в кастом гау, и потом ее уже обрабатывать.
Но это совсем уже не точно )) это уже аналогия с хплэйном.



Отправлено с моего iPhone используя Tapatalk

Share this post


Link to post
Share on other sites

Ничего там с ПОШ сложного нет. Допустим два тумблера: Певый - разблокирует управление разворотом передней стойки (L:Wheel steer, bool). Второй - ограничивает или при включении разблокирует максимальный угол её разворота (L:Steer55, bool). Взаимодействие и(или) влияние на органы управления реализуется через переменные в 3D модели и(или) С++, но и так вполне работает. Допустим в FS9 педали SCS Ту-134 отвязаны от переменных c помощью С++. Пока не включишь (L:Wheel steer, bool), педали свободно будут перемещаться без влияния на колесо и руль направления. В FSX эта часть Си гауги не работает и они заблокированы на земле пока так же не сработает указанная логика.

point.0 = 1, 41.9737, 0, -10.36, 1281.1, 0, 1.08, 55(угол разворота max), 0.39, 2.4, 0.6, 6.9, 6.8, 0, 220, 250

<!--  ======== Steering ============ -->
   <Element>
      <Select>
         <Value>
		(A:SIM ON GROUND,bool) if{ (L:Wheel steer, bool) ! if{ 0 (>K:RUDDER_SET) }
		(L:Wheel steer, bool) (L:Steer55, bool) ! and if{
		(A:Rudder Position, percent) 34 &gt; if{ -5570 (>K:RUDDER_SET) }
		(A:Rudder Position, percent) -34 &lt; if{ 5570 (>K:RUDDER_SET) } } }
	</Value>
      </Select>
   </Element>

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

Edited by KAI31

Share this post


Link to post
Share on other sites
... Взаимодействие и(или) влияние на органы управления реализуется через переменные в 3D модели и(или) С++, но и так вполне работает. Допустим в FS9 педали SCS Ту-134 отвязаны от переменных c помощью С++. Пока не включишь (L:Wheel steer, bool), педали свободно будут перемещаться без влияния на колесо и руль направления...

Так какая именно гауга то на си?


Отправлено с моего iPhone используя Tapatalk

Share this post


Link to post
Share on other sites
6 минут назад, FlaynGrizzly пишет:


Так какая именно гауга то на си?

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

Edited by KAI31

Share this post


Link to post
Share on other sites

Здравствуйте, коллеги!
Ну вот как обычно, без вашей помощи - Никак... Вынужден просить помощи.
Собираю тут приборчик (будет похож на КПИ. Для девятого MFS, как обычно)... дело дошло до меток автопилота, показывающих на шкалах заданную скорость и высоту. Расковырял несколько похожих приборов,
но принцип перемещения этих меток по отношению к шкалам так и не могу понять.
Наглядно:

525231693_.JPG.c203d34ab06ab21efc515c05feadebec.JPG

Нужно задать расстояние, на которое метка перемещается (что бы не выходила за пределы поля шкалы). И нужно, чтобы при движении самой шкалы, метка располагалась напротив заданного значения, двигаясь синхронно со шкалой.

Записывается это примерно вот таким выражением:

    <!-- Altitude Bug -->
        <Element>
          <Position X="221" Y="155" />
          <Image Name="KPI_bug.bmp" Bright="Yes" ImageSizes="7,17">
            <Axis X="1" Y="9" />
          </Image>
          <Shift>
            <Value Minimum="-590" Maximum="600">(P:Units of measure, enum) 2 == if{
(A:Indicated Altitude, meters) (A:Autopilot altitude lock var, meters)  -  } els{
(A:Indicated Altitude, feet) (A:Autopilot altitude lock var, feet)  -  } </Value>
            <Scale Y="0.15" />
          </Shift>
        </Element>

Я так понимаю тут какое-то отношение задано, но принцип уловить не могу. менял цыфры в разные стороны , но нужного результат получить не удается. Метки движутся не синхронно со шкалами. По какому принципу вообще задаются числа <Value Minimum="-590" Maximum="600">   <Scale Y="0.15" /> ?

Share this post


Link to post
Share on other sites

Ну ладно...

Вот ещё тут задачка... 

Хочется сделать переключатель и  стрелку...  В принципе всё просто и воде бы как реально сделать... Стрелка, в зависимости от положения переключателя, должна показывать курсовой угол АРК1 или VOR1 на шкале ГМК. Есть прибор с похожей стрелкой на модели Як-42, но там всё на G-переменных основано. Я так припоминаю, что приборы с такой переменной по разному работают в 2D панели, даже в разных окнах... Так что нужно, что бы на L-переменных всё работало, наверное. Я тут наковырял строчку одну... На половину работает - углы АРК показывает. Но учитывая, что я не знаю как даже правильно знаки расставить, полноценный прибор у меня не получается.  Мог бы кто нибудь оказать практическую помощь?

Share this post


Link to post
Share on other sites
6 часов назад, Казачок пишет:

Ну ладно...

Вот ещё тут задачка... 

Хочется сделать переключатель и  стрелку...  В принципе всё просто и воде бы как реально сделать... Стрелка, в зависимости от положения переключателя, должна показывать курсовой угол АРК1 или VOR1 на шкале ГМК. Есть прибор с похожей стрелкой на модели Як-42, но там всё на G-переменных основано. Я так припоминаю, что приборы с такой переменной по разному работают в 2D панели, даже в разных окнах... Так что нужно, что бы на L-переменных всё работало, наверное. Я тут наковырял строчку одну... На половину работает - углы АРК показывает. Но учитывая, что я не знаю как даже правильно знаки расставить, полноценный прибор у меня не получается.  Мог бы кто нибудь оказать практическую помощь?

Если у вас прибор работает для АРК, добавить VOR должно быть не сложно... Покажите код своего прибора, посмотрим.

  • Upvote 1

Share this post


Link to post
Share on other sites
7 часов назад, Sins пишет:

Если у вас прибор работает для АРК, добавить VOR должно быть не сложно... Покажите код своего прибора, посмотрим.

Спасибо!

Переключатель:

    <Click>
      (L.needle A1 mode, bool) ! (>L.needle A1 mode, bool) 0 (>K:TOGGLE_AFTERBURNER1)
    </Click> 

А вот стрелка:

               <Rotate>
                  <Value>(L.needle A1 mode, bool) if{ (A:ADF1 radial, radians) } els{ 0 } } els{(A:NAV1 radial, radians) (A:Plane heading degrees gyro, radians) - pi  +</Value>
               </Rotate>

Скорее всего я в коде стрелки чего-то со знаками нагородил.

Share this post


Link to post
Share on other sites
2 часа назад, Казачок пишет:

Спасибо!

Переключатель:

    <Click>
      (L.needle A1 mode, bool) ! (>L.needle A1 mode, bool) 0 (>K:TOGGLE_AFTERBURNER1)
    </Click> 

А вот стрелка:

               <Rotate>
                  <Value>(L.needle A1 mode, bool) if{ (A:ADF1 radial, radians) } els{ 0 } } els{(A:NAV1 radial, radians) (A:Plane heading degrees gyro, radians) - pi  +</Value>
               </Rotate>

Скорее всего я в коде стрелки чего-то со знаками нагородил.

Не со знаками, а со скобками. Вроде должно быть так:

<Value>

(L.needle A1 mode, bool) if{ (A:ADF1 radial, radians) }
els{ (A:NAV1 radial, radians) (A:Plane heading degrees gyro, radians) - pi  + }

</Value>

У вас в коде два раза els, один раз попытка вывести нулевое значение, другой раз - рассчитанное по формуле. Я вывод нуля выбросил. Если нужно, добавим условия, пишите алгоритм.

  • Like 1

Share this post


Link to post
Share on other sites
Только что, Sins пишет:

Не со знаками, а со скобками. Вроде должно быть так...

 

Огромное спасибо за помощь! Буду пробовать.

Share this post


Link to post
Share on other sites
10 минут назад, Sins пишет:

 должно быть так:

<Value>(L.needle A1 mode, bool) if{ (A:ADF1 radial, radians) }
els{ (A:NAV1 radial, radians) (A:Plane heading degrees gyro, radians) - pi  + }</Value>

 

Ещё раз Вам огромное Спасибо! Всё работает отлично! Благодаря Вашей помощи у меня сразу несколько приборов в панели правильно заработали.

Share this post


Link to post
Share on other sites
20 часов назад, Казачок пишет:

Ещё раз Вам огромное Спасибо! Всё работает отлично! Благодаря Вашей помощи у меня сразу несколько приборов в панели правильно заработали.

(L.needle A1 mode, bool) как у вас работает? Правильная орфография написания принадлежности локальной переменной (L:хххххх, хххх), (L:needle A1 mode, bool), а у вас после L точка и это неправильно.

 <Rotate>
                  <Value>(L.needle A1 mode, bool) if{ (A:ADF1 radial, radians) } els{ 0 } } els{(A:NAV1 radial, radians) (A:Plane heading degrees gyro, radians) - pi  +</Value>
               </Rotate>

Правильный код будет примерно так:

<Rotate>
                  <Value>(L:needle A1 mode, bool) if{ (A:ADF AVAILABLE, bool) } if{ (A:ADF1 radial, radians) } els{ (A:NAV1 radial, radians) (A:Plane heading degrees gyro, radians) - pi  + }</Value>
               </Rotate>

Внимательно с пробелами и запятыми, xml очень чувствителен к синтаксису и орфографии. Ещё к стрелке возможно добавить произвольное движение чтобы она вращалась при включенном питании прибора и при отсутствии активного сигнала маяков.

Edited by KAI31
  • Like 1

Share this post


Link to post
Share on other sites
В 24.08.2020 в 07:36, KAI31 пишет:

 у вас после L точка и это неправильно....

 Внимательно с пробелами и запятыми, xml очень чувствителен к синтаксису и орфографии. 

Спасибо за подсказку!....  Точка - Это просто опечатка в сообщении. В чистовом варианте всё исправлено.

                  <Value>(L.needle A1 mode, bool) if{ (A:ADF1 radial, radians) } els{ 0 } } els{(A:NAV1 radial, radians) (A:Plane heading degrees gyro, radians) - pi  +</Value>  -  Я всегда говорил, что писать на XML я не умею. И проблема у меня именно с синтаксисом и орфографией. Я не знаю значения знаков, разных выражений и как их нужно правильно применять. 

Когда мне нужно сделать какой-то прибор, я просто пытаюсь использовать куски готовых кодов. Иногда получается , иногда нет. Если не выходит - Прошу помощи у более знающих коллег. Тоже - Иногда получается , иногда нет ))). Периодически  (если всё складывается удачно) эти потуги приводят к созданию готовой панели для какого нибудь самолёта ))....

А вообще коллега Sins правильно подсказал (ну за исключением неправильно поставленной мной точки) - Прибор уже испытан и работает. Его код и Ваш (правильный) практически идентичны.

В любом случае, спасибо Вам ещё раз за помощь!

P.S.

Если возможно, с метками заданной скорости и  высоты помогите пожалуйста! (сообщение с картинкой чуть выше)

 

Edited by Казачок

Share this post


Link to post
Share on other sites

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

Может кто подсказать?...

Нужно в приборе текстом указать: Метеорологическое направление ветра относительно земли , и скорость ветра относительно земли в км/ч.

Интересует точная запись <String>??????????</String> в первом и во втором случае.

Share this post


Link to post
Share on other sites

Здравствуйте!

Может кто подсказать?...

Что будет показывать стрелка с таким вот кодом:                 

<Rotate> <Value>(A:Velocity world X, m/s) (A:Velocity world Z, m/s) atg2 (A:Magvar, radians) - (A:Plane heading degrees gyro, radians) - </Value> </Rotate>     ?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...