Jump to content
Tory

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

Recommended Posts

<Value>(A:Attitude indicator bank degrees:2,radians) /-/ </Value>

Спасибо, что откликнулись!

Строчку переписал, индикатор просто остановился (не наклоняется). Может я что-то не то исправил? Можно чуть подробнее - Я был бы Вам очень признателен.

Share this post


Link to post
Share on other sites

Прошу прощения.

Уже разобрался (писать нужно правильно), всё заработало.

Большое Вам спасибо за помощь!

Edited by Kazachek

Share this post


Link to post
Share on other sites

Добрый вечер!

Снова вынужден обратится за помощью к Многоуважаемым Знатокам.

Помогите пожалуйсто советом. Проблема в следующем: Установил в виртуальной кабине Л-410 пульт аппаратуры СП-50 - ИЛС.

Прибор довольно известный, работает на многих моделях.

post-54262-0-18195800-1290711255_thumb.jpg

Но возникла проблема - На пульте не настраивается частота. Мышиная зона есть, переключаются тумблеры, а ручка настройки не работает. При этом шкала прибора дублирует показания приёмника NAV 1 от дефолтной Цесны, установленного на модели.

Подскажите пожалуйсто, как сделать вновь установленный пульт полностью функциональным?

Edited by Kazachek

Share this post


Link to post
Share on other sites

А прибор откуда, с какой модели? На цифрах пробовал мышкой?

Share this post


Link to post
Share on other sites

А прибор откуда, с какой модели? На цифрах пробовал мышкой?

Пульт используется на бесплатном Як-40, в сборке Ил-14, недавно я его поставил в радиопанель на Л-39 (см. здесь). На всех этих моделях пульт прекрасно работает, мышиная зона там на ручке настройки. При настройке ручка крутится.

Здесь же (на Л-410) прибор почему-то не работает. мышиная зона отвечает (курсор принимает вид руки), а настройки частоты не происходит. Кстати, попробовал установить навигационный приёмник от Ан-12 - Прибор ведёт себя так же, просто дублирует показания NAV 1.

Подскажите, если можно, в каком направлении искать причину? Править код прибора, или может в Aircraft.cfg что-то написано, что не даёт работать этим приёмникам?

Очень хотелось бы в Л-410 разместить приборы на своих местах.

Share this post


Link to post
Share on other sites

А чего он еще должен дублировать, если не Nav1 или Nav2 ? Других переменных в симе для ИЛС не предусмотрено.

Жаль у меня с собой Як-40 нет, но если мне память не изменяет, там куча всяких переменных для включения, выключения и тестирования, которые работают только с КППМ от него же и еще вроде имеются вычисления в третьем приборе main_processor.xml

На каком-то еще из наших самолетов он работал в паре с ПСП-48. Давно это было. все забыл уже...

Share this post


Link to post
Share on other sites

А чего он еще должен дублировать, если не Nav1 или Nav2 ? Других переменных в симе для ИЛС не предусмотрено.

Жаль у меня с собой Як-40 нет, но если мне память не изменяет, там куча всяких переменных для включения, выключения и тестирования, которые работают только с КППМ от него же и еще вроде имеются вычисления в третьем приборе main_processor.xml

На каком-то еще из наших самолетов он работал в паре с ПСП-48. Давно это было. все забыл уже...

А можно поправить код прибора таким образом, чтобы он работал непосредственно с указателем?

Кстати, на скрине как раз ПСП-48, только с перерисованными битмапами, взято всё из комлекта Ил-14.

Если нужно, приведу коды обоих приборов (сам то я пока в них только характеристики файлов bmp понимаю).

Edited by Kazachek

Share this post


Link to post
Share on other sites

С тем, что представлен на скрине - вряд ли, хотя если он на ХМЛ написан, то можно попробовать перенести в него переменные из яковского КППМ

Share this post


Link to post
Share on other sites

С тем, что представлен на скрине - вряд ли, хотя если он на ХМЛ написан, то можно попробовать перенести в него переменные из яковского КППМ

