Cnfhbr писал(а):Дык, кто ж спорит, что Garmin жёстко кодирует свои типы, причём в обычном и NT формате зачастую по-разному? Я лишь говорил о жёстком соответствии с кодировкой в "польском"!
Открой потроха исполняемого файла MPC и MapCreate.dll (благо они не запротекчены) или прошивку любого девайса - какое там вообще соответствие с "польскими" hex-кодами? Кстати, кодировка ряда типов в прошивках различных приборов тоже может отличаться, поэтому разные модели могут отображать эти объекты по-разному...
Hex-коды ни какого непосредственного отношения к польскому не имеют. Это всего лишь текстовый формат записи шестнадцатиричных чисел, которые идентифицируют типы внутри бинарных форматов *.img и *.typ. Так что соотвествие с польскими HEX-кодами самое прямое - почитай внимательно описание форматов TYP и IMG - все поймешь (могу привести цитаты из описаний форматов).
В прошивках разных приборов отличается не кодировка типов!!! а только способ отображения одних и тех же типов. Дизассемблировать MapCreate.dll мне лень, но соответствие с HEX-кодами там однозначно есть, иначе откуда этим кодам браться в итоговых бинарных файлах IMG и TYP? Формат записи этих кодов разумеется будет отличаться от принятого в польском, ведь польский - текстовый формат, а *.dll, *.img и *.typ - бинарные, надеюсь разницу то между текстовым форматом записи идентификатора и бинарным объяснять не надо?
Cnfhbr писал(а):
Просто мы идентифицируем GRMN_TYPE где - в GME, ну и в TYPViewer'е, которые разработаны людьми, не имеющими отношения к Garmin и даже друг к другу, поэтому и показания в мапедите и в тип-вьювере могут отличаться, особенно для морских, кастомных и свежих типов.
ТЕкстовые константы GRMN_TYPE в принципе не содержатся в бинарных файлах *.typ и *.img, именно поэтому авторы программ не имеющие отношения к Garmin (сGPSMapper и TYPViewer ) для индентификации типов используют HEX-коды, поскольку именно они содержатся в бинарных файлах и идентифицируют разные типы.
Cnfhbr писал(а):
Я вовсе не против строгого соответствия, которого мы пытаемся добиться в классификаторе Garmin! Я лишь предлагал, как устранить варнинги в логе MPC и игнорирование при компиляции несвойственных типов объектов: либо вообще не посылать на вход MPC не сопоставленные с GRMN_TYPE "польские" типы, либо предварительно сопоставить их с близкими по смыслу стандартными GRMN_TYPE, либо ассоциировать с CUSTOMIZABLE типами. Чего их солить то эти кастомные? Речь ведь о паре-тройке неопознанных в логе объектов каждой категории, заметьте, не требующих роутинга, поиска, глубины, цвета маяка и прочей хрени (всё основное у нас, слава богу, приведено в порядок). Так, если картописатель по каким-то личным мотивам захотел оставить "левый" тип в своём "полише", почему бы ему не воспользоваться кастомным от Garmin, даже если их мнимые(ИМХО) hex id не совпадают? Может ему нужно, чтобы этот объект просто присутствовал на карте без всяких там прибамбасов...
Я сторонник такого подхода. Хочешь компилить карту в MPC - изволь подготовить соответствующим образом исходник до конвертации в шейпы. Если используются типы из несопоставимых HEX-диапазонов - это проблема картографа, авторы MGE не должны додумывать какие кастомы нужно для них сопоставить при экспорте, поэтому такие типы должны тупо отбрасываться. Поскольку иначе будут возникать ситуации когда один и тот же объект в исходнике будет иметь один шестнадцатиричный идентификатор, а в итоговой карте - другой. А это - криво и будет приводить к путанице, аргументы уже несколько раз приводил.
Cnfhbr писал(а):
А в переписке с разрабом TYPViewer я всего лишь спрашивал, по какой системе он строит ассоциации своих hex-кодов с текстовыми GRMN_TYPE, поскольку я не могу изменить что-либо в стандартных типах MPC так, чтобы они вылетели в TYP файл, где можно было бы увидеть недостающие в классификаторе к MGE коды...
Автор TYPViewer вообще не строит никаких ассоциаций hex-кодов с текстовыми GRMN_TYPE, поскольку GRMN_TYPE - это заморочка MPC и в TYPViewer вообще ни как не фигурирует. И как я уже говорил текстовые константы GRMN_TYPE отсутствуют в итоговых форматах img и typ.