Исходники cmap - продолжаем разговор
Правила форума
Для предотврашения спама первые сообщения вновь зарегистрированных пользователей проходят ручную премодерацию.
Для предотврашения спама первые сообщения вновь зарегистрированных пользователей проходят ручную премодерацию.
Согласен, релиз ещё рановато делать
Я думаю на майских праздниках заняться cmap и закрыть по возможности все зафискированные баги и предолжения, не касающиеся формата файлов. После этого можно будетдумать о релизе.
К сожалению, в разборе бинарных форматов и дизасемблировании программ у меня нет большого опыта. Сейчас я в большей степени концентрируюсь на генерации выходной информации. Но если нужна помощь в вопросе чтения входного формата - был бы рад перенять у тебя опыт.
Я предполагаю произвести рефакторинг файла cmap.cpp, поскольку работать, например, с кодом генерации выходного файла довольно сложно - очень много повотряющихся мест не вынесенных в фукции (например, код вывода тела секции [RGNxx] размножен в функции void Export_IMG (FILE *outIMG) раз пять или шесть) и когда меняю что-то приходится править в нескольких местах и не пропустить ни одного, где встречается изменяемый кусок кода.
В первую очередь планирую вынести функции связанные с DBF, и все имеющиеся классы в отдельные файлы, а затем выделить повотряющиеся места в немеренной функции void Export_IMG (FILE *outIMG) в отдельные функции. Поддерживаешь?
Если да, то как бы нам согласовать такие глобальные изменения? Я думаю что стоит дождаться коммита от тебя и потом делать рефакторинг.
___
Ёж
К сожалению, в разборе бинарных форматов и дизасемблировании программ у меня нет большого опыта. Сейчас я в большей степени концентрируюсь на генерации выходной информации. Но если нужна помощь в вопросе чтения входного формата - был бы рад перенять у тебя опыт.
Я предполагаю произвести рефакторинг файла cmap.cpp, поскольку работать, например, с кодом генерации выходного файла довольно сложно - очень много повотряющихся мест не вынесенных в фукции (например, код вывода тела секции [RGNxx] размножен в функции void Export_IMG (FILE *outIMG) раз пять или шесть) и когда меняю что-то приходится править в нескольких местах и не пропустить ни одного, где встречается изменяемый кусок кода.
В первую очередь планирую вынести функции связанные с DBF, и все имеющиеся классы в отдельные файлы, а затем выделить повотряющиеся места в немеренной функции void Export_IMG (FILE *outIMG) в отдельные функции. Поддерживаешь?
Если да, то как бы нам согласовать такие глобальные изменения? Я думаю что стоит дождаться коммита от тебя и потом делать рефакторинг.
___
Ёж
|
||
Re: Согласен, релиз ещё рановато делать
Меня не жди. К тому же мои изменения будут маленькими.
Только делай как можно более маленькие изменения.
Я разберусь, не впервой.
Только делай как можно более маленькие изменения.
Я разберусь, не впервой.
Re: А что это за вид..?
: А что это за вид, в котором "предлагает видеть сам Garmin"?
Тот, в котором он их делает. US Topo, например.
: Или ты в том смысле, что доводку карты под свои нужды (типа замены типов объектов чтобы карта рисовалась как хочется и т.п.) стоит делать в MapEdit, а не в cmap?
В DBF cMap, но по-хорошему это нужно оставлять на откуп пользователю. Можно включить соответствующие записи в DBF (границы населённых пуктов линиями, кварталы), но по умолчанию задизейблить их.
Тот, в котором он их делает. US Topo, например.
: Или ты в том смысле, что доводку карты под свои нужды (типа замены типов объектов чтобы карта рисовалась как хочется и т.п.) стоит делать в MapEdit, а не в cmap?
В DBF cMap, но по-хорошему это нужно оставлять на откуп пользователю. Можно включить соответствующие записи в DBF (границы населённых пуктов линиями, кварталы), но по умолчанию задизейблить их.
Re: Согласен, релиз ещё рановато делать
> Только делай как можно более маленькие изменения.
В смысле "не делать глобальных изменений в коде"?
Или, "делать коммиты как можно чаще, маленькими порциями"?
___
Ёж
В смысле "не делать глобальных изменений в коде"?
Или, "делать коммиты как можно чаще, маленькими порциями"?
___
Ёж
Re: Согласен, релиз ещё рановато делать
делать коммиты как можно чаще, маленькими порциями
|
||
Сделан рефакторинг кода
Я распределил код из cmap.cpp по отдельным файлам, в соответствии с логическим делением предметной области на сравнительно изолированные друг от друга модули логики: - common.h √ общие для всех типы и макросы: BYTE, ASSERT, #pragma pack (1) - dbf.h, dbf.cpp √ работа с DBF файлами √ функции Read_DBF, Check_export и соответствующие типы, глобальные переменные file_cod1 и recnum - IngitTable.h, IngitTable.cpp √ класс IngitTable - IngitHeader.h, IngitHeader.cpp √ класс IngitHeader - Geodesy.h, Geodesy.cpp √ классы CIngitMercatorProjection, WGS84SK42Projection, константы Pi, HalfPi, E, функции вычисления длин, площадей (SQU_area, LEN_area) и преобразования координат (IngitLat2Degrees и т.п.) - cmap.h, cmap.cpp √ функция main, функции вывода на консоль информации о ходе работы, переменные со значениями опций, имён файлов, счётчики объектов - IngitFile.h, IngitFile.cpp √ функции чтения формата файла Ингит - ReadTableOBJ, ReadMetric, все глобальные переменные касающиеся загруженного файла ингит (буфер buf, OffsetOBJ , LAT_SouthWest и т.д.) - PolishFormat.h, PolishFormat.cpp √ функция генерации выходного файла в польском формате - Export_IMG, счётчики выведенных в файл объектов Код не менялся, только перераспределение по файлам. Изменения выложены в CVS на <A HREF="http://sourceforge.net/projects/cmap">h ... r> Файл проекта (cmap.dsp) в CVS пока не обновлён, потому как у меня нет VS 6.0. А может дружно переползём на 2003? Он свежее. ___ Ёж
Ошибки и предложения по cmap
Теперь все ошибки и предложения по cmap предлагаю вести в трекере на сайте проекта: <A HREF="http://sourceforge.net/projects/cmap">h ... br>Система позволяет регистрировать ошибки (ссылка Bugs на странце) и предложения по улучшению (ссылка RFE на странице). По ним отслеживается статус (открыт/закрыт/реешается/удалён), комментарии. Все ошибки и предложения со своей страницы http://boba.nm.ru/gps/cmap/bugs.html я перенёс в эту систему. К сожалению, SourceForge насильно проставляет западноевропейскую кодировку страниц. При чтении и при отправке текстов перключайте кодировку в броузере на крилицу windows (Cyrillic Windows) или пишите по-английски. Все обсуждения, как и раньше, предлагаю вести на этом форуме. Думаю, что ошибки и предложения в систему учёта будут вносить сами разработчики по поступению сообщений в форуме. ___ Ёж
Re: Падает на Москве из ингит2003
Ну вот. В общем все как я говорил... Только немного протормозил вначале.
Все до одного смещения зашиты в конце файла. Одно начальное 2-ух байтное и
3 инкрементальных 4-ех байтных.
Кроме того XOR ключ вычисляется из кода продукта. То, что по адресу 0x90
лежит в расшифрованном виде 0 - случайность.
Изменения лежат в CVS. У меня обрабатываются msh3 & penza. Как доберусь до
других, прогоню все.
Все до одного смещения зашиты в конце файла. Одно начальное 2-ух байтное и
3 инкрементальных 4-ех байтных.
Кроме того XOR ключ вычисляется из кода продукта. То, что по адресу 0x90
лежит в расшифрованном виде 0 - случайность.
Изменения лежат в CVS. У меня обрабатываются msh3 & penza. Как доберусь до
других, прогоню все.
Re: Исходники cmap - продолжаем разговор
Исправил ошибку с конвертацией Магаданской области.
Там почему-то координаты стали отрицательными по широте.
Там почему-то координаты стали отрицательными по широте.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 40 гостей