Pull to refresh

Comments 61

Логика работы с данным форматом уникальна и разработана Тяпченко Ю.А. Основным преимуществом данного типа пульта является матричный способ выдачи команд и развернутая форма представления информации. С точки зрения эргономики это довольно удобный способ представления большого количества команд, при малом количестве органов взаимодействия.

Что интересно, экран с огромной матрицей кнопок — это legacy корабля «Союз».

Раньше это был пульт с лампами-транспарантами и кнопками по краям:
image

А вот еще раньше это был хитро устроенный электромеханичесий блок с вращающимся барабаном:
image
Вот про этот механизм действительно можно было сказать — «при малом количестве органов взаимодействия».
Подробнее — тут
Мне кажется, что описание реализации технических моментов в среде разработки 2002 года выпуска немного потеряло актуальность. При этом возникает вопрос, где и как вы умудрились раздобыть действующую лицензию на её использование.
Почему именно в ней, а не в VS — это наш первый проект и ранее никто из нас не имел опыта в программировании,


Вот тут, кстати, наглядно видно, почему у нас в отечестве с разработками устройств проблемы. Берём масштабную задачу, назначаем её новичкам и… получается как-то не очень, что снаружи, что внутри. Оно и не удивительно — опытные разработчики почему-то в разработках не участвуют. То ли их нет, то ли они брезгуют тратить своё время на серьёзные проекты. Я уже по работе не первый раз сталкиваюсь с тем, что сложная и важная задача поручается только новичкам. Электроника? Возьмём вчерашнего выпускника — опыта разработки ноль, заодно и получит. ПО? Возьмём просто кого-нибудь. Что вы там говорите? Устройство для супер-мегаважного проекта? Да нам-то какая разница? У нас все опытные разработчики заняты или их вообще нет, радуйтесь, что новички есть. И это как бы оборонка ( всё это для работы очень-очень серьёзных изделий -серьёзнее которых, наверное, и нет сейчас ).

Вы молодцы, но вам бы, скажем так, современного опытного программиста на Си++ надо для правильной организации кода. Без магических чисел, портянок из if и огромного switch. А его-то вам, как раз, и не дали.
Боюсь и подумать, но может те самые ребята, что забивали тот самый датчик вверх-ногами, наверное тоже впервые взяли в руки кувалду?
Мы не работаем в отрасли, мы энтузиасты, которые увлекаются кораблём Союз и хотят сделать свой симулятор на подобии тех, что использует центр подготовки космонавтов, чтобы популяризировать пилотируемую космонавтику и рассказывать об управлении космическими аппаратами. По сути, это проект по популяризации космонавтики и огромного труда людей и предприятий.

Тут уже все возбудились, не умудрившись даже прочитать статью и накинулись на любимую косточку под названием "все пропаловРоссии Путинестмладецевназавтрак, космоспросрали"

Я извиняюсь за вопрос, а ежели вы энтузиасты и код публике показывать можно, то почему бы не выложить его на тот же Github вместе с инструкцией по сборке? Я думаю там нашлась бы пара русскоговорящих программистов, чтобы его слегка причесать. Потому как сейчас это правда жесткач какой-то.
Готовим и в ближайшее время все будет.
UFO just landed and posted this here
А можно попросить опубликовать исходники под свободной лицензией?
UFO just landed and posted this here
А я писал не про вас.
Я отвечал на сообщение другого человека, который говорил о «Берём масштабную задачу, назначаем её новичкам и… получается как-то не очень, что снаружи, что внутри.»

Так бывает из за того, что зарплаты не конкурентные для профи.
Сам работал начинал работать так. Когда мы раскаялись, просто ушли. А причина в том, что (почти цитата руководства) никто не может получать зарплату похожую на зарплату главного бухгалтера и проекторов

