SMEG и точки POI (эксперимент)

Программируем своими руками
Аватара пользователя
VR4
Лейтенант
Лейтенант
Сообщения: 406
Зарегистрирован: 15 сен 2014, 08:08
Откуда: Краснодар
Авто: Citroen C5 Aircross shine
Пробег: 12000
Прошлый авто: Citroen C4 sedan exclusive
:
Организатор фестиваля Citroen
Благодарил (а): 99 раз
Поблагодарили: 97 раз

SMEG и точки POI (эксперимент)

#1

Сообщение VR4 » 28 фев 2019, 17:02

Дисклеймер! В данный момент нет рабочих точек POI России для SMEG, я лишь делюсь информацией о том, как устроен механизм их установки в ГУ и очень надеюсь на то, что коллективным разумом сможем осилить решение данного вопроса.
Внимание, пост будет довольно большим, с кучей картинок и текста!
Приветствую всех форумчан, как известно в ГУ RT6 есть поддержка т.н. точек POI, так же она присутствует и в SMEG системах, оборудованных навигационными блоками, на сайте citroen.navigation.com за относительно небольшие деньги , можно скачать эти самые POI, но там нет России, РБ, Украины. Однако сам факт того, что POI есть и могут работать и оповещать нас о камерах, опасных перекрёстках и т.п. уже довольно давно не даёт мне покоя, после RT6, очень уж не хватает данного функционала.
Теперь собственно я поделюсь теми мыслями и наработками, которые собирал на просторах сети, начиная с рунета и заканчивая бразильскими форумами.
Раздел 1: Структура каталогов и файлов с описанием
В данном разделе я опишу как устроено дерево файлов и папок для обновления, на примере кастомных точек POI от французских энтузиастов, ссылка на данное обновление будет чуть ниже, но от него толку нет, ибо там обновления только для европейских стран, куда не входит Россия, Беларусь и Украина.
Итак структура каталогов корень флешки
SMEG и точки POI эксперимент  - root.jpg

Если зайти в папку SMEG_IV2_UPG
SMEG и точки POI эксперимент  - SMEG_IV2_UPG.jpg

Содержимое файла UpgPlugin.out.inf
    02bb7b1c
    VER:SMEG_IV2_6_1_C_R05_karly
    TYPE:RELOCABLE
    ID:0
    COMPRESSED:NO
    SIZE:150103
    ENTRY:NO
    SUBVER:ZAR_UMZ_6.1.2
Самое важное в этом файле - первая строчка, это crc сумма 2-х файлов
UpgPlugin.out и самого файла UpgPlugin.out.inf
Тут хочу сделать важное отступление: практически во всех файлах *.inf в первой строчке идёт crc сумма основного файла и самого ini, высчитывается и заполняется данная сумма в 2 этапа, ниже я опишу процесс
Выходим из папки SMEG_IV2_UPG и переходим к самому интересному, папка DATA, внутри ещё 2 папки DATA1 и DATA2, в каждой лежат одинаковые именами файлы, и почему они раскиданы по папкам я ещё не узнал.
SMEG и точки POI эксперимент  - BASE1.jpg

Хоть файл ZAR_POI.BIN и имеет расширение BIN, он прекрасно распаковывается архиваторами WinRar, 7zip и т.п.
Распаковываем и видим:
SMEG и точки POI эксперимент  - BASE1_v1.jpg

TMP_POI.TAR - это тоже архив, распаковываем его и тут самое интересное
SMEG и точки POI эксперимент  - TMP_POI.jpg

Заходим в любую папку (содержание этих папок везде одинаковое, независимо от кода страны)
SMEG и точки POI эксперимент  - 001.jpg

Вот и добрались до самого интересного
Файл POI_VER_RADAR.TXT
SMEG и точки POI эксперимент  - POI_VER_RADAR.TXT.jpg

