Единственное, что задерживает релиз Ту-144Д с новой панелью это отсутствие прибора, позволяющего сохранить в текстовый файл настройки сервисного прибора (пришлось склепать такой по образу и подобию ПТ-шного). Сам прибор написан на xml, использует специальный прибор чтения переменных джойстика, но не может сохранять настройки осей и кнопок до следующего полета, поэтому пока приходится зашивать их в xml-код вручную, под свой конкретный джой. Не хочется заставлять пользователей самостоятельно определять номера осей и кнопок, подгонять центровку и чувствительность и прописывать в xml-файле около 40 переменных…
Всвязи с этим появилась острая необходимость в невидимом приборе, делающем примерно следующее: по команде L-переменной (к примеру (L:SP_save,bool)) читающем все переменные настроек СП и пишушего их в текстовый файл куда-нибудь в папку gauges таким образом, чтобы по команде другой L-переменной (к примеру (L:SP_read,bool)) он же мог прочитать содержание этого файла и записать его содержание в переменные настроек СП. На мою предыдущую просьбу о приборе перекачки топлива отклинулся ровно один человек icebear (и перекачка топлива успешно реализована), но сейчас он сильно занят и не может мне помочь. Поэтому я вторично обращаюсь к местным гуру Си-программирования с просьбой о написании такого прибора.
Всвязи с этим появилась острая необходимость в невидимом приборе, делающем примерно следующее: по команде L-переменной (к примеру (L:SP_save,bool)) читающем все переменные настроек СП и пишушего их в текстовый файл куда-нибудь в папку gauges таким образом, чтобы по команде другой L-переменной (к примеру (L:SP_read,bool)) он же мог прочитать содержание этого файла и записать его содержание в переменные настроек СП. На мою предыдущую просьбу о приборе перекачки топлива отклинулся ровно один человек icebear (и перекачка топлива успешно реализована), но сейчас он сильно занят и не может мне помочь. Поэтому я вторично обращаюсь к местным гуру Си-программирования с просьбой о написании такого прибора.
Вот список всех переменных:
(L:RV_joy_j,number) (L:RV_joy_ch,number) (L:RV_joy_m,number) (L:RV_joy_c,number) (L:RN_joy_j,number) (L:RN_joy_ch,number) (L:RN_joy_m,number) (L:RN_joy_c,number) (L:El_joy_j,number) (L:El_joy_ch,number) (L:El_joy_m,number) (L:El_joy_c,number) (L:Th_joy_j,number) (L:Th_joy_ch,number) (L:Th_joy_m,number) (L:Th_joy_c,number) (L:TL_joy_j,number) (L:TL_joy_ch,number) (L:TL_joy_m,number) (L:TL_joy_c,number) (L:TR_joy_j,number) (L:TR_joy_ch,number) (L:TR_joy_m,number) (L:TR_joy_c,number) (L:Ta_joy_j,number) (L:Ta_joy_ch,number) (L:Ta_joy_m,number) (L:Ta_joy_c,number) (L:Otkl_AP_button_j,number) (L:Otkl_AP_button_n,number) (L:Otkl_AT_button_j,number) (L:Otkl_AT_button_n,number) (L:ONF_down_button_j,number) (L:ONF_down_button_n,number) (L:ONF_up_button_j,number) (L:ONF_up_button_n,number) (L:Torm_left_button_j,number) (L:Torm_left_button_n,number) (L:Torm_right_button_j,number) (L:Torm_right_button_n,number) (L:Trim_up_button_j,number) (L:Trim_up_button_n,number) (L:Trim_down_button_j,number) (L:Trim_down_button_n,number) (L:St_torm_button_j,number) (L:St_torm_button_n,number) (L:Pov_golovy_j,number) (L:Pov_golovy_n,number)
Сообщение отредактировано konsni: 08 Сентябрь 2009 — 19:07
Думаю, за сегодня сделаю.
(Отпуск 🙂 . Да и немного отвлекусь от серьезных задач в ПТ)
Но есть вопросик.
Где будем размешать файл и как его назовем?
Вот пример того как сделано в ПТ.
X:СимуляторGaugesTu154m_cfgJOYjoy.cfg
Для Вас пока пропишу
X:СимуляторGaugesTu144_cfgJOYjoy.cfg
Поправите — переделаю.
Сообщение отредактировано serg_p: 09 Сентябрь 2009 — 01:20
Да, такой путь вполне устраивает. Хотя, пожалуй, чтобы не плодить лишних папок лучше сохранять в Gauges/Tu-144_nk (там у меня часть приборов и сам СП).
Файл, куда будут сохраняться настройки СП назвал и разместил вот так:
GaugesTu-144_nkSP.cfg
Прибор выкладываю в исходниках, что бы можно было поправить потом то, что надо.
Естественно в архиве лежит и скомпиленный gau, в папке Release
В папке panel лежит кусок Panel.cfg с этим прибором.
Прибор протестировал в отладчике, но чтение переменных (L:SP_save,bool) и (L:SP_read,bool) не проверял.
Возвращаюсь к задачам ПТ, но если, что-нибудь нужно поправить в приборе — обращайтесь, думаю это не долго.
Все измененные, исправленные версии буду вкладывать в это сообщение, удаляя предыдущее вложение.
Прикрепленные файлы
tu144_save_joy_cfg.zip (86,24К)
Количество загрузок:: 24
Сообщение отредактировано serg_p: 09 Сентябрь 2009 — 16:18
Это я так, на всякий случай.
Ну и если, кто из Гуру ткнет в ошибки и недочеты, буду очень благодарен.
Хотя, тут особо и ошибаться негде.
Сообщение отредактировано serg_p: 09 Сентябрь 2009 — 18:05
Отдельное спасибо за исходники — когда-нибудь, может быть, доросту и до создания gau-приборов, да и другим начинающим приборостроителям пригодится.
serg_p (09 September 2009 — 00:02):
X:СимуляторGaugesTu154m_cfgJOYjoy.cfg
SHGetFolderPath/SHGetKnownFolderPath для этого существует, вообще-то…
Вот спасибочки то за подсказку.
Ведь все рядом, а что-то мысль до этого не дошла.
Учту на будущее.
P.S.
Вложение удалено 25.10.2009 за ненадобностью.
Сообщение отредактировано serg_p: 25 Октябрь 2009 — 16:41
konsni (25 Октябрь 2009 — 16:15):
Раз уж прибор стал универсальным и может пригодиться другим панелестроителям, то Вы не возражаете, если я его отошлю в раздел «Файлы»?
Есть одна проблемка.
Только сейчас подумал.
Ведь получается, что конфиг прибора будет общим для всех самолетов, которые будут его использовать.
Т.е. для оной модели нужно сохранять одни L:переменные, для другой другие.
Все переменные для всех самолетов, при использовании этого прибора, придется регистрировать в одном конфиге. И естественно, при этом стараться не задеть чужие.
Так же нужно будет вводить префиксы в названиях переменных для каждого самолета.
Это не есть хорошо.
Стоит ли выкладывать в файлы в таком виде — не знаю.
Как-нибудь подумаю над решением этой проблемы, когда опять позволю себе отвлечься.
Если, кто подскажет решение — буду премного благодарен.
Если надумаете все же выложить, то об этой особенности нужно рассказать. В ReadMe или в сопроводительном тексте к файлу.
Фактически получается, что этот прибор я сделал сейчас только для Вас Никита.
А выложил в исходниках, что бы тот, кто знает, мог указать на ошибки, если конечно пожелает, ну и для примера.
Т.е. поделился с местным сообществом программистов своими наработками, ну и, как бы открыл для обсуждения тему о том, как стоит работать с крнфигами.
Если, кто-нибудь поправит приборчик (или я сам найду решение и время), что бы он стал пригодным для использования в нескольких моделях, вот тогда уже можно смело его выкладывать в файлы.
Сообщение отредактировано serg_p: 25 Октябрь 2009 — 19:01
L:переменные задаются через конфиг.
Конфиг необходимо разместить по пути:
[X:]Documents and SettingsИмя пользователяApplication Datafs_gauge_save_vars
(Путь действителен для Windows XP, в висте не помню где находится Application Data пользователя.)
Сам конфиг обозвать, как: fs_gauge_save_vars.cfg
В конфиге может быть определена секция [General] с двумя опциями path_to_file и name_file.
В path_to_file можно задать путь к файлу относительно пути к симу, куда будут сохраняться переменные. В name_file соответственно имя файла. Если path_to_file не задан, то используется путь по умолчанию, описанный выше, то же самое с именем файла. По умолчанию имя файла: fs_gauge_save_vars.dat.
В конфиге обязательно должна присутствовать секция [saved_variables] и хотя бы одна строка вида:
var1=имя L:переменной
Номера в имени опции должны быть последовательными и начинаться с единицы.
Пример:
[saved_variables]
var1=RV_joy_j
var2=RV_joy_ch
var3=RV_joy_m
var4=RV_joy_c
Команда на запись/чтение файла подаются через L:переменные SP_read и SP_save, присвоением значения = 1.
Прибор выкладываю в исходных текстах.
В папке архива ps_save_varsRelease лежит скомпиленная ps_save_vars.gau
В папке архива ps_save_varspanel лежит Panel_cfg.txt, содержит пример регистрации gau в Panel.cfg
В папке архива ps_save_varscfg лежит пример конфига fs_gauge_save_vars.cfg
Конфиг сделан для Никиты (konsni)
————————————————-
Вложение удалено мной за ненадобностью 28.10.2009
Сообщение отредактировано serg_p: 28 Октябрь 2009 — 02:27
Раз уж прибор стал универсальным и может пригодиться другим панелестроителям, то Вы не возражаете, если я его отошлю в раздел «Файлы»?
serg_p (25 October 2009 — 14:38):
Только сейчас подумал.
Ведь получается, что конфиг прибора будет общим для всех самолетов, которые будут его использовать.
дык это, добавлять к головному пути из секции [General] значение ATC TYPE ID выбраного самолёта и всё. будет конечно куча подкатолгов если во многих самолётах использовать. либо сохранять сами конфигурационные файлы прибора в файлах с названием [ATC TYPE ID]+заданый name_file и все они будут лежать скопом в одном path_to_file. мне кажется у Грицевского так сделано в его сервисном приборе. или я не так понял проблему?
Как-нибудь сделаю.
P.S.
Андрей, я про свое обещание помню. Если тебя уже подперло по времени — напиши в личку, я постараюсь обязательно заняться. А то все откладываю 🙂
Сообщение отредактировано serg_p: 26 Октябрь 2009 — 21:41
Теперь, надеюсь, его можно использовать для разных самолетов.
Имена папки и файла конфига состоит из трех частей.
Первая часть — atc_type из секции [General] aircraft.cfg
Далее, в качестве разделителя идет знак подчеркивания.
Вторая часть — atc_model из секции [General] aircraft.cfg
Далее знак подчеркивания.
И завершает имя папки и файла конфига литеральная константа «saved_lvars»
Файл данных по умолчанию (если не переопределен в конфиге) для всех самолетов будет назваться одинаково saved_lvars.dat, но поскольку он по умолчанию размещается в той же папке, что и конфиг, то конфликта с имеющимися файлами данных других самолетов быть не может.
Да. Я забыл сказать. Все папки, имеющиеся в пути, при их отсутствии будут создаваться автоматически.
Никита (konsni), если все будет работать нормально, то можно уже выложить в файлы.
Только протестируйте пожалуйста все случаю.
(С путями и именами по умолчанию и с переопределенными.)
Прикрепленные файлы
ps_save_vars_v02.zip (89,42К)
Количество загрузок:: 5
У меня полное имя файла конфига для Cessna_C172 получилось таким:
c:Documents and SettingspvApplication DataCessna_C172_saved_lvarsCessna_C172_saved_lvars.cfg
Мой профиль на компе — pv.