Эх, боюсь соврать- давно это было, но что-то с осями не так... Кажись руль направления не опрашивается. Еще за один запрос обороты на многомоторных самолетах нельзя получитьСообщение от Avc
Эх, боюсь соврать- давно это было, но что-то с осями не так... Кажись руль направления не опрашивается. Еще за один запрос обороты на многомоторных самолетах нельзя получитьСообщение от Avc
=Flying Barans=
=FB=Alezz_78
Проверил. Руль опрашивается нормально, а вот из триммер элеронов вроде не работает - не устанавливается (во всяком случае не заметно) и всегда возвращает 0.0 - нейтральное положение. Я тут по ходу дела правлю DeviceLink - какие значения чему соответствуют, ну и комментарии по поводу глюков. Если кому-то будет интересно, то могу потом подправленный вариант выложить.
Угу, давай. Я перешлю "куда следует". И Prop Pitch проверь ещеСообщение от Avc
![]()
=Flying Barans=
=FB=Alezz_78
Проверил. Не работает. Всегда отвечает 1.00 чего бы на него не слал.
Крайний раз редактировалось Avc; 07.06.2004 в 19:16.
По совету Hruks проверил работу prop pitch еще раз, но уже с включенным полным управлением двигателем - в этом случае prop pitch работает и на запись и на чтение. Если полное управление выключено, но работает только на чтение. С триммерами элеронов вроде тоже самое - не на всех самолетах они просто есть. Это проверю завтра и тогда напишу.
Вроде летает шарманка. Пробовал на одномоторных самолетах. Взлетают нормально (без моего вмешательства) Як-9УТ и Ла-7. Из немецких одномоторных тоже какой-то попробовал - взлетел. Если сегодня успею доделать чтение скрипта взлета из файла, тогда выложу на общее поигрательство.
Выложил программу. Описание к ней вот в этой ветке:
http://www.sukhoi.ru/forum/showthrea...422#post392422
Народ а для чего автопилот то делать включил встроенный и взлетай
Люблю запах напалма по утрам.....(Апокалипсис Сегодня Х.ф.)
ИМХО, трезвая мысль в этой ветке. Действительно зачем это все, кроме тестов. Искусство для искусства получается.Сообщение от Death_pilot
На случай войны! Если DeviceLink в онлайне включат.
В какой то мере это так. Из любви к искусству я убил два праздничных дня проверяя и тестируя как работает DeviceLink (и ничуть не жалею об этом, ну вот такой я маньякСообщение от FAE
), но зато теперь есть прога, которая позволит тестировать его гораздо быстрее и удобнее, а значит перейти от искусства к вещам более приземленным (или наоборот, более полетным
) Ведь этот DeviceLink можно использовать не только для автопилота, но и для управления камерой, а значит можно написать кучу скриптов для управления обзором - справа-налево, слева-направо, восьмеркой или по синусоиде. То есть в NewView можно будет добавить много чего нового, да и вообще много чего внешнего подключить.
Нет ну все понятно, конечно, можно и из .... пулю слепить, однако (я в этом не спец), но первое ощущение от devicelink'а - ощущение кривизны. Странно в памятном флэйме, когда появился еще первый "читовский" udpspeed Олег сказал, что все это очень криво, мы мол сейчас помудрим и предложим вам круть. Я тогда, грешным делом, подумал, ну вот сейчас появится альтернативные виды приборной доски изменение угла зрения полупрозрачная РУС и т.п.
Однако, ИМХО, то что мы имеем сейчас - это какой-то зародыш или даже еще менее чем зародыш.
Нда, читаю я тут это все и фигею потихоньку... автопилоты, жэ-пи-эсы ...
А самую дельную мысль то и пропустили. Это я про энергометр (эм-жэ-аш плюс эм-вэ -квадрат).
И как раз таки для офф-лайна, для новичков было бы полезно. Лучше б это написали, имхо более пользы бы было.
Виртуальное Конструкторское Бюро
http://vkb.sukhoi.ru/
Сделать можно все угодно, я уже подумываю добавить объявление переменных и калькулятор в il2dl чтобы в скриптах можно было делать вычисления.Сообщение от SLI=SHURIK_25=
Думаю, многие работают в скриптовом направлении. Кроме непосредственно управления по DeviceLink, скрипт должен также позволять управлять расположением информации на экране, на прозрачном экране...Сообщение от Avc
Пользователь сам запрограммирует всякие автопилоты, автозакрылки, видимую на экране информацию, ее расположение, зависимость набора датчиков от конкретного самолета и т.п.
Самое трудоемкое здесь разработать скрипт. К нему предъявляются следующие требования:
- гибкость использования,
- минимальное и эффективное использование машинных ресурсов, т.к. в большинстве случаев подобные программы будут запускаться на том же самом компьютере, что и игра.
Крайний раз редактировалось aeropunk; 09.06.2004 в 17:53.
Что есть "гибкость"? Сейчас в il2dl у меня пока сделаны из "гибких" только if и goto - этого мне пока достаточно чтобы "огибать" те углы, которые возникают при описании скрипта. Еще можно добавить объявление процедур и переменных. Ну, а где переменные, там нужны и вычисления.Сообщение от Vorobey
Из циклов хотя бы while нужен. Пока думаю остановиться на простых вещах - основные операции с двумя переменными, потом можно будет добавить и калькулятор посложнее.
То есть где-то примерно так:
dim alt ; переменная alt - double, целые вроде ни к чему
read altimeter alt ; прочитать и запомнить значение альтиметра
ну, а потом по ходу дела можно ждать вот так
wait altimeter alt + 25 ; ждать пока поднимемся на 25 метров
2 Avc:
Я не критикую, а делюсь своими соображениями, рассказываю путь по которому сам собираюсь идти. Вот уже общий формат скрипта придумал. Это будет программирование в глобальных переменных.
Ключи DeviceLink будут представлять из себя что-то вроде регистров, регистрами же представляются и отображаемые на экране индикаторы, можно заводить свои переменные.
Скрипт будет состоять из последовательности инструкций.
Каждая инструкция должна завершаться символом точка с запятой. Инструкция начинается с объявления необязательных меток, не более одного условия и не более одной команды.
Метка - это идентификатор завершающийся символом двоеточия
Условие - это предикат, который принимает параметром выражение, заканчивается знаком вопроса. Если предикат дает истину, выполняется команда инструкции, если нет - только инкрементируется счетчик инструкций (исполняется пустая команда). Условие не изменяет состояние переменных и регисторов.
Команда - это некоторое действие, которое изменяет значение счетчика инструкций и может изменять состояние регистров и переменных. Команда может принимать параметром несколько выражений.
Выражение - это... Вот над выражениями я сейчас и ломаю голову...
Не силен я в интерпретаторах, надо будет литературу какую-нибудь почитать.
Хочется сделать этот интерпретатор:
- достоточно простым в иcпользовании;
- достаточно гибким для решения различных задач автоматического управления самолетом и индикацией;
- достаточно эфферкивным и не требовательным к ресурсам, чтобы пользователь мог запускать его одновременно с игрой и не ощущал при этом дискомфорта.
Крайний раз редактировалось aeropunk; 09.06.2004 в 21:34.
Целые очень даже к чему, многие ключи DeviceLink используют целые. Всего я там насчитал три типа: строка, целое, действительное.
Строки тоже очень нужны. Представь себе такой сценарий. При загрузке миссии определяется тип самолета (строка), в зависимости от значения вызывается соответствующая подпрограмма с заточенными под этот самолет индикацией и автоматами.
Критика тоже вещь полезная, только пока вроде критиковать нечегоСообщение от Vorobey
Да, у меня так и сделано. Только ключи DL прописываются в отдельном файле, а переменные определяем по ходу скрипта.Сообщение от Vorobey
Вы смотрели первую версию моей il2dl? Я ее выложил вчера у себя на сайте. Описание как запускать вот тут:Сообщение от Vorobey
http://sukhoi.ru/forum/showpost.php?...2&postcount=36
Описание на скрип - в комментариях самого скрипта. Сегодня возможно добавлю объявления переменных в скрипт. Если не смотрели, посмотрите, пожалуйста, и дайте тогда уже конкретные замечания по реализации. Только графики пока никакой обещать не могу - пока все будет только в текстовой консоли - до тех пор пока все не отработаю что хотелось бы.
Целые без всякого ущерба для скрипта можно представить как действительное. Сейчас у меня для ключа его тип хранится, и обрабатывается при получении ответа тоже вроде правильно. Строковые не реализованы, но место под них застолблено - тип такой есть, так что их обработку тоже можно будет добавить. Вот, хочу изменить поведение оператора connect в скрипте - чтобы он возвращал как раз имя самолета. То есть запускаем скрипт и во первых строка говорим - connect xxx.xxx.xxx.xxx - этот connect ждет запуска мисии и первым делом получает имя самолета, как только имя получено скрипт начинает выполнение.Сообщение от Vorobey
Выложил исправленную версию http://www.avcsite.ru/bin/il2dl.zip. Теперь может работать и на одной машине. Спасибо Hruks за то, что нашел эту досадную ошибку.
не делаю я никаких замечаний по конкретно твоей реализации.
Это размышления на тему "Какой я хочу скрипт". Этот скрипт я хочу не от кого-то, а от себя самого. А ты делай, как тебе самому нравится.
Твою программу я не запускал, только посмотрел файлы скриптов. Глянул и тут же закрыл. Для разработчика там мало интересного, оттуда можно получить только обрывочное представление о синтаксисе и семантике. Меня же больше интересует описание синтаксиса в BNF, подробная семантика, описание модели среды исполнения.
Да, вот чего там не найти, так это BNF.Сообщение от Vorobey
Впрочем, ни BNF ни NBNF как таковых и в исходниках то нет. Строки в файле читаются последовательно, выделяется первый токен, ищется в списке, если найден, то запускается процедура разбора остатка строки. Если не найден, то строка просто игнорируется. Вот как буду писать калькулятор тогда может и BNF появится
![]()
Еще замечание. Уж очень не удобно опрашивать параметры чтобы получить текущее значение, явно не хватает возможности подписаться-отписаться от мониторинга изменений. Может сделать промежуточный сервер, который будет цепляться к IL2, а клиенты будут уже цепляться к этому промежуточному серверу? Причем формат запросов должен быть точно таким же как и у IL2, только добавить еще парочку префиксов: S (subscribe)- подписаться, U (unsubscribe) - отписаться. Тогда можно в начале скрипта подписаться на все необходимые ключи и начать получать по ним изменения. Хотя это все легко реализуется и внутри самого клиента.
Ну, у меня в конфигурационных файлах тоже никакого BNF нет.Читаю их по-рабоче-крестьянски
Однако встраивание калькулятора, интерпретатора и т.п. несомненно потребует организации грамотной трансляции.
У меня проблем с нотификацией нет, т.к. я уже сделал (почти) гуевый интерфейс. Там при парсинге ответа от DeviceLink можно будет посылать виндовые команды (WM_COMMAND) c параметром, указывающим, что поменялось.
вчера тоже побаловался с UDP клиентом - работает, только мне кажется не нужно мешать всё в кучу. ИМХО должно быть три отдельных части - сам DeviceLConnect.dll (чистый UDP клиент с внешней настройкой DeviceLConnect.ini) реализующий общие функции Open,Send,Receive,Close а также возможно функции формирования пакетов (я имею в виду длинные строки запросов R\...\...) и их парсинга (хотя мож они и не нужны) 2я часть - модуль "отображения" состояния "переменных" в какой-то вид - в приборы со стрелочками, в траспарент окно цифрами и т.д. (кому что нравится) 3я часть - модуль "управления" - здесь думаю надо взять готовую реализацию скрипта(VB,java,pas,C) а также на основе файлов *.ai содержащих набор входных параметров и конрольных значений, пробовать управлять нелинейной системой как собственно и делает Avc - только в скрипте (не аi) должна быть реализована сама логика регулятора
=vsi.org.ua=
Да, как я посмотрю, работы двужутся полным ходом! Теперь только не хватает чтобы DeviceLink в on-line работал и скоро можно будет устраивать бои скрипт-пилот vs скрипт-пилот![]()