Разберём детально:
POI_PROVIDER:PSA - Имя изготовителя файла обновлений, можно написать любой текст
POI_MACRO_CAT:SAU - Регион для обновлений
POI_CAT:41 - Категория POI, 41 - радары, 42 - опасные объёкты
DATE:20181203 - Дата сборки обновления
DATA_POI:03/12/2018 - Дата актуальности объектов POI
NAME_ICON:BMP - Тип оповещения на экране (иконка BMP соответствующая категории 41)
NAME_SOUND:SOUND - Тип оповещения звуком (соответствующий категории 41)
DESCRIPTION:RADAR CONTROL - Текст в окне оповещения
PREFIX:RADAR
NAME_COUNTRY:ITALY -Страна для которой предназначены данные объекты
CID:001 - CID - это и есть код страны, он же название папки
NUMBER_POI:9423 -Количество точек POI находящихся в файле обновления RADAR.LZW
POI_SIZE_32:622592 - Размер занимаемый всеми файлами внутри папки на носителе с размером кластера 32Кб
POI_SIZE_16:557056 - Размер занимаемый всеми файлами внутри папки на носителе с размером кластера 16Кб
POI_SIZE_8:516096 - Размер занимаемый всеми файлами внутри папки на носителе с размером кластера 8Кб
POI_SIZE_4:499712 - Размер занимаемый всеми файлами внутри папки на носителе с размером кластера 4Кб
POI_SIZE:488208 - Размер занимаемый всеми файлами внутри папки (СМ. Следующее фото) имейте ввиду, все размеры в байтах!
SMEG и точки POI эксперимент  - Свойства RADARDSC.LZW.jpg

Собственно теперь о самом файле обновления, он упакован в контейнер *.LZW, открыть его можно программой RadarViewer
Открыв файл, мы видим следующее
SMEG и точки POI эксперимент  - RadarViewer - v02.10 - 12122014 - by mira308sw.jpg

Тут я выделил квадратом кол-во объектов POI, к этому количеству добавляем +1, т.к. RadarViewer начинает отсчёт не с единицы, а с нуля, это значение отображено выше в файле POI_VER_RADAR.TXT в строке NUMBER_POI:9423
Теперь расскажу, о самой интересной и мучительной детали, а именно о размерах файлов для каждого кластера, а вторая часть о CRC контрольной сумме, которая указывается для файла обновления
Часть 1 Размеры файлов обновления на разных кластерах, промучавшись пару ночей с высчитыванием этих цифр, при помощи php скрипта

Код: Выделить всё

<?php
echo ceil(61596/32768);
?> 

Запрос:
SMEG и точки POI эксперимент  - Zabbix_ceil.jpg

Цифра 61596 -размер файла делилась на 32768 - это 32КБ, потом округлялась до ближайшего целого числа вверх,вывод был как целое число в данном примере 2 - это значит что файл занимает 2 кластера при размере кластера 32Кб, после эти 2 кластера нужно было умножить на 32768, и тогда мы получим точное число байт, который займёт файл, но подсчёт 5 файлов в первый раз я потратил почти 5 часов, с учётом того, что я уже знал что означают данные цифры, но не знал, как их получить :D Вот скрин для примера, что бы понять одно Размер файла не всегда равно месту, которое он занимает.
SMEG и точки POI эксперимент  - Свойства RADAR_PE.LZW.jpg

Всё это хорошо, но как узнать, сколько этот же файл займёт места, при другом размере кластера? Вот тут и помог этот скрипт, после знака / вбиваем 4096 для 4Кб, 8192 для 8Кб, 16384 соответственно для 16Кб кластеров. Как видно, это муторная и долгая работа, ошибиться легко. Посему был сделан небольшой скрипт внутри excell файла, скачать его можно ТУТ
С ним всё просто, а именно находясь в папке с файлами которые нужно посчитать, на пустом месте, зажимаем SHIFT+ ПКМ (правая кнопка мыши) и выбираем как на картинке
SMEG и точки POI эксперимент  - 001_powershell.jpg

далее в окне powershell, вводим команду dir, получаем результат аналогично тому, что на картинке
SMEG и точки POI эксперимент  - PowerShell.jpg

Те цифры, что нам нужны, я выделил зеленым цветом. вот теперь их и забиваем в левую часть Excel файла каждое число байт (размер файла) в отдельную строку, жмём кнопку "расчёт", поучаем результат в правой части таблицы, в строке "Итоговые значения в байтах" пример на картинке ниже
SMEG и точки POI эксперимент  - Порядок действий.jpg