Это есть, но не только. Вот, скажем, надо сделать резервирование. Есть ли у нас специалисты по резервированию? Да, есть. Аж доктора наук. А участвовал ли хоть один в проекте? Привлекали? Нет, зачем? Даже в голову не пришло. Сами всё сделаем. Своими силами. Никогда резервированием не занимались, но сделаем. Вот, вчерашний студент Вася бежит. Вася, будешь разрабатывать резервирование.
UFO just landed and posted this here
О, мне так на работе, устроившись туда 3 года 2 месяца назад и будучи выпускником техновуза без боевого опыта, дали дебютную задачу: ни много ни мало, а самую важную плату в составе, кхм, части изделия для убиения людей за очень много нулей. И слова были в напутствие, мол, ты просто схему нарисуй, плату разведи, всё равно конкретно это только для архива. Желание разобраться и нежелание делать фуфло, когда именно его надо было сделать, оказались весьма кстати, ибо в архив оно-то пошло, но через год про эту и ещё N плат вспомнили и решили срочно изготовить. Я был в шоке, подлог же! Титаническими усилиями с firmware-программистами, скальпелями, МГТФ и матом семи языков это несчастье мы таки побороли. Первый опыт — он трудный самый…

Однако, как хорошо было сказано некогда про шахматы, единственный путь стать умнее — играть с более сильным противником. Но блин, я согласен, это лютая дичь так поступать: бросать новичков в костёр ядерного пламени =(

То что нас не убивает — делает нас сильнее.
А с новичками, студентами старших курсов и выпускниками так всегда было и всегда будет, они движущая сила современной промышленности и разработки. Залог успеха это наличие грамотного наставника, к которому можно всегда подойти и задать вопрос.

У нас на кафедре даже девиз был — «если студенту не давать невыполнимых задач — никогда не узнаем, на что он способен».
Но не в продакшен же сразу!
И хотя данные ребята — не сотрудники хохломобатутной роскорпорации, а просто любители — прослеживается какая-то «ментальная связь».
Может, для начала, сделать какой-то учебный проект, показать опытным товарищам, получить отзыв по написанию — а уж после браться за проект настоящий (пусть даже он лишь для собственного удовольствия)?
— Г-голубчики, — сказал Федор Симеонович озадаченно, разобравшись в почерках. — Это же п-проблема Бен Б-бецалеля. К-калиостро же доказал, что она н-не имеет р-решения.
— Мы сами знаем, что она не имеет решения, — сказал Хунта, немедленно ощетинившись. — Мы хотим знать, как ее решать.
— К-как-то ты странно рассуждаешь, К-кристо… К-как же искать решение, к-когда его нет? Б-бессмыслица какая-то…
— Извини, Теодор, но это ты очень странно рассуждаешь. Бессмыслица — искать решение, если оно и так есть. Речь идет о том, как поступить с задачей, которая решения не имеет. Это глубоко принципиальный вопрос… (с)
Bolrand C Builder 6. 2002 год!!! Даже стандарта C++ ещё тогда не было полноценного. А в билдере так и вообще извратный диалект.
Первый крупный проект.
Это всё, что нужно знать про нашу космонавтику — её делают студенты и люди без опыта используя древние как говно мамонта технологии.
А мне всегда казался диалект от MS излишне перегруженным. Каждому свой фломастер.
Худо-бедно, но M$ придерживаются стандартов С++…
«Диалект»… Речь не о «далекте», а о том, что BCB 6 вообще не соответсвует никакому стандарту C++. Стандарт был принят позже и там значительные отличия в работе конструкторов, «this», множественного наследования и шаблонов. И уже поверх этого «диалект».
Это как сейчас с какого-то перепуга выучить «VB5.0», который тоже чем-то напоминает VB.NET. Вредный навык, который потом мешает писать на ЛЮБОМ современном C++.
невообразимо круто
я в 1988 году разрабатывал радиоаппаратуру для подлодок на компьютере нейрон, всё правильно у вас, ребята, главное — мозги
А что вы хотели донести этим постом? То что пишете на борланд С++ в 2020 году? Или что делаете это отвратно?
Конечно интересно глянуть как управляют союзом, но право слово — для этого достаточно картинок и объяснений.
Хотите замечаний по коду и помощи — выкладывайте на гитхаб. Хотите дать другим симулятор погонять — выкладывайте на гитхаб или выкладывайте сборку куда-нибудь.
Поделиться опытом. Знаю, что код отвратный, но мы учимся и учимся на своих ошибках, неудачах и на опыте других людей. И тем прогрессом, которого мы сейчас достигли, мы гордимся, каким бы он не был. Это опыт и знания, и мы хотим ими поделиться с другими людьми, тем как мы пришли к тому или иному алгоритму.
Необязательно для обучения начинать с каменного века. Есть масса современных бесплатных инструментов (например, VS Community Edition), ниже уже написали, что по современным технологиям и «опыта других людей» будет куда больше. И будет чем делиться, потому что код в статье оставляет желать. Ну а то, что вообще взялись делать — молодцом, успехов в дальнейшей работе.
Даже тот же Builder, если уж так хочется писать на нём, есть современный и бесплатный — C++Builder Community Edition. Но это сомнительный выбор, сегодня он бесплатный, завтра его снова уберут, с ним это уже случалось.
Такое ощущение, что читатели статьи ее не читают

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

Так что не стоит комментировать в духе
— «А что вы хотели донести этим постом? То что пишете на борланд С++ в 2020 году? Или что делаете это отвратно?»
или
«Это всё, что нужно знать про нашу космонавтику — её делают студенты и люди без опыта используя древние как говно мамонта технологии.»

Язык и среда для них носят сугубо инструментальный характер, что взяли то и взяли — может кто-то из них работал когда то с BC++. Возможно им бы лучше подошло что-то другое, но раз взяли то и ладно.

Суть их работы не в языке
А то, что делают такие вещи это хорошо и замечательно. Я рад за них и желаю им успехов.
Это же любители космонавтики, а не люди работающие в отрасли


А где они это написали? У них на фото ЦПК. Указано, что они «Команда разработчиков симулятора Союз-ТМА» (о том, что он неофициальный — ни слова) и ник «SoyuzDeveloper». Далее, наличие доступа к информации об управлении кораблём и математическим моделям также заставляет подозревать как раз официальных разработчиков (я, правда, не в курсе, является ли эта информация открытой — но, например, у нас, такое точно было бы закрытым). Ну и в целом точно так же, обычно, и проводят работы в самой отрасли.

но изучив статьи на данную тему, имеющиеся в интернете, а также пообщавшись с разработчиками тренажёров подготовки космонавтов...


Это может также значить то, что они сходили в соседний отдел и проконсультировались там, а потом нашли в инете как дополнить модель (так как специалиста по модели им не дали, как не дали и программиста). Собственно, обычно, так и делают. Надо фильтр связки акселерометр-гироскоп построить? В инет. Вот поэтому из таких фраз также вывод о том, что они неофициальные разработчики сделать будет трудно.
Союз ТМА с 2012 года не летает, на фото не логотип ЦПК, а логотип симулятора, который наш художник нарисовал. Но не могу не согласиться, мы нигде не указали этого.
Подпись под фото вот какая у вас «Тренажёр предстартовой подготовки ТПК Союз ТМА. Фото: ЦПК им. Гагарина». Отсюда легко делается вывод, что это фото вашего тренажёра, так как идёт в заголовке вашей статьи.

Мы не смогли разобраться, как записать это в виде цикла for, поэтому сделали таким образом.


Ну, например, можно положить в массив указатели на элементы и бегать по этому массиву.
это фото с официального сайта ЦПК,


Дело в том, что это не отменяет вывода, что это всё-таки фото вашего тренажёра (иначе зачем это фото?). Это как если бы мою конструкцию официально сфотографировали и выложили на сайте конторы, а я этой фотографией воспользовался бы в своих целях, сославшись на неё с подписью, что фотографировал не я.
Да вы бы лучше подписали под той фотографией что-то типа «Тренажёр для тренировки космонавтов, аналог которого мы делаем. Фото ЦПК.». :)
А покажите эмблему в детализированном виде, пожалуйста. Чисто интерес как дизайнера :)
UFO just landed and posted this here
Изучали автономные бортовые тренажёры подготовки космонавтов работающие под ОС Windows и Linux (бортовой тренажёр сближения и стыковки ТОРУ, тренажёр спуска и др.) они все написаны на С++. Исходя из этого мы то же решили использовать С++. Пока в билдере, позже как разберемся с MFC перетащим код туда.
Господа, ну очнитесь, какой MFC в 2020г…