Да, этот прибор на XML. Сказать по правде, мне бы больше подошел вот этот:

post-54262-0-46820600-1290956490_thumb.jpg

(его будет проще перерисовать)

Он от Ан-12.

Вот его код:

<Gauge Name="KMP Freq" Version="1.0">

<Image Name="kmp_frq.bmp" ImageSizes="204,236,0,0"/>

<Element>

<MaskImage Name="kmp_mask.bmp" ImageSizes="204,236,0,0">

<Axis X="102" Y="135"/>

</MaskImage>

<Image Name="kmp_whole.bmp" Luminous="Yes" ImageSizes="146,146,0,0">

<Axis X="73" Y="73"/>

</Image>

<Rotate>

<Value>(A:Nav1 active frequency,MHz) flr</Value>

<Nonlinearity>

<Item Value="113" Degrees="180"/>

<Item Value="108" Degrees="0"/>

</Nonlinearity>

</Rotate>

</Element>

<Element>

<MaskImage Name="kmp_mask.bmp" ImageSizes="204,236,0,0">

<Axis X="102" Y="135"/>

</MaskImage>

<Image Name="kmp_dec.bmp" Luminous="Yes" ImageSizes="188,188,0,0">

<Axis X="94" Y="94"/>

</Image>

<Rotate>

<Value>(A:Nav1 active frequency,MHz) (A:Nav1 active frequency,MHz) flr - </Value>

<Nonlinearity>

<Item Value="0.5" Degrees="180"/>

<Item Value="0" Degrees="0"/>

</Nonlinearity>

</Rotate>

</Element>

<Mouse>

<Area Left="74" Right="102" Top="106" Bottom="164">

<Cursor Type="DownArrow"/>

<Click Event="NAV1_RADIO_WHOLE_DEC" Repeat="Yes"/>

</Area>

<Area Left="102" Right="130" Top="106" Bottom="164">

<Cursor Type="UpArrow"/>

<Click Event="NAV1_RADIO_WHOLE_INC" Repeat="Yes"/>

</Area>

<Area Left="0" Right="40" Top="106" Bottom="164">

<Cursor Type="DownArrow"/>

<Click Event="NAV1_RADIO_FRACT_DEC" Repeat="Yes"/>

</Area>

<Area Left="164" Right="204" Top="106" Bottom="164">

<Cursor Type="UpArrow"/>

<Click Event="NAV1_RADIO_FRACT_INC" Repeat="Yes"/>

</Area>

</Mouse>

</Gauge>

 

Может подскажете, какие переменные можно попробовать в него перенести?

Share this post


Link to post
Share on other sites

Сказать по правде, больше бы подошел тот, который в оригинале стоит на самолете, а не тот, который удобнее, а так можно и от бобика будильников натыкать

Share this post


Link to post
Share on other sites

Сказать по правде, больше бы подошел тот, который в оригинале стоит на самолете, а не тот, который удобнее, а так можно и от бобика будильников натыкать

Смысл моей работы как раз в том, чтобы убрать из модели приборы от дефолтных самолётов (к примеру радиоаппаратуру от Цесны)и поставить туда приборы, которые устанавливались на наших Л-410.

post-54262-0-10674500-1290971318_thumb.jpg

Вот на рисунке из РЛЭ, под цифрой 13 как раз пульт навигационного приёмника. Если в модели на нём будет настраиватся частота ИЛС и это всё будет отражатся на индикаторе, то этого будет вполне достаточно.

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

Share this post


Link to post
Share on other sites

Вот что, внесите изменения в Aircraft.cfg в секции [Radios], что бы строчки

Nav.1=1, 1,1

Nav.2=1, 1,1

выглядели так:

Nav.1=1, 0,1

Nav.2=1, 0,1

попробовал, работает, только может что-то ещё от этого изменится, объясните кто знает, за что отвечают эти цифры?

Edited by DT-75

Share this post


Link to post
Share on other sites

