Как стать автором
Обновить

Комментарии 61

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

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

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

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


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

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

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

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

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

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

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

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

У нас на кафедре даже девиз был — «если студенту не давать невыполнимых задач — никогда не узнаем, на что он способен».
Но не в продакшен же сразу!
И хотя данные ребята — не сотрудники хохломобатутной роскорпорации, а просто любители — прослеживается какая-то «ментальная связь».
Может, для начала, сделать какой-то учебный проект, показать опытным товарищам, получить отзыв по написанию — а уж после браться за проект настоящий (пусть даже он лишь для собственного удовольствия)?
— Г-голубчики, — сказал Федор Симеонович озадаченно, разобравшись в почерках. — Это же п-проблема Бен Б-бецалеля. К-калиостро же доказал, что она н-не имеет р-решения.
— Мы сами знаем, что она не имеет решения, — сказал Хунта, немедленно ощетинившись. — Мы хотим знать, как ее решать.
— К-как-то ты странно рассуждаешь, К-кристо… К-как же искать решение, к-когда его нет? Б-бессмыслица какая-то…
— Извини, Теодор, но это ты очень странно рассуждаешь. Бессмыслица — искать решение, если оно и так есть. Речь идет о том, как поступить с задачей, которая решения не имеет. Это глубоко принципиальный вопрос… (с)
+1 (
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, поэтому сделали таким образом.


Ну, например, можно положить в массив указатели на элементы и бегать по этому массиву.
это фото с официального сайта ЦПК, я подумал что будет правильным сделать подпись откуда оно. www.gctc.ru/print.php?id=148
Мы пытаемся приблизительно такой же сделать.
это фото с официального сайта ЦПК,


Дело в том, что это не отменяет вывода, что это всё-таки фото вашего тренажёра (иначе зачем это фото?). Это как если бы мою конструкцию официально сфотографировали и выложили на сайте конторы, а я этой фотографией воспользовался бы в своих целях, сославшись на неё с подписью, что фотографировал не я.
теперь наше)
Да вы бы лучше подписали под той фотографией что-то типа «Тренажёр для тренировки космонавтов, аналог которого мы делаем. Фото ЦПК.». :)
А покажите эмблему в детализированном виде, пожалуйста. Чисто интерес как дизайнера :)
НЛО прилетело и опубликовало эту надпись здесь
Изучали автономные бортовые тренажёры подготовки космонавтов работающие под ОС 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-х этот процесс сильно просел, последние года четыре не знаю — но тенденций к изменениям не видел.

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

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

Публикации

Истории