WWW.PROTu-154.org
Список форумов Project Tupolev Team Вход Регистрация FAQ Пользователи Поиск

Список форумов Project Tupolev Team » ЛИИ » Куда девался сайт arccpro? На страницу 1, 2  След.
Начать новую тему  Ответить на тему Предыдущая тема :: Следующая тема 
Куда девался сайт arccpro?
СообщениеДобавлено: Пн Сен 20, 2010 08:56 Ответить с цитатой
Stas Di
Курсант
Зарегистрирован: 14.04.2009
Сообщения: 36
Откуда: ULLI




Вопрос в названии темы...Потерялись куда-то...ПТшные железячники....
Посмотреть профиль Отправить личное сообщение

СообщениеДобавлено: Вт Сен 21, 2010 08:52 Ответить с цитатой
snb
КВС
Зарегистрирован: 20.03.2007
Сообщения: 488
Откуда: Наукоград Фрязино




Олег говорит, что временно убрал главную страницу. Обещал вернуть, как только он опять займётся этим проектом (а он обещал к нему вернуться обязательно).

_________________
"Не встречается любовь мне пока, всё навстречу облака, облака..."
Ю.Визбор
Посмотреть профиль Отправить личное сообщение

СообщениеДобавлено: Чт Сен 23, 2010 22:24 Ответить с цитатой
Ezdok
КВС
Зарегистрирован: 20.08.2005
Сообщения: 191




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

СообщениеДобавлено: Чт Сен 23, 2010 23:35 Ответить с цитатой
Stas Di
Курсант
Зарегистрирован: 14.04.2009
Сообщения: 36
Откуда: ULLI




А что по сути не поделили-то? То что ПТ фришник, а арсс не за так роутеры вояет? Кто-то не укладывается в чью-то идею?
Посмотреть профиль Отправить личное сообщение

СообщениеДобавлено: Сб Сен 25, 2010 15:54 Ответить с цитатой
serg_p
КВС
Зарегистрирован: 29.09.2006
Сообщения: 1886




Да никто ничего не делил.

Опять приходится писать про переменные.
Вот было, как-то:
http://www.avsim.su/forum/topic/103448-zaderzhka-dvuh-lamp/page__view__findpost__p__1480187

Хотя, мож Ezdok подскажет, как это просто "сменить тип переменной", похоже он по "смене типов" большой знаток?

На самом деле, нужно сделать интерфейс, т.е. нужны дополнительные человеко-часы. Но дополнительного времени не было ни у моих предшественников, ни у меня, ни у того, кто делал 2.03. Я до сих пор являюсь свидетелем процесса развития проекта, по этому мои слова не голословны.

В данное время, я как раз занимаюсь созданием L:переменных для плавных приборов в ВК модели Ил-86. Неплевое это дело. Тем более, когда приборный комплекс делал непрограммист (но очень классный инженер), как собственно и произошло с ПНК тушки. Создание интерфейса с "железками" было бы не менее трудным делом. Это я про случай нормального интерфейса. Если бы сделать попроще, передать адрес на область памяти, куда забивать после старта указатели на статические переменные, то времени бы ушло меньше (правда в этом случае не сбросишь указатели на переменные в CallBack-функциях, а таких достаточно много, то же - косяк, нужно модифицировать CallBack-и), но все равно, да же на то, что бы просто сделать доку по переменным, ну какая к чему привязана и какую область значений имеет, и то займет немалое время.

А времени никогда не было.
Посмотреть профиль Отправить личное сообщение

СообщениеДобавлено: Пн Сен 27, 2010 23:23 Ответить с цитатой
Ezdok
КВС
Зарегистрирован: 20.08.2005
Сообщения: 191