Вот что, внесите изменения в Aircraft.cfg в секции [Radios], что бы строчки

Nav.1=1, 1,1

Nav.2=1, 1,1

выглядели так:

Nav.1=1, 0,1

Nav.2=1, 0,1

попробовал, работает, только может что-то ещё от этого изменится, объясните кто знает, за что отвечают эти цифры?

Огромное Спасибо!

Всё заработало.

Нет слов, как я Вам благодарен!

Кстати, чтобы заработала настройка связного радио (я там "Баклан" поставил), так же нужно изменить строку: Com.1=1, 0,1.

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

Share this post


Link to post
Share on other sites

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

Продолжаю работать над приборами к модели Л-410. Снова возникли вопросы по кодам приборов.

Собрал новый авиагоризонт.

post-54262-0-41485600-1291923369_thumb.jpg

Когда он арриетирован, шкала по крену не работает, а по тангажу продолжает работать.

Как её можно остановить? Строки там такие:

 

 

- <Element>

<Position X="0" Y="0" />

- <MaskImage Name="agk_mask.bmp" ImageSizes="330,320,0,0">

<Axis X="166" Y="166" />

</MaskImage>

<Position X="0" Y="0" />

- <Image Name="agk_scale.bmp" Luminous="Yes" ImageSizes="222,330,0,0">

<Axis X="111" Y="165" />

</Image>

- <Shift>

<Value Minimum="-60" Maximum="60">(L:AGK on, bool) if{ (A:Attitude indicator pitch degrees,degrees) /-/ (L:goriz3,number) - } els{ 27 }</Value>

<Scale Y="2.4" />

<Delay PixelsPerSecond="240" />

</Shift>

-

- <Rotate>

<Value>(L:AGK on, bool) if{ (A:Attitude indicator bank degrees,radians) (L:goriz4,number) - } els{ 13 }</Value>

</Rotate>

</Element>

- <Element>

<Image Name="agk_alpha.bmp" Alpha="Yes" ImageSizes="340,332,0,0" />

</Element>

 

 

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

 

 

Термометр наружного воздуха:

post-54262-0-54902700-1291923444_thumb.jpg

Подскажите пожалуйсто, какую нужно записать переменную, чтобы он заработал?

Сейчас XML у меня выглядит так:

 

 

- <Gauge Name="C_temp" Version="1.0">

<Image Name="C_temp_back.bmp" Luminous="Yes" ImageSizes="300,280,0,0" />

-

- <Element>

<Position X="149" Y="226" />

-

- <Image Name="C_temp_Needle.bmp" Luminous="Yes" ImageSizes="84,8,0,0">

<Axis X="4" Y="4" PointsTo="East" />

</Image>

-

- <Rotate>

<Value Minimum="-50" Maximum="60" />

-

- <Nonlinearity>

<Item Value="-50" X="70" Y="226" />

<Item Value="-40" X="72" Y="205" />

<Item Value="-30" X="80" Y="186" />

<Item Value="-20" X="96" Y="170" />

<Item Value="-10" X="115" Y="157" />

<Item Value="0" X="138" Y="151" />

<Item Value="10" X="161" Y="151" />

<Item Value="20" X="184" Y="157" />

<Item Value="30" X="203" Y="170" />

<Item Value="40" X="217" Y="187" />

<Item Value="50" X="226" Y="206" />

<Item Value="60" X="228" Y="226" />

</Nonlinearity>

</Rotate>

</Element>

- <Element>

<Position X="0" Y="0" />

<Image Name="C_temp_mask.bmp" ImageSizes="300,280,0,0" />

</Element>

</Gauge>

 

 

Может тут ещё есть какие ошибки? Опыта в создании приборов у меня пока маловато.

Буду очень благодарен за помощь.

Share this post


Link to post
Share on other sites

"На вскидку", что сразу видно:

 

В термометре наружно го воздуха в секции Rotate пропущено самое главное - теги Value, т.е. сама переменная, которая должна отображаться в приборе. Поэтому стрелка прибора встает в начальное положение (температура равно 0) и не двигается.

 

