Comments 61
Логика работы с данным форматом уникальна и разработана Тяпченко Ю.А. Основным преимуществом данного типа пульта является матричный способ выдачи команд и развернутая форма представления информации. С точки зрения эргономики это довольно удобный способ представления большого количества команд, при малом количестве органов взаимодействия.
Что интересно, экран с огромной матрицей кнопок — это legacy корабля «Союз».
Раньше это был пульт с лампами-транспарантами и кнопками по краям:
А вот еще раньше это был хитро устроенный электромеханичесий блок с вращающимся барабаном:
Вот про этот механизм действительно можно было сказать — «при малом количестве органов взаимодействия».
Подробнее — тут
Почему именно в ней, а не в VS — это наш первый проект и ранее никто из нас не имел опыта в программировании,
Вот тут, кстати, наглядно видно, почему у нас в отечестве с разработками устройств проблемы. Берём масштабную задачу, назначаем её новичкам и… получается как-то не очень, что снаружи, что внутри. Оно и не удивительно — опытные разработчики почему-то в разработках не участвуют. То ли их нет, то ли они брезгуют тратить своё время на серьёзные проекты. Я уже по работе не первый раз сталкиваюсь с тем, что сложная и важная задача поручается только новичкам. Электроника? Возьмём вчерашнего выпускника — опыта разработки ноль, заодно и получит. ПО? Возьмём просто кого-нибудь. Что вы там говорите? Устройство для супер-мегаважного проекта? Да нам-то какая разница? У нас все опытные разработчики заняты или их вообще нет, радуйтесь, что новички есть. И это как бы оборонка ( всё это для работы очень-очень серьёзных изделий -серьёзнее которых, наверное, и нет сейчас ).
Вы молодцы, но вам бы, скажем так, современного опытного программиста на Си++ надо для правильной организации кода. Без магических чисел, портянок из if и огромного switch. А его-то вам, как раз, и не дали.
Тут уже все возбудились, не умудрившись даже прочитать статью и накинулись на любимую косточку под названием "все пропаловРоссии Путинестмладецевназавтрак, космоспросрали"
Я отвечал на сообщение другого человека, который говорил о «Берём масштабную задачу, назначаем её новичкам и… получается как-то не очень, что снаружи, что внутри.»
Так бывает из за того, что зарплаты не конкурентные для профи.
Сам работал начинал работать так. Когда мы раскаялись, просто ушли. А причина в том, что (почти цитата руководства) никто не может получать зарплату похожую на зарплату главного бухгалтера и проекторов
Однако, как хорошо было сказано некогда про шахматы, единственный путь стать умнее — играть с более сильным противником. Но блин, я согласен, это лютая дичь так поступать: бросать новичков в костёр ядерного пламени =(
То что нас не убивает — делает нас сильнее.
А с новичками, студентами старших курсов и выпускниками так всегда было и всегда будет, они движущая сила современной промышленности и разработки. Залог успеха это наличие грамотного наставника, к которому можно всегда подойти и задать вопрос.
Но не в продакшен же сразу!
И хотя данные ребята — не сотрудники хохломобатутной роскорпорации, а просто любители — прослеживается какая-то «ментальная связь».
Может, для начала, сделать какой-то учебный проект, показать опытным товарищам, получить отзыв по написанию — а уж после браться за проект настоящий (пусть даже он лишь для собственного удовольствия)?
— Мы сами знаем, что она не имеет решения, — сказал Хунта, немедленно ощетинившись. — Мы хотим знать, как ее решать.
— К-как-то ты странно рассуждаешь, К-кристо… К-как же искать решение, к-когда его нет? Б-бессмыслица какая-то…
— Извини, Теодор, но это ты очень странно рассуждаешь. Бессмыслица — искать решение, если оно и так есть. Речь идет о том, как поступить с задачей, которая решения не имеет. Это глубоко принципиальный вопрос… (с)
Первый крупный проект.
Это всё, что нужно знать про нашу космонавтику — её делают студенты и люди без опыта используя древние как говно мамонта технологии.
Это как сейчас с какого-то перепуга выучить «VB5.0», который тоже чем-то напоминает VB.NET. Вредный навык, который потом мешает писать на ЛЮБОМ современном C++.
я в 1988 году разрабатывал радиоаппаратуру для подлодок на компьютере нейрон, всё правильно у вас, ребята, главное — мозги
Конечно интересно глянуть как управляют союзом, но право слово — для этого достаточно картинок и объяснений.
Хотите замечаний по коду и помощи — выкладывайте на гитхаб. Хотите дать другим симулятор погонять — выкладывайте на гитхаб или выкладывайте сборку куда-нибудь.
Это же любители космонавтики, а не люди работающие в отрасли
… список какие именно параметры необходимы для моделирования столь сложной системы нам были неизвестны, но изучив статьи на данную тему, имеющиеся в интернете, а также пообщавшись с разработчиками тренажёров подготовки космонавтов..."
Так что не стоит комментировать в духе
— «А что вы хотели донести этим постом? То что пишете на борланд С++ в 2020 году? Или что делаете это отвратно?»
или
«Это всё, что нужно знать про нашу космонавтику — её делают студенты и люди без опыта используя древние как говно мамонта технологии.»
Язык и среда для них носят сугубо инструментальный характер, что взяли то и взяли — может кто-то из них работал когда то с BC++. Возможно им бы лучше подошло что-то другое, но раз взяли то и ладно.
Суть их работы не в языке
А то, что делают такие вещи это хорошо и замечательно. Я рад за них и желаю им успехов.
Это же любители космонавтики, а не люди работающие в отрасли
А где они это написали? У них на фото ЦПК. Указано, что они «Команда разработчиков симулятора Союз-ТМА» (о том, что он неофициальный — ни слова) и ник «SoyuzDeveloper». Далее, наличие доступа к информации об управлении кораблём и математическим моделям также заставляет подозревать как раз официальных разработчиков (я, правда, не в курсе, является ли эта информация открытой — но, например, у нас, такое точно было бы закрытым). Ну и в целом точно так же, обычно, и проводят работы в самой отрасли.
но изучив статьи на данную тему, имеющиеся в интернете, а также пообщавшись с разработчиками тренажёров подготовки космонавтов...
Это может также значить то, что они сходили в соседний отдел и проконсультировались там, а потом нашли в инете как дополнить модель (так как специалиста по модели им не дали, как не дали и программиста). Собственно, обычно, так и делают. Надо фильтр связки акселерометр-гироскоп построить? В инет. Вот поэтому из таких фраз также вывод о том, что они неофициальные разработчики сделать будет трудно.
Мы не смогли разобраться, как записать это в виде цикла for, поэтому сделали таким образом.
Ну, например, можно положить в массив указатели на элементы и бегать по этому массиву.
Мы пытаемся приблизительно такой же сделать.
это фото с официального сайта ЦПК,
Дело в том, что это не отменяет вывода, что это всё-таки фото вашего тренажёра (иначе зачем это фото?). Это как если бы мою конструкцию официально сфотографировали и выложили на сайте конторы, а я этой фотографией воспользовался бы в своих целях, сославшись на неё с подписью, что фотографировал не я.
Настоящие тренажёры пишутся на C++ по следующим причинам:
1 — в разработке участвуют те же люди которые писали и саму систему, к которой этот тренажёр, а сама система на C скорее всего
2 — поэтому всегда тренажёр содержит кодовую базу эмулируемой системы, по сути всегда цель эмулировать не управляющую систему а её периферию, т.к. важно воспроизвести все тонкости и нюансы управляющей системы а проще всего это сделать просто вкорячив её и подстроить производительность.
3 — разработчики уже знают C++
в вашем случае оригинальной системы нет а C++ вы не знаете, возьмите питон как вам советуют и решения для всех типовых проблем вашего проекта (вроде тонны if ов) вы найдёте в гугле
А на питоне есть нормальные средства для создания интерфейсов? Я вот знаю только PyQt (но это ещё хорошо бы Qt знать), да Kivy, но это больше для игр, хотя здесь возможно подошло бы.
Хотя действительно интересно, каким образом в 2020 году в руки новичкам попался именно Borland C++. Там у них настолько
Ребят, вы извините, но работа у вас на уровне школьной НПК середины 2000-х, причем по качеству кода — уровня "за изобретение — пять, а по предмету — неуд". Докладывать ее стоило примерно там, а не на ведущем ИТ-ресурсе России.
У меня даже некоторое время было ощущение, что это какой-то первоапрельский пост-шутка, но кажется нет...
Попробую добавить немного конструктива.
Почему все упоминаемые вами технологии из девяностых? C++ Builder, MFC? Если у вас с этими технологиями возникнут вопросы, ответы вы сможете найти только в старых выцветших книжках, тогда как с современными инструментами — весь интернет к вашим услугам. Не говоря уже о том, что в те годы и нормального С++ не было, да и среды программирования с тех пор ушли вперёд. Если у вас проект учебный, то полученные навыки вам в индустрии не пригодятся. В 2020-м есть вполне современные технологии для десктопного софта под винду, Qt там, .NET, а если у вас планируется кастомная графика, то можно посмотреть в сторону игровых движков типа Unity и не писать велосипеды самим. Замечу, что всем этим можно пользоваться легально бесплатно, в отличии от С++ билдера.
Тут на Хабре регулярно выходят статьи от PVS Studio с кучей примеров о том, как не надо писать на С++. Даже почитав только их, можно уже существенно улучшить код. А потом ещё неплохо было бы почитать про всякие паттерны дизайна ПО, разделение логики и представления, всякие MVC, DRY, KISS, и даже ООП и SOLID. Вам, возможно, покажется, что это всё для кровавого интерпрайза, но и ваше приложение от этого всего выиграет, если делать с умом. Сейчас у вас, судя по всему, спагетти-код без какого-либо порядка (почему в одних функциях нет отступов, в других — есть?), и с дальнейшим ростом программы время на поддержку, понимание кода и добавление новых фич будет расти лавинообразно, а вместе с этим и количество багов.
Советую переписывать это не на MFC, а на Qt, раз вы решили использовать C++. Напоминаю, что современный Qt — это 5.х :). Кстати, там есть т.н. Qt QML — декларативный язык разметки интерфейса, который позволяет рисовать очень красивый GUI. Применяется все это чаще всего в различных встраиваемых системах, автомобилях, киосках итп, и, кажется, ваш проект весьма похож на то, что делают на QML.
Ещё рассмотрите, пожалуйста, возможность кроссплатформенности, в частности, полдержку Linux. Не стоит завязываться на винду и устаревшие виндовые технологии. С Qt это не так уж и сложно.
современный Qt — это 5.х
Поправочка, современный Qt — это 6.х :)
Упс, когда я смотрел последний раз был 5.х.
Может быть для имитационного моделирования другие среды разработки есть, более гибкие и адаптивные для будущих модернизаций...? Например, что нибудь, что использует python, a если за большие деньги, то matlab.
Толка от билдера и его знания мне не было никакого, но во всяком случае реализуя проекты на нём подтянул язык, алгоритмы и базовые принципы построения и архитектуры программного обеспечения, мануалы читать научился, а не копипастингом заниматься.
И это хорошо, потому что потом было очень легко браться и за другие языки, инструменты и фреймворки. Так что пусть набивают опыт, главное чтобы потом они не в НИИ осели, а умели навыки капитализировать в своих коммерческих проектах на современной базе.
" Я понимаю, что за 20 лет не изменилось ничего, и софт был и остался пиратским, а преподы и база — старой :)"
Вот это и удивительно, как за 20 лет могло ничего не измениться. Старые кадры не ушли на пенсию, диски со старым софтом продолжают читаться… Криокапсулу разморозили? :D
у нас с кафедры в 2016 ушел на пенсию препод, работавший с 1959 года, дававший телевиденье, в последние годы — в качестве образца для изучения был стационарный видеомагнитофон, списаный в конце 90-х в ЧГТРК.
Сыну теорию алгоритмов ведет тот же препод, к которому и мы ходили. И вроде бы тут — предмет «стабильный», без особых прорывов, «вечный», как матан — но лабы и курсач он требует делать на VS2006. (впрочем, положительный момент — хрен спишешь, в интернетах с вопросами по vs2006 посылают в пень дырявый)
так что не стоит недооценивать «консервированность» отдельных личностей нашего образования.
В институты должны были прийти, по сути, мы — прежние студенты, рассказывать о практике (из бизнеса) и новых технологиях.
Это называется Преемственность поколений. Связь оказалась разорвана. Ну и вместо «людей из промышленности» на кафедре оставались аспиранты, по темам не работавшие. Это не беда, если бы в ВУЗах, как раньше, были отраслевые лаборатории, связанные с производством, в которых уровень исследований и разработок был не ниже. С 90-х этот процесс сильно просел, последние года четыре не знаю — но тенденций к изменениям не видел.
Но этого не случилось, потому что это просто не выгодно по финансовым и моральным причинам (бюрократия, плюс власть старцев с верхушки страны и до преподавателей кафедры).
Бюрократия. И старцы-то может и рады были бы уйти (хотя им реально тяжело без обучения), но молодежь на копейки не идет работать.
А старому составу и не интересно, и некогда осваивать новые технологии, и никакой практики в реальном секторе у них нет, релевантной для студентов.это вообще беда образовательной системы, с советских времен. «оторванность образования от жизни». В СССР в нормальных ВУЗах это решалось в худшем случае практикой, в лучшем — отраслевыми НИЛ/хозтемами (с привлечением студентов, которые получали практику, и заодно проходили профотбор)
Прежним студентам же провести какой-нибудь мастер-класс или вебинар выгоднее даже разово для ИТ-тусовки, чем работать месяцами в ВУЗе.Жизнь не ограничивается ИТ. Хотя других тусовок, кроме ИТшных, практически нет.
Разработка симулятора космического корабля Союз ТМА