Исходники cmap - продолжаем разговор

Основной форум пользователей GPS (Global Positioning System)
Правила форума
Для предотврашения спама первые сообщения вновь зарегистрированных пользователей проходят ручную премодерацию.
boba
Сообщения: 138
Зарегистрирован: 10 май 2003, 23:13

Согласен, релиз ещё рановато делать

Сообщение boba » 27 апр 2004, 20:36

Я думаю на майских праздниках заняться cmap и закрыть по возможности все зафискированные баги и предолжения, не касающиеся формата файлов. После этого можно будетдумать о релизе.

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

Я предполагаю произвести рефакторинг файла cmap.cpp, поскольку работать, например, с кодом генерации выходного файла довольно сложно - очень много повотряющихся мест не вынесенных в фукции (например, код вывода тела секции [RGNxx] размножен в функции void Export_IMG (FILE *outIMG) раз пять или шесть) и когда меняю что-то приходится править в нескольких местах и не пропустить ни одного, где встречается изменяемый кусок кода.

В первую очередь планирую вынести функции связанные с DBF, и все имеющиеся классы в отдельные файлы, а затем выделить повотряющиеся места в немеренной функции void Export_IMG (FILE *outIMG) в отдельные функции. Поддерживаешь?

Если да, то как бы нам согласовать такие глобальные изменения? Я думаю что стоит дождаться коммита от тебя и потом делать рефакторинг.

___
Ёж

dyp
Сообщения: 394
Зарегистрирован: 30 окт 2003, 16:58

Re: Согласен, релиз ещё рановато делать

Сообщение dyp » 27 апр 2004, 20:44

Меня не жди. К тому же мои изменения будут маленькими.
Только делай как можно более маленькие изменения.
Я разберусь, не впервой.



Olexa
Сообщения: 5738
Зарегистрирован: 31 авг 2001, 13:07

Re: А что это за вид..?

Сообщение Olexa » 28 апр 2004, 13:24

: А что это за вид, в котором "предлагает видеть сам Garmin"?

Тот, в котором он их делает. US Topo, например.

: Или ты в том смысле, что доводку карты под свои нужды (типа замены типов объектов чтобы карта рисовалась как хочется и т.п.) стоит делать в MapEdit, а не в cmap?

В DBF cMap, но по-хорошему это нужно оставлять на откуп пользователю. Можно включить соответствующие записи в DBF (границы населённых пуктов линиями, кварталы), но по умолчанию задизейблить их.


boba
Сообщения: 138
Зарегистрирован: 10 май 2003, 23:13

Re: Согласен, релиз ещё рановато делать

Сообщение boba » 28 апр 2004, 19:12

> Только делай как можно более маленькие изменения.
В смысле "не делать глобальных изменений в коде"?
Или, "делать коммиты как можно чаще, маленькими порциями"?

___
Ёж

dyp
Сообщения: 394
Зарегистрирован: 30 окт 2003, 16:58

Re: Согласен, релиз ещё рановато делать

Сообщение dyp » 28 апр 2004, 19:36

делать коммиты как можно чаще, маленькими порциями


boba
Сообщения: 138
Зарегистрирован: 10 май 2003, 23:13

Лады

Сообщение boba » 28 апр 2004, 20:16

Вас понял! :-)

___
Ёж

boba
Сообщения: 138
Зарегистрирован: 10 май 2003, 23:13

Сделан рефакторинг кода

Сообщение boba » 29 апр 2004, 17:06

Я распределил код из 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? Он свежее. ;-) ___ Ёж

boba
Сообщения: 138
Зарегистрирован: 10 май 2003, 23:13

Ошибки и предложения по cmap

Сообщение boba » 29 апр 2004, 17:13

Теперь все ошибки и предложения по cmap предлагаю вести в трекере на сайте проекта: <A HREF="http://sourceforge.net/projects/cmap">h ... br>Система позволяет регистрировать ошибки (ссылка Bugs на странце) и предложения по улучшению (ссылка RFE на странице). По ним отслеживается статус (открыт/закрыт/реешается/удалён), комментарии. Все ошибки и предложения со своей страницы http://boba.nm.ru/gps/cmap/bugs.html я перенёс в эту систему. К сожалению, SourceForge насильно проставляет западноевропейскую кодировку страниц. При чтении и при отправке текстов перключайте кодировку в броузере на крилицу windows (Cyrillic Windows) или пишите по-английски. Все обсуждения, как и раньше, предлагаю вести на этом форуме. Думаю, что ошибки и предложения в систему учёта будут вносить сами разработчики по поступению сообщений в форуме. ___ Ёж

dyp
Сообщения: 394
Зарегистрирован: 30 окт 2003, 16:58

Re: Падает на Москве из ингит2003

Сообщение dyp » 01 май 2004, 04:36

Ну вот. В общем все как я говорил... Только немного протормозил вначале.
Все до одного смещения зашиты в конце файла. Одно начальное 2-ух байтное и
3 инкрементальных 4-ех байтных.
Кроме того XOR ключ вычисляется из кода продукта. То, что по адресу 0x90
лежит в расшифрованном виде 0 - случайность.

Изменения лежат в CVS. У меня обрабатываются msh3 & penza. Как доберусь до
других, прогоню все.



dyp
Сообщения: 394
Зарегистрирован: 30 окт 2003, 16:58

Re: Исходники cmap - продолжаем разговор

Сообщение dyp » 01 май 2004, 12:59

Исправил ошибку с конвертацией Магаданской области.
Там почему-то координаты стали отрицательными по широте.



Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 29 гостей