В авиагоризонте: а как инициируется переменная L:AGK on, bool? Где ей присваивается значение? И какое значение ей будет присвоено? Это L-переменная, т.е. она может быть инициализирована из другого прибора.

Share this post


Link to post
Share on other sites

"На вскидку", что сразу видно:

 

В термометре наружно го воздуха в секции Rotate пропущено самое главное - теги Value, т.е. сама переменная, которая должна отображаться в приборе. Поэтому стрелка прибора встает в начальное положение (температура равно 0) и не двигается.

 

В авиагоризонте: а как инициируется переменная L:AGK on, bool? Где ей присваивается значение? И какое значение ей будет присвоено? Это L-переменная, т.е. она может быть инициализирована из другого прибора.

По термометру, я знаю, что там пропущена переменная Value. Потому и спросил - Что там нужно записать, чтоб прибор заработал?

 

А вот полный код авиагоризонта:

 

- <Gauge Name="LUN1205" Version="1.0">

<Image Name="agk_back.bmp" Luminous="Yes" ImageSizes="340,340,0,0" />

- <Element>

- <Select>

<Value>(L:goriz9,number) 0 == if{ -37 (>L:goriz3,number) 13 (>L:goriz4,number) 1 (>L:goriz9,number) }</Value>

</Select>

</Element>

- <Element>

<Position X="0" Y="0" />

- <MaskImage Name="agk_mask.bmp" ImageSizes="330,320,0,0">

<Axis X="166" Y="166" />

</MaskImage>

<Position X="0" Y="0" />

- <Image Name="agk_scale.bmp" Luminous="Yes" ImageSizes="222,330,0,0">

<Axis X="111" Y="165" />

</Image>

- <Shift>

<Value Minimum="-60" Maximum="60">(L:AGK on, bool) if{ (A:Attitude indicator pitch degrees,degrees) /-/ (L:goriz3,number) - } els{ 27 }</Value>

<Scale Y="2.4" />

<Delay PixelsPerSecond="240" />

</Shift>

-

- <Rotate>

<Value>(L:AGK on, bool) if{ (A:Attitude indicator bank degrees,radians) (L:goriz4,number) - } els{ 13 }</Value>

</Rotate>

</Element>

- <Element>

<Image Name="agk_alpha.bmp" Alpha="Yes" ImageSizes="340,332,0,0" />

</Element>

- <Element>

<Position X="166" Y="163" />

- <Image Name="agk_turn.bmp" Luminous="Yes" ImageSizes="16,212,0,0">

<Axis X="8" Y="106" />

</Image>

-

- <Rotate>

<Value>(L:AGK on, bool) if{ (A:Attitude indicator bank degrees,radians) (L:goriz4,number) - } els{ 31 }</Value>

</Rotate>

<Delay DegreesPerSecond="90" />

</Element>

- <Element>

<Position X="190" Y="200" />

<Image Name="agk_blank.bmp" ImageSizes="90,60,0,0" />

- <Shift>

<Value>(L:goriz2,number)</Value>

- <Nonlinearity>

<Item Value="0" X="270" Y="200" />

<Item Value="1" X="190" Y="200" />

</Nonlinearity>

<Delay PixelsPerSecond="120" />

</Shift>

</Element>

- <Element>

- <Image Name="agk_ball.bmp" ImageSizes="21,21,0,0">

<Axis X="11" Y="11" />

</Image>

- <Shift>

<Value Minimum="-1" Maximum="1">(A:Turn coordinator ball,position)</Value>

- <Nonlinearity>

<Item Value="-1" X="113" Y="300" />

<Item Value="-0.5" X="139" Y="302" />

<Item Value="0" X="166" Y="306" />

<Item Value="0.5" X="195" Y="302" />

<Item Value="1" X="221" Y="300" />

</Nonlinearity>

<Delay PixelsPerSecond="70" />

</Shift>

</Element>

- <Element>