Хотя, мож Ezdok подскажет, как это просто "сменить тип переменной", похоже он по "смене типов" большой знаток?
===
Знаток.. и не я один. Я имел ввиду не типа переменой конечно а расположение переменной в памяти.Напрмер в дельфи есть несколько вариантов расположения переменных в памяти. В защищенной области или в статичной.. и тд..Так получилось что ваш компилятор заносит часть переменных в защищенную область памяти. Вы сами об этом знать не знаете. Впрочем так и должно быть. Такие переменные не ищутся..
Также изобилуют связка "указатель на указатель" и такие переменные тоже не ищутся. Точнее ищется сама ячейка. Но нам то нужен указатель.
Хотя это конечно маразм при каждой компиляции искать ячейку... У Максима ушло на поиск 40-ка переменных для роутера ARCC полгода. При хорошем раскладе нужно делать интерфейс. Но мы здесь бессильны. Без энтузиазма ничего не сделать.. А энтузиазма нет ни у вас ни у нас..
Да , кстати , кто не в курсе - проект ARCC был убыточным в последнее время расходы на изготовление < полученной прибыли. Если делать такие устройства (4-й класс точности на платах) дома то будет дороже чем по нашим ценам. Делать такие проекты на односторонних платах нельзя..Вобщем заводские платы в таких количествах дешево не стоят. И вообще , разрабатывать железо и прогать его под готовый проект это верный путь загнать проект в тупик. Если нужно высокое качество программно-аппаратного комплекса которое требуют сегодня симмеры , то сначала делается железо , а потом прогается софт.. Увы это не возможно ...
Посмотреть профиль Отправить личное сообщение

СообщениеДобавлено: Вт Сен 28, 2010 19:10 Ответить с цитатой
serg_p
КВС
Зарегистрирован: 29.09.2006
Сообщения: 1886




Ezdok писал(а):
... Я имел ввиду не типа переменой конечно а расположение переменной в памяти.Напрмер в дельфи есть несколько вариантов расположения переменных в памяти. В защищенной области или в статичной.. и тд..Так получилось что ваш компилятор заносит часть переменных в защищенную область памяти. Вы сами об этом знать не знаете. Впрочем так и должно быть. Такие переменные не ищутся..
...
Вот откуда выросло это утверждение про защищенную область памяти. Вы натягиваете понятия актуальные для Delphi, т.е. актуальные для Object Pascal на целую операционную систему. Паскаль несколько выше по уровню чем С, по этому он может сильно изолировать от ОС внося для удобства свои сущности.

Я лично точно знаю, куда и что пихает компилятор, которым я пользуюсь. C/C++ предоставляет для этого все необходимые средства, вплоть до генерации ассемблерных листингов, того что скомпилил в машинный код, с переплетенным сишным кодом. Т.е. лучшего средства для того что бы понять, как и что работает - нет.

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

Не важно в чем компилить (Делфи, VC, ...). Когда загружается процесс, вместе с загрузкой и размещением кода в виртуальном адресном пространстве процесса, выделяется область памяти в этом же адресном пространстве под статические переменные. Это первые и самые основные переменные. Есть еще автоматические, живут в стеке и живут на протяжении действия подпрограммы (функции (процедуры)). Еще есть динамические - инстанцируются в "куче" процесса.

Все, никаких больше видов памяти, выделяемых процессу - нет. Это устройство процесса Windows. Добраться напрямую до переменных процесса из другого процесса - невозможно. Только из кода самого процесса, т.е. кода, загруженного из образа процесса, т.е. из exe или из кода какой-нить загруженной на данный момент dll (gau - есть dll).

Большая часть переменных в Тушке - статические, т.е. те которые размещаются ОС автоматически в виртуальном адресном пространстве сима. Есть часть автоматических переменных, локальных переменных функций, которые размещаются в стеке на время работы подпрограммы.

Все, больше в ПНК и БИ никаких скрытых или открытых переменных нет. Да и вообще, слово - глобальный, как бы оно не трактовалось для данного языка программирования, применимо только к адресному пространству процесса, в данном случае процесса, загруженного сима. Т.е. вся глобальность внутри процесса. Ну а если мы работаем над gau (над dll, сим же мы не перекомиляем), то для нас вся глобальность сводится только к переменным, которыми оперирует данная gau (dll).

Доступ к статическим переменным (а так же динамическим) в одной dll из другой dll, можно организовать через указатели (нужно, через EXPORT и IMPORT передать из одной dll в другую указатель на массив указателей или структуру, напичканную указателями на переменные) или посредством вызова функций (L:переменые - это фактически интерфейс через вызов функций). Второе предпочтительней, надежней и безопасней (в смысли краха сима).
Посмотреть профиль Отправить личное сообщение