Данные из каждой колонки, в строке "итоговые значения" можно переносить в файл конфигурации.
Часть 2. сумма CRC.
Немного о то, что такое crc сумма
Циклический избыточный код (англ. Cyclic redundancy check, CRC[1]) — алгоритм нахождения контрольной суммы, предназначенный для проверки целостности данных[2]. CRC является практическим приложением помехоустойчивого кодирования, основанным на определённых математических свойствах циклического кода.

Итак если упаковать все файлы обратно по своим местам, есть ещё один механизм защиты от производителя, в конфигурационных файлах, первой строчкой идёт набор непонятных букв и цифр например 2a54baca
SMEG и точки POI эксперимент  - ZAR_POI.BIN.inf crc.jpg

Это две контрольных суммы для файлов ZAR_POI.BIN и ZAR_POI.BIN.inf, остальные 2, как на скрине ниже, будут отсутствовать, т.к. это распакованный архив с данными. Итак как высчитать эти самые данные? Качаем RTXcrc,извлекаем и сохраняем его к примеру в корне диска E, далее будучи в папке с сохранённой программкой, так же зажав SHIFT+ПКМ выбираем "Открыть окно PowerShell здесь", далее вводим команду

Код: Выделить всё

 .\RTXcrc.exe -v 'E:\SMEG\Janvier 2019\DATA\BASE1\ZAR_POI.BIN'

Где, после аргумента -v Указываем полный путь к тому файлу, который считаем
SMEG и точки POI эксперимент  - RTXcrc.jpg

Как видим ответ baca, его вставляем в первую строчку файла ZAR_POI.BIN.inf, сохраняем изменения в файле!
Следующая команда в том же powershell аналогична, но уже указываем сам ZAR_POI.BIN.inf
SMEG и точки POI эксперимент  - RTXcrc-2.jpg

Получаем ответ 2a54, вот эти символы дописываем в ZAR_POI.BIN.inf, но перед предыдущим результатом.
SMEG и точки POI эксперимент  - RTXcrc3.jpg

Важно!Все подсчёты с crc делать только в последнюю очередь, когда остальные данные в файле записаны и сохранены, любой изменение символа, даже просто пробел в файле, меняет его crc сумму!
В общем немного подытожу, точки POI абсолютно одинаковые как для RT6, так и для SMEG, способ установки отличается координально, французы усилили защиту, это факт.
На данный момент даже при правильной сборке всех файлов обновления POI, SMEG не хочет загружать их в себя, высвечивая ошибку "Невозможно скопировать файл обновления", остался один серый кардинал серди файлов для SMEG, а именно contract.dat, его значение неизвестно.
Возможно кто то задаст резонный вопрос, где взять POI для России? Отвечу, их делает замечательный человек Марк simple_mark, обновляет их раз в месяц, выкладывает ТУТ, увы но Марк делает обновления только для RT6, именно поэтому я и хотел бы развить данную тему.
Если кто-либо знает не описанные тут функции, возможности, информацию, прошу - включайтесь :D
Есть идея, засунуть базу POI России, в страну с кодом 001(Италия) и попробовать скормить SMEGy, карта Италии ессно установлена, думаю стоит попробовать и этот вариант. На днях займусь, само собой буду дописывать все свои изыскания в этой теме.
Т.К. Форумный движок пережимает картинки, то оригиналы можно скачать тут, вдруг кому пригодятся.
Источники информации:
http://citroens-club.ru/forum/index.php?app=forums&module=forums&controller=topic&id=53225&tab=comments#comment-934921 -точки POI Для России
http://peugeot508-club.ru/forum/index.p ... ge__st__50 -Клуб владельцев Peugeot 508, один из форумчан как раз описал в своей блоге структуру файлов в следующей ссылке
http://twistedminds.ru/2015/06/smeg-radar-dangerz/ - структура упаковки и содержимое файлов обновления
http://hokutya.com/smegplus/download_en.html -Европейский сайт с энтузиастом из (похоже что Венгрии), судя по всему уже не поддерживается автором
http://mira308sw.altervista.org/en/index.htm -Этот сайт незаменим, его автор написал те утилиты, без которых сейчас даже владельцы RT6, вряд ли бы имели возможность ставить POI бесплатно.
https://www.theobouzige.fr/archives/5218#disqus_thread -Французский сайт, где автор выкладывает обновления POI в т.ч. и для SMEG, именно но примере его обновлений я писал этот пост.
https://gpsunderground.com/forum/forum/ ... ms-hokutya -тоже европейский сайт сайт по GPS системам всех автомобилей
https://www.laradiobbs.net/showthread.p ... &styleid=2 - Форум, вероятнее всего бразильский