<Position X="56" Y="162" />

<Image Name="agk_line.bmp" Luminous="Yes" ImageSizes="222,50,0,0" />

- <Shift>

<Value>(L:goriz1,number)</Value>

<Scale Y="2.4" />

</Shift>

</Element>

- <Element>

<Position X="0" Y="0" />

<Image Name="agk_upper.bmp" Luminous="Yes" ImageSizes="340,332,0,0" />

</Element>

- <Element>

- <Select>

<Value>(L:goriz2,number) if{ (A:Attitude indicator pitch degrees,degrees) 11 + (>L:goriz3,number) (A:Attitude indicator bank degrees,radians) (>L:goriz4,number) }</Value>

</Select>

</Element>

- <Mouse>

- <Area Left="10" Right="32" Top="260" Bottom="315">

<Cursor Type="DownArrow" />

<Click Repeat="Yes">(L:goriz1,number) -10 > if{ (L:goriz1,number) -- (>L:goriz1,number) }</Click>

</Area>

- <Area Left="32" Right="54" Top="260" Bottom="315">

<Cursor Type="UpArrow" />

<Click Repeat="Yes">(L:goriz1,number) 10 < if{ (L:goriz1,number) ++ (>L:goriz1,number) }</Click>

</Area>

- <Area Left="3" Right="63" Top="3" Bottom="63">

<Cursor Type="Hand" />

<Click>(L:goriz2,number) ! (>L:goriz2,number)</Click>

</Area>

</Mouse>

</Gauge>

Share this post


Link to post
Share on other sites

С термометром все просто. Например, вот такая строка:

 

 

 

 

- <Value Minimum="-50" Maximum="60">(A:Ambient Temperature,Celsius)</Value>

 

По авиагоризонту. Таки не увидел ни одной строчки, где было бы присвоение значения переменной L:AGK on, bool. Т.е. она инициализируется по умолчанию, в FALSE. Со всеми вытекающими отсюда последствиями в работе прибора. Где-то в пакете, откуда этот прибор был взят, был еще прибор, который операцию инициализации проводил.

Я бы посоветовал ввести в прибор отладочную строчку вывода значения переменных. Ее можно вписать в любую мышиную Area. Например:

- <Tooltip>%My_vart %( (L:My_var, number) )%!3d!</Tooltip>

И посмотреть, что происходит в приборе.

Share this post


Link to post
Share on other sites

С термометром все просто. Например, вот такая строка:

 

 

 

 

- <Value Minimum="-50" Maximum="60">(A:Ambient Temperature,Celsius)</Value>

 

По авиагоризонту. Таки не увидел ни одной строчки, где было бы присвоение значения переменной L:AGK on, bool. Т.е. она инициализируется по умолчанию, в FALSE. Со всеми вытекающими отсюда последствиями в работе прибора. Где-то в пакете, откуда этот прибор был взят, был еще прибор, который операцию инициализации проводил.

Я бы посоветовал ввести в прибор отладочную строчку вывода значения переменных. Ее можно вписать в любую мышиную Area. Например:

- <Tooltip>%My_vart %( (L:My_var, number) )%!3d!</Tooltip>

И посмотреть, что происходит в приборе.

Большое Вам спасибо за помощь!

Сейчас буду пробовать.

Share this post


Link to post
Share on other sites

Ребята!

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

С уважением, Дмитрий.

Share this post


Link to post
Share on other sites

И ещё ворос: Простейший прибор - Индикатор положения закрылков. Три лампочки, каждая горит при своём положении.

 

<Gauge Name="L-410flaps" Version="1.0">

 

 

<Image Name="flapsbgd.bmp" Luminous="No"/>

 

 

<Element>

<Position X="0" Y="0"/>

<Select>

<Value>(A:TRAILING EDGE FLAPS LEFT PERCENT,percent)</Value>

<Case Value="0">

<Image Name="flaps0.bmp" Bright="Yes"/>

</Case>

</Select>

</Element>

 

<Element>