Настоящие тренажёры пишутся на C++ по следующим причинам:
1 — в разработке участвуют те же люди которые писали и саму систему, к которой этот тренажёр, а сама система на C скорее всего
2 — поэтому всегда тренажёр содержит кодовую базу эмулируемой системы, по сути всегда цель эмулировать не управляющую систему а её периферию, т.к. важно воспроизвести все тонкости и нюансы управляющей системы а проще всего это сделать просто вкорячив её и подстроить производительность.
3 — разработчики уже знают C++


в вашем случае оригинальной системы нет а C++ вы не знаете, возьмите питон как вам советуют и решения для всех типовых проблем вашего проекта (вроде тонны if ов) вы найдёте в гугле

А на питоне есть нормальные средства для создания интерфейсов? Я вот знаю только PyQt (но это ещё хорошо бы Qt знать), да Kivy, но это больше для игр, хотя здесь возможно подошло бы.

Все что угодно лучше чем Builder и MFC. Веб, pygame, unity.
В C++ хотя бы на этапе компиляции отфильтруются ошибки, с которыми программа на питоне упадёт где-то в runtime. C++ стабильнее.
Хотя действительно интересно, каким образом в 2020 году в руки новичкам попался именно Borland C++. Там у них настолько суровое свирепое легаси?