СообщениеДобавлено: Пт Окт 01, 2010 12:22 Ответить с цитатой
serg_p
КВС
Зарегистрирован: 29.09.2006
Сообщения: 1886




Добавлю.

1. Как я говорил выше, в ПНК и БИ практически везде используются статические переменные и автоматические переменные (локальные переменные функций (подпрограмм)). В своем раутере, Вы могли добраться только до статических переменных. Они и называются статическими потому, что живут все время пока загружен модуль (exe, dll(gau),) (не путать с раздельно компилируемыми модулеми, создаваемыми компилятором до сборки exe или dll), в котором они определены.

Но!

В приборах Тушки полно приборов с визуальными элементами, битмапами которых управляют не статические переменные, а автоматические, локальные переменные CallBack функций, вызываемых 18 раз в секунду для PRE_UPDATE визуальных элементов. Локальные переменные подпрограмм (функций, для Делфи еще и процедур) живут на протяжении времени пока выполняется подпрограмма. Их инстанцирование производится молниеносно, всего лишь изменяется указатель стека. так же молниеносно они и исчезают. По этому вы их и не видите. Ваш код, как я полагаю, ведь живет в таком же Callbacke прибора, а все Callaback-ки крутит один поток сима, по очереди. Да и даже если бы ваш код жил бы в отдельном потоке, все равно, Поймать автомтическую переменную - не реально.


Выше говорил, что св данное время я занимаюсь созданием L:переменных для плавных приборов ВК Ил-86. Кирилл, умница, уже настряпал их целую кучу. А я уже три недели занимаюсь тем, что переношу код из CallBack-функций визуальных элементов в место, которое запускается прибором уровня логики, плюс собственно создаю L:переменные. Геммор еще тот.

Повторюсь.
Программисты ПТ вместе с Димой, сколько я работал и наблюдаю за проектом, практически все годы были сконцентрированы на системах. И в общем-то дел и сейчас - достаточно много.

Вот собственно вся правда.
Посмотреть профиль Отправить личное сообщение

СообщениеДобавлено: Вс Окт 03, 2010 21:17 Ответить с цитатой
air-bird
Правак
Зарегистрирован: 18.09.2005
Сообщения: 83
Откуда: Kiev, Ukraine




Простите что пишу в этой теме, но раз затронулся вопрос сопряжения с ПТ и железом предлагаю:
1. На базе нашего софта где используется ява-скрипт прописать логику работ систем, то есть как бы смоделировать ту же работу что сделали в ПТ. Благодаря этому мы получим полностью независимую программную модель систем самолета Ту-154, которую можно прикрутить хоть к Лок-ону, хоть к Х-плаину, неговоря уже о мсфс. Этот метод позволит быстро уйти от зависимости "вытаскивания" переменных из ПТ-шных процессов и использовать только визуалку и звуки(хотя это также реализовано в нашей программе - имитатор акустических шумов).
2. Предложение не носит коммерческий характер, это не реклама нашего оборудования и ПО, но именно таким путем сегодня можно достаточно быстро решить вопрос задаваемый неоднократно. Если найдутся желающие написать скрипт - программу скорее всего будем распространять бесплатно, но в виде "запакованной" дллки с готовым скриптом. Желающие прикрутить железо - смогут купить готовые контроллеры для любых устройств и приборов, также как и сами имитаторы - купить готовые или собрать своими руками.
3. Быстродействие обмена данными и работы на нормальном компе занимает не более 20 мс, так что об обработке длинных страниц скрипта не беспокойтесь.

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

СообщениеДобавлено: Вс Окт 03, 2010 23:46 Ответить с цитатой
serg_p
КВС
Зарегистрирован: 29.09.2006
Сообщения: 1886