Аватара пользователя
SHKoder
Маршал
Маршал
Сообщения: 20856
Зарегистрирован: 24 фев 2014, 10:17
Откуда: Москва, ТиНАО
Авто: C4L Exclusive+ & C4B7 Exclusive
Пробег: 55555
Прошлый авто: Honda 9cv AT
:
За активность - Серебро За активность - Золото Герой труда
Благодарил (а): 3218 раз
Поблагодарили: 4576 раз
Контактная информация:

SMEG и точки POI (эксперимент)

#2

Сообщение SHKoder » 28 фев 2019, 17:09

[ ссылка на изображение ]

Мне кажется, это медаль!


Но, подождем, когда доведешь до конца!

Аватара пользователя
frog2050
Маршал
Маршал
Сообщения: 14130
Зарегистрирован: 13 апр 2014, 21:03
Откуда: Москва
Авто: Citroen C4L Optima, 120л.с. Белый
Пробег: 56400
Прошлый авто: Citroen C4(B7) Хэтч проехал 96т.км за 3,5 года
:
За активность - Серебро За активность - Золото Мастер на все руки
Благодарил (а): 1430 раз
Поблагодарили: 2064 раза

SMEG и точки POI (эксперимент)

#3

Сообщение frog2050 » 28 фев 2019, 17:28

Узнать бы в каком месте на самом ГУ находятся файлы POI, может их так же перенести скриптом как это делается в RT-6 ?
Изображение
Есть Лексия, Бутово.

Аватара пользователя
SHKoder
Маршал
Маршал
Сообщения: 20856
Зарегистрирован: 24 фев 2014, 10:17
Откуда: Москва, ТиНАО
Авто: C4L Exclusive+ & C4B7 Exclusive
Пробег: 55555
Прошлый авто: Honda 9cv AT
:
За активность - Серебро За активность - Золото Герой труда
Благодарил (а): 3218 раз
Поблагодарили: 4576 раз
Контактная информация:

SMEG и точки POI (эксперимент)

#4

Сообщение SHKoder » 28 фев 2019, 17:43

Меня в первую очередь смутило

Код: Выделить всё

[b]typedef enum[/b]
{
  UNKNOWN_CONTINENT = 0,
  EUROPE,
  AUSTRALIA,
  NORTH_AMERICA,
  SOUTH_AMERICA,
  INDIA,
  CHINA
} t_continent;


В то время когда
CONTINENT_ID – порядковый номер континента. Россия, при этом, выделена в отдельный (!) континент с ID 017;
CONTINENT_NAME – название континента;

и
CID – ID Страны (не путать с ID континента), 33 для России;

Аватара пользователя
VR4
Лейтенант
Лейтенант
Сообщения: 406
Зарегистрирован: 15 сен 2014, 08:08
Откуда: Краснодар
Авто: Citroen C5 Aircross shine
Пробег: 12000
Прошлый авто: Citroen C4 sedan exclusive
:
Организатор фестиваля Citroen
Благодарил (а): 99 раз
Поблагодарили: 97 раз

SMEG и точки POI (эксперимент)

#5

Сообщение VR4 » 28 фев 2019, 17:48

frog2050
Было бы круто, у вас же вроде есть доступ через терминал, есть ли там возможность глянуть на структуру каталогов?
В первую очередь узнать, в каких каталогах хранятся эти самые файлы с POI, а скопировать, это проще простого, при условии, принятия ГУ, команд из вне.

Аватара пользователя
frog2050
Маршал
Маршал
Сообщения: 14130
Зарегистрирован: 13 апр 2014, 21:03
Откуда: Москва
Авто: Citroen C4L Optima, 120л.с. Белый
Пробег: 56400
Прошлый авто: Citroen C4(B7) Хэтч проехал 96т.км за 3,5 года
:
За активность - Серебро За активность - Золото Мастер на все руки
Благодарил (а): 1430 раз
Поблагодарили: 2064 раза