Ребят, вы извините, но работа у вас на уровне школьной НПК середины 2000-х, причем по качеству кода — уровня "за изобретение — пять, а по предмету — неуд". Докладывать ее стоило примерно там, а не на ведущем ИТ-ресурсе России.
У меня даже некоторое время было ощущение, что это какой-то первоапрельский пост-шутка, но кажется нет...


Попробую добавить немного конструктива.


Почему все упоминаемые вами технологии из девяностых? C++ Builder, MFC? Если у вас с этими технологиями возникнут вопросы, ответы вы сможете найти только в старых выцветших книжках, тогда как с современными инструментами — весь интернет к вашим услугам. Не говоря уже о том, что в те годы и нормального С++ не было, да и среды программирования с тех пор ушли вперёд. Если у вас проект учебный, то полученные навыки вам в индустрии не пригодятся. В 2020-м есть вполне современные технологии для десктопного софта под винду, Qt там, .NET, а если у вас планируется кастомная графика, то можно посмотреть в сторону игровых движков типа Unity и не писать велосипеды самим. Замечу, что всем этим можно пользоваться легально бесплатно, в отличии от С++ билдера.


Тут на Хабре регулярно выходят статьи от PVS Studio с кучей примеров о том, как не надо писать на С++. Даже почитав только их, можно уже существенно улучшить код. А потом ещё неплохо было бы почитать про всякие паттерны дизайна ПО, разделение логики и представления, всякие MVC, DRY, KISS, и даже ООП и SOLID. Вам, возможно, покажется, что это всё для кровавого интерпрайза, но и ваше приложение от этого всего выиграет, если делать с умом. Сейчас у вас, судя по всему, спагетти-код без какого-либо порядка (почему в одних функциях нет отступов, в других — есть?), и с дальнейшим ростом программы время на поддержку, понимание кода и добавление новых фич будет расти лавинообразно, а вместе с этим и количество багов.

Особенно понравился даже не кислотный, а просто вырвиглазный интерфейс жёлтым по зелёному. Это у вас такие брутальные программисты? Или космонавты? Или и те и другие сразу?
Нет, интерфейс и цвет — разработка НИИАО.
Ещё прикол заметил:

Питание чайки

Буа-га-га. Так вот чем наши космонавты занимаются…
Так называется система управления движением — Чайка-3

Советую переписывать это не на MFC, а на Qt, раз вы решили использовать C++. Напоминаю, что современный Qt — это 5.х :). Кстати, там есть т.н. Qt QML — декларативный язык разметки интерфейса, который позволяет рисовать очень красивый GUI. Применяется все это чаще всего в различных встраиваемых системах, автомобилях, киосках итп, и, кажется, ваш проект весьма похож на то, что делают на QML.


Ещё рассмотрите, пожалуйста, возможность кроссплатформенности, в частности, полдержку Linux. Не стоит завязываться на винду и устаревшие виндовые технологии. С Qt это не так уж и сложно.