<Position X="0" Y="64"/>

<Select>

<Value>(A:TRAILING EDGE FLAPS LEFT PERCENT,percent)</Value>

<Case Value="42">

<Image Name="flaps1.bmp" Bright="Yes"/>

</Case>

</Select>

</Element>

 

<Element>

<Position X="0" Y="128"/>

<Select>

<Value>(A:TRAILING EDGE FLAPS LEFT PERCENT,percent)</Value>

<Case Value="100">

<Image Name="flaps2.bmp" Bright="Yes"/>

</Case>

</Select>

</Element>

 

</Gauge>

 

Как сделать, чтоб лампы не горели без электропитания? Полдня бьюсь - ничего не выходит.

Полагаю , нужно вставить строки:

- <Failures>

<SYSTEM_ELECTRICAL_PANELS Action="0" />

</Failures>

Но вот как правильно это сделать?

Share this post


Link to post
Share on other sites

"В медицине все дискутабельно" © один ОЧЕНЬ хороший детский врач.

 

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

 

- <Element>

-- <Visible>(A:Avionics master switch,bool)</Visible>

... код элемента поскипан ...

- </Element>

 

Теперь этот элемент будет виден только если переменная (A:Avionics master switch,bool) станет TRUE (истинна), т.е. электропитание включено.

Share this post


Link to post
Share on other sites

"В медицине все дискутабельно" © один ОЧЕНЬ хороший детский врач.

 

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

 

- <Element>

-- <Visible>(A:Avionics master switch,bool)</Visible>

... код элемента поскипан ...

- </Element>

 

Теперь этот элемент будет виден только если переменная (A:Avionics master switch,bool) станет TRUE (истинна), т.е. электропитание включено.

Так всё оно и есть:

 

 

<Image Name="flapsbgd.bmp" Luminous="No"/> - Битмап с погашенными лампами.

 

Следуя Вашему совету записал (для горящей лампы):

 

<Element>

-- <Visible>(A:Avionics master switch,bool)</Visible>

<Position X="0" Y="0"/>

<Select>

<Value>(A:TRAILING EDGE FLAPS LEFT PERCENT,percent)</Value>

<Case Value="0">

<Image Name="flaps0.bmp" Bright="Yes"/>

</Case>

</Select>

</Element>

 

Но она всё равно при выключенном питании горит!

Share this post


Link to post
Share on other sites

 

а включенные отображал бы по условию включения электропитания

 

- <Element>

-- <Visible>(A:Avionics master switch,bool)</Visible>

... код элемента поскипан ...

- </Element>

 

Теперь этот элемент будет виден только если переменная (A:Avionics master switch,bool) станет TRUE (истинна), т.е. электропитание включено.

Всё заработало.

Только вместо -- <Visible>(A:Avionics master switch,bool)</Visible> записал

<Visible>(A:Circuit general panel on,bool)</Visible>.

 

Спасибо Вам за помощь!

Share this post


Link to post
Share on other sites

Всё заработало.

Только вместо -- <Visible>(A:Avionics master switch,bool)</Visible> записал

<Visible>(A:Circuit general panel on,bool)</Visible>.

 

Спасибо Вам за помощь!

 

Проверьте значение A:Avionics master switch, например, через тултип. Если оно всегда истинно, то проверьте, нет ли в aircraft.cfg записи, что батарея ВСЕГДА включена. Такое иногда бывает.

Share this post


Link to post
Share on other sites

Проверьте значение A:Avionics master switch, например, через тултип. Если оно всегда истинно, то проверьте, нет ли в aircraft.cfg записи, что батарея ВСЕГДА включена. Такое иногда бывает.

Но другое оборудование на самолёте ведёт себя нормально - При включении тумблера аккумулятора приборы начинают работать, при выключении отключаются. Добился я чего хотел и от индикатора закрылков - При выключении питания он полностью гаснет. В програмировании XML делаю только первые шаги и многое, о чём Вы говорите, мне понять пока сложно.

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...