SMEG и точки POI (эксперимент)

#6

Сообщение frog2050 » 28 фев 2019, 18:54

VR4
У меня без нави :(
Изображение
Есть Лексия, Бутово.

Аватара пользователя
VR4
Лейтенант
Лейтенант
Сообщения: 406
Зарегистрирован: 15 сен 2014, 08:08
Откуда: Краснодар
Авто: Citroen C5 Aircross shine
Пробег: 12000
Прошлый авто: Citroen C4 sedan exclusive
:
Организатор фестиваля Citroen
Благодарил (а): 99 раз
Поблагодарили: 97 раз

SMEG и точки POI (эксперимент)

#7

Сообщение VR4 » 02 мар 2019, 00:25

Решил пойти не от POI, а от карт, итак для того, что бы установить карты Росси (европейскую часть), нужно применять патч, содержимое патча, как раз те файлы, о которых я писал в топике UpgPlugin.out и UpgPlugin.out.inf, увы открыть их нечем, но раз UpgPlugin.out заставляют SMEG "увидеть" карты России, то логично предположить, что играет этот файл ключевую роль. После посмотрел сами папки и архивы с картами и нашёл одну интересную деталь, глубоко в недрах карты каждой страны есть несколько файлов с интересным именем и расширением POI, а именно
SMEG и точки POI эксперимент  - 016.tar.jpg

Как видно, кода страны RU, среди них нет, возможно что производителем карт заблокирована(не предусмотрена) возможность ставить POI для нашей страны. Наблюдения, касаемо RT6, почему там всё легко и просто ставится, ИМХО потому, что сами POI копируются в нужные директории ГУ не средствами установщика, и именно скриптом, в обход всех проверок самой ОС RT6, а в SMEG, данной возможности пока нет.
В общем поле не паханное, возможно есть шанс пересобрать сначала установщик картографии с необходимым кодом, т.е. добавить файлик 016_RU.POI, в папку с одноимённой картой, судя по тому, что размер у них одинаковый, осмелюсь предположить, что и содержимое их едино для всех файлов, и для ГУ важно наличие самого файла в папке с картами, нежели то, что внутри этого файла, но там столько файлов, и работы очень много, ведь придётся пересчитывать все crc суммы, байты и кластеры, что хочется схватится за голову :facepalm:

Аватара пользователя
SHKoder
Маршал
Маршал
Сообщения: 20856
Зарегистрирован: 24 фев 2014, 10:17
Откуда: Москва, ТиНАО
Авто: C4L Exclusive+ & C4B7 Exclusive
Пробег: 55555
Прошлый авто: Honda 9cv AT
:
За активность - Серебро За активность - Золото Герой труда
Благодарил (а): 3218 раз
Поблагодарили: 4576 раз
Контактная информация:

SMEG и точки POI (эксперимент)

#8

Сообщение SHKoder » 02 мар 2019, 09:11

VR4 писал(а):Источник цитаты пересчитывать все crc

Можно же написать файл bat

Аватара пользователя
VR4
Лейтенант
Лейтенант
Сообщения: 406
Зарегистрирован: 15 сен 2014, 08:08
Откуда: Краснодар
Авто: Citroen C5 Aircross shine
Пробег: 12000
Прошлый авто: Citroen C4 sedan exclusive
:
Организатор фестиваля Citroen
Благодарил (а): 99 раз
Поблагодарили: 97 раз

SMEG и точки POI (эксперимент)

#9

Сообщение VR4 » 03 мар 2019, 07:54

SHKoder
Можно,bat, можно PS1, можно даже *.exe, но я не программист :( Поэтому, только ручками.

Аватара пользователя
SHKoder
Маршал
Маршал
Сообщения: 20856
Зарегистрирован: 24 фев 2014, 10:17
Откуда: Москва, ТиНАО
Авто: C4L Exclusive+ & C4B7 Exclusive
Пробег: 55555
Прошлый авто: Honda 9cv AT
:
За активность - Серебро За активность - Золото Герой труда
Благодарил (а): 3218 раз
Поблагодарили: 4576 раз
Контактная информация:

SMEG и точки POI (эксперимент)

#10

Сообщение SHKoder » 03 мар 2019, 08:30

VR4
Линию команд скажешь, я попробую сделать программно рекурсию


Аватара пользователя
VR4
Лейтенант
Лейтенант
Сообщения: 406
Зарегистрирован: 15 сен 2014, 08:08
Откуда: Краснодар
Авто: Citroen C5 Aircross shine
Пробег: 12000
Прошлый авто: Citroen C4 sedan exclusive
:
Организатор фестиваля Citroen
Благодарил (а): 99 раз
Поблагодарили: 97 раз

SMEG и точки POI (эксперимент)

#11

Сообщение VR4 » 03 мар 2019, 15:06

SHKoder
Что бы знать последовательность команд, нужно сначала руками сделать рабочий алгоритм, я пока в поисках, ну уже раз 20-25 пересобрал в разных вариациях и все не имеют успеха=) Но я не отчаиваюсь :)