современный Qt — это 5.х

Поправочка, современный Qt — это 6.х :)

Упс, когда я смотрел последний раз был 5.х.

«Современным» он станет только к 6.2 в лучшем случае, ибо сейчас в нем пока еще очень много всего нет по сравнению с 5.x. Те же самые QtMultimedia и QtLocation еще не готовы и в релизе 6.0 отсутствуют.
Спасибо за интересную тему. У вас достойная цель, много опыта извлечете.

Может быть для имитационного моделирования другие среды разработки есть, более гибкие и адаптивные для будущих модернизаций...? Например, что нибудь, что использует python, a если за большие деньги, то matlab.

Ну что вы накинулись на ребят? В моём студенчестве (как раз середина нулевых) в ВУЗе как раз и был Borland Builder (вроде 5, потом 6). И это было куда лучше, чум учить мёртвый Паскаль. Для быстрого написания прототипов — отличная вещь. Я понимаю, что за 20 лет не изменилось ничего, и софт был и остался пиратским, а преподы и база — старой :)

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

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

" Я понимаю, что за 20 лет не изменилось ничего, и софт был и остался пиратским, а преподы и база — старой :)"


Вот это и удивительно, как за 20 лет могло ничего не измениться. Старые кадры не ушли на пенсию, диски со старым софтом продолжают читаться… Криокапсулу разморозили? :D

«ничего не изменилось» — это вряд ли. Но вот «кое-что не изменилось» — это да.
у нас с кафедры в 2016 ушел на пенсию препод, работавший с 1959 года, дававший телевиденье, в последние годы — в качестве образца для изучения был стационарный видеомагнитофон, списаный в конце 90-х в ЧГТРК.
Сыну теорию алгоритмов ведет тот же препод, к которому и мы ходили. И вроде бы тут — предмет «стабильный», без особых прорывов, «вечный», как матан — но лабы и курсач он требует делать на VS2006. (впрочем, положительный момент — хрен спишешь, в интернетах с вопросами по vs2006 посылают в пень дырявый)
так что не стоит недооценивать «консервированность» отдельных личностей нашего образования.
Для меня не удивительно. В институты должны были прийти, по сути, мы — прежние студенты, рассказывать о практике (из бизнеса) и новых технологиях. Но этого не случилось, потому что это просто не выгодно по финансовым и моральным причинам (бюрократия, плюс власть старцев с верхушки страны и до преподавателей кафедры). А старому составу и не интересно, и некогда осваивать новые технологии, и никакой практики в реальном секторе у них нет, релевантной для студентов. Прежним студентам же провести какой-нибудь мастер-класс или вебинар выгоднее даже разово для ИТ-тусовки, чем работать месяцами в ВУЗе. Так что тут только политика.
В институты должны были прийти, по сути, мы — прежние студенты, рассказывать о практике (из бизнеса) и новых технологиях.

Это называется Преемственность поколений. Связь оказалась разорвана. Ну и вместо «людей из промышленности» на кафедре оставались аспиранты, по темам не работавшие. Это не беда, если бы в ВУЗах, как раньше, были отраслевые лаборатории, связанные с производством, в которых уровень исследований и разработок был не ниже. С 90-х этот процесс сильно просел, последние года четыре не знаю — но тенденций к изменениям не видел.

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

Бюрократия. И старцы-то может и рады были бы уйти (хотя им реально тяжело без обучения), но молодежь на копейки не идет работать.
А старому составу и не интересно, и некогда осваивать новые технологии, и никакой практики в реальном секторе у них нет, релевантной для студентов.
это вообще беда образовательной системы, с советских времен. «оторванность образования от жизни». В СССР в нормальных ВУЗах это решалось в худшем случае практикой, в лучшем — отраслевыми НИЛ/хозтемами (с привлечением студентов, которые получали практику, и заодно проходили профотбор)
Прежним студентам же провести какой-нибудь мастер-класс или вебинар выгоднее даже разово для ИТ-тусовки, чем работать месяцами в ВУЗе.
Жизнь не ограничивается ИТ. Хотя других тусовок, кроме ИТшных, практически нет.
Sign up to leave a comment.

Articles

Change theme settings