air-bird писал(а):
... Благодаря этому мы получим полностью независимую программную модель систем самолета Ту-154, которую можно прикрутить хоть к Лок-ону, хоть к Х-плаину, неговоря уже о мсфс. ...
На данный момент, М-ка увязла в прямом доступе к структурам данных FS9 (недокументированные возможности, собсна результаты хака, который посчастливилось осуществить некоторым людям). Если даже предположить, что необходимый функционал интерфейса, который в FS9 покрывается прямым доступом - есть в других симах, то все равно нужно писать программную прослойку, что бы скрыть все частности и отличия в разных симах для уровня логики.
Даже если и срастется, в чем я сильно сомневаюсь - все равно нужно много человеко часов, на написание изолирующего, унифицирующего уровня.

Про динамику тут вообще разговора нет. А Тушка сейчас представляет из себя сплав динамики под FS9 и логики, как было сказано, сильно привязанной к FS9. Да и сама динамика выверена до муллиметру именно под FS9.

air-bird писал(а):

1. На базе нашего софта где используется ява-скрипт прописать логику работ систем, то есть как бы смоделировать ту же работу что сделали в ПТ. ...

То же потребуются человеко-часы, очень много.
(Вы ету локику то не видели, пусть она написана не очень профессионально, но с инженерной стороны она очень сложна и ее очень много (ПНК + БИ))

________
Ну и итог.

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

Но!

Если не нашлось времени, что бы до конца довести ВК, когда Денис еще был активен, т.е. не хватило времени на создание оставшихся нужных L:переменных, если не было времени даже подумать о интерфейсе с роутером max666, то о каком переносе логики в скрипты можно вести речь.

Хотя, я собственно не при делах. Это мои соображения, как человека работавшего в проекте (до версии 2.02, программная часть проекта до этой версии доведена мной + некоторая необольшая работа для версии 2.03) и очень хорошо его знающего и наблюдающего за его развитием (поскольку я являюсь сайт-админом, мне доступно все на этом сайте).

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

СообщениеДобавлено: Пн Окт 04, 2010 07:27 Ответить с цитатой
Zhabo
Правак
Зарегистрирован: 15.10.2007
Сообщения: 132




Есть идея. Возможно утопическая. Исследования пока не дали положительных результатов. Однако она соблазнительна, ибо при таком подходе совершенно не важно, какой самолёт "ожелезячивать" и навыков программирования оживителю не потребуется.

Основная задача роутера, работающего с симом - воздействие на элементы управления с пониманием их текущего состояния или только понимание текущего состояния для ламп и индикаторов.

Проблему воздействия на органы управления можно решить, эмулируя клики мышью (оконное сообщение WM_MOUSECLICK нужному окну с указанием координат активной зоны органа управления).

Таким образом, остаётся одна проблема: понимать текущее состояние элемента управления или индикатора.

Идея в следующем: Указываем окно, координаты и размер области, в которой находится интересующий нас объект. Перебираем все состояния объекта из сима, запоминая все картинки выделенной области. После этого находим минимальное количество характерных для каждой картинки пикселей (не обязательно с одинаковыми координатами), которые однозначно индицируют только одно состояние контрола/индикатора. Роутер в цикле снимает изображение с окон и ищет характерные для каждого контрола пиксели, синхронизируя состояние железа и симом, посредством WM_MOUSECLICK.

Почему идея может быть утопической?
1. В то время, когда окно скрыто, в нём не происходит отрисовка картинки. Таким образом, обрабатывать в этом окне нечего.
2. В симе со сменой времени меняется освещённость и, соответственно, оттенок панели.
3. Окна панелей, которые ещё не активировались в симе, насколько я понял, не существуют.
4. Конфигурация роутера зависит от загруженной панели самолёта, то есть если в другой панели другие координаты контролов, придётся переделывать конфиг.

Возможные решения проблемы 1:
1. Добраться до "бэк-буффера" окна, куда происходит отрисовка
2. Вывести все панели на отдельный монитор и отвернуть его изображением к стене Улыбка. Все панели отображаются, значит прорисовка происходит.
3. Вывести панели на виртуальный десктоп. Все панели отображаются, значит прорисовка происходит.


Возможные решения проблемы 2:
1. Понять алгоритм, по которому меняется цвет панели и учитывать время, делая поправку на цвет пикселя
2. Разобраться с порогами изменения цвета и искать пиксели с цветами похожими на нужные в установленных пределах отклонения цвета

Возможные решения проблемы 3:
1. Проигрывать мышиный или клавиатурный макрос, который откроет и закроет все нужные панели по очереди.

Проблема № 4 - не самая сложная.

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

P.S. вопрос к Сергею. Какими средствами и куда рисуются панели сима? GDI+? DirectX? А может они вообще не прорисовываются в то время, когда окно скрыто, рисуются только про положительной проверке на активность окна и искать бэк-буффер бессмысленно?
Посмотреть профиль Отправить личное сообщение

СообщениеДобавлено: Пн Окт 04, 2010 10:34 Ответить с цитатой
air-bird
Правак
Зарегистрирован: 18.09.2005
Сообщения: 83
Откуда: Kiev, Ukraine




serg_p писал(а):
На данный момент, М-ка увязла в прямом доступе к структурам данных FS9 (недокументированные возможности, собсна результаты хака, который посчастливилось осуществить некоторым людям). Если даже предположить, что необходимый функционал интерфейса, который в FS9 покрывается прямым доступом - есть в других симах, то все равно нужно писать программную прослойку, что бы скрыть все частности и отличия в разных симах для уровня логики.
Даже если и срастется, в чем я сильно сомневаюсь - все равно нужно много человеко часов, на написание изолирующего, унифицирующего уровня.

Именно поэтому я предложил написать такую "прослойку" чтобы один раз и навсегда уйти от зависимости сима. Мне честно говоря все-равно будет ли это реализовано, но исходя из опыта - это один из самых возможных и простых путей. Человеко-часы будут оправданы лишь в том случае если проект будет "жить" долго и получит продолжение в кокпитостроительстве, если нет - смысл заниматься вобще отсутствует.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора

СообщениеДобавлено: Пн Окт 04, 2010 13:40 Ответить с цитатой
serg_p
КВС
Зарегистрирован: 29.09.2006
Сообщения: 1886




air-bird
Что бы судить о возможности, нужно хотя бы раз увидеть проект в живую, ну и поколбаситься в нем. Мне лично, эта идея кажется бредовой. Хотя, я уже говорил - не мне решать.

А по поводу времени жизни проекта, думаю, что проект будет жить столько, сколько в нем будут жить программисты и Дима, ну и художники, что бы рисовать/править битмапы. А от того будут ли им пользоваться кокпит-строители или нет, его жизнь не зависит совсем.


Zhabo
Мне кажется, что все битмапы 2D панелей и приборов в FS9, отрисовываются просто через GDI. Поробовал прошвырнуться по exe и dll- кам, зависимость от GDI32.dll встречается очень часто.

В коде gau можно получить HDC и используя его, делать свои фишки, например, рисовать веторами, как это делается в TCAS Степана Грицевского.
Посмотреть профиль Отправить личное сообщение

СообщениеДобавлено: Пн Окт 04, 2010 14:32 Ответить с цитатой
Zhabo
Правак
Зарегистрирован: 15.10.2007
Сообщения: 132




serg_p

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

На данный момент я думаю, что возможно получить HDC и извне через CreateRemoteProcess, например, но скорее всего я так и буду получать чёрный фон, потому что рисование скорее всего не происходит пока панель скрыта. Точнее куда-то оно происходит, но не в контекст окна. В общем, буду пробовать...
Посмотреть профиль Отправить личное сообщение

СообщениеДобавлено: Пн Окт 04, 2010 14:38 Ответить с цитатой
serg_p
КВС
Зарегистрирован: 29.09.2006
Сообщения: 1886




Про рисовать - это к слову. Главное, про что я говорил - HDC, что его возможно получить.

ПО поводу прорисовки. Замечал, что когда окно сима скрыто, то использование проца становится меньше (сим при этом напаузу не становится у меня).
Посмотреть профиль Отправить личное сообщение

Куда девался сайт arccpro?
 Список форумов Project Tupolev Team » ЛИИ
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы можете вкладывать файлы
Вы можете скачивать файлы
Часовой пояс: GMT + 3  
Страница 1 из 2  
На страницу 1, 2  След.
  
  
 Начать новую тему  Ответить на тему  


  Powered by phpBB © 2001-2005 phpBB Group. Designed for protu-154.org | Webmaster - ^COOLER^