Аватара пользователя
SHKoder
Маршал
Маршал
Сообщения: 20856
Зарегистрирован: 24 фев 2014, 10:17
Откуда: Москва, ТиНАО
Авто: C4L Exclusive+ & C4B7 Exclusive
Пробег: 55555
Прошлый авто: Honda 9cv AT
:
За активность - Серебро За активность - Золото Герой труда
Благодарил (а): 3218 раз
Поблагодарили: 4576 раз
Контактная информация:

SMEG и точки POI (эксперимент)

#12

Сообщение SHKoder » 03 мар 2019, 15:11

VR4
Обрати внимание на версии архиваторов. Они могут быть совместимы новые со старыми, а вот старые (которые возможно в ГУ) с новыми не всегда совместимы.

Аватара пользователя
VR4
Лейтенант
Лейтенант
Сообщения: 406
Зарегистрирован: 15 сен 2014, 08:08
Откуда: Краснодар
Авто: Citroen C5 Aircross shine
Пробег: 12000
Прошлый авто: Citroen C4 sedan exclusive
:
Организатор фестиваля Citroen
Благодарил (а): 99 раз
Поблагодарили: 97 раз

SMEG и точки POI (эксперимент)

#13

Сообщение VR4 » 05 мар 2019, 14:22

Набрёл на сайт, видимо европейский и вот что там есть
SMEG и точки POI эксперимент  - Speed cameras for Citroën MyWay.jpg

Базы для Citroen, как RT6, так и SMEg, и самое главное в списке есть Россия, но скачать можно только по подписке, за 9.95€ в год, встаёт вопрос, вроде и деньги не большие, но есть сомнения, касаемо России в тех базах.

Аватара пользователя
frog2050
Маршал
Маршал
Сообщения: 14130
Зарегистрирован: 13 апр 2014, 21:03
Откуда: Москва
Авто: Citroen C4L Optima, 120л.с. Белый
Пробег: 56400
Прошлый авто: Citroen C4(B7) Хэтч проехал 96т.км за 3,5 года
:
За активность - Серебро За активность - Золото Мастер на все руки
Благодарил (а): 1430 раз
Поблагодарили: 2064 раза

SMEG и точки POI (эксперимент)

#14

Сообщение frog2050 » 05 мар 2019, 14:25

VR4
Скинь ссылку на сайт, поищем где они есть уже скаченные и в свободном доступе.
Но мне кажется , что там нет России, это обычные POI Европы
Изображение
Есть Лексия, Бутово.

Аватара пользователя
VR4
Лейтенант
Лейтенант
Сообщения: 406
Зарегистрирован: 15 сен 2014, 08:08
Откуда: Краснодар
Авто: Citroen C5 Aircross shine
Пробег: 12000
Прошлый авто: Citroen C4 sedan exclusive
:
Организатор фестиваля Citroen
Благодарил (а): 99 раз
Поблагодарили: 97 раз

SMEG и точки POI (эксперимент)

#15

Сообщение VR4 » 05 мар 2019, 15:43

frog2050
https://www.scdb.info/en/
Проглядел, там на скрине видно, что данные устройства наоборот, не поддерживаются... Переписывался с ними, не хотят они даже смотреть что в их архиве, хотя на карте у них в Краснодаре есть несколько камер, но тратить 10 евро, на то, что скорее всего не окажется полезным я пока не буду.
Просил их глянуть наличие папок с нашими регионами, всё таки только что отписались: We don't have folder 021,016,033 in our update.