Радары и опасные зоны для SMEG+

В процессе рестайлинга 508 французы поменяли голову с RT6 на SMEG+, а вместе с ней и формат файлов обновления камер и зон для головы.

В отличии от RT6 файлы с координатами упакованы в tar gz архив.

delbook:POI_USER delirium$ file ZAR_POI.BIN
ZAR_POI.BIN: gzip compressed data, was "TMP_POI.TAR", from NTFS filesystem (NT), last modified: Thu Nov 6 17:38:52 2014

Рядом с ним лежит ZAR_POI.BIN.inf файл, в котором описаны контрольные суммы и другая служебная информация следующего содержания:

delbook:POI_USER delirium$ cat ZAR_POI.BIN.inf
67351db4
CONTINENT_ID:01
CONTINENT_NAME:EUROPE
MEDIA_NAME:SMEG_PLUS_I_ZAR_2014-12-03
POI_PROVIDER:PSA
VERSION:20141106
CID_SIZE_32:2359296
CID_SIZE_16:1818624
CID_SIZE_8:1589248
CID_SIZE_4:1482752
CID_SIZE:1368946

Где:

  • Первая строчка (67351db4) контрольная сумма, вычисляемая через задницу (об этом ниже);
  • CONTINENT_ID – порядковый номер континента. Россия, при этом, выделена в отдельный (!) континент с ID 017;
  • CONTINENT_NAME – название континента;
  • MEDIA_NAME – название файла обновления;
  • POI_PROVIDER – автор обновления;
  • VERSION – версия базы данных;
  • CID_SIZE – Размер файла каталога и файла ZAR_POI.BIN. _4,_8,_16,_32 размер каталога и файла на диске при разном размере блока файловой системы FAT32 в 4, 8, 16 и 32 кб.

Обычным способом CRC посчитать не выйдет.

delbook:POI_USER delirium$ crc32 ZAR_POI.BIN
f41e8763

Сравните с содержванием INF файла.

Вычисление контрольной суммы разделяется на два этапа. Сначало вам нужно взять программу RTXcrc и посчитать контрольную сумму архива ZAR_POI.BIN.

C:\SMEG\RTXcrc (v01.00)>RTXcrc.exe -v C:\SMEG\SMEG_PLUS_UPG\DATA\MAPPE\POI_USER\ZAR_POI.BIN
RTXcrc v01.00: by mira308sw. RT4/RT5 crc calculator.

CRC = 1db4

И записать полученное значение первой строчкой в INF файл. Затем считаем контрольную сумму уже от INF файла:

C:\SMEG\RTXcrc (v01.00)>RTXcrc.exe -v C:\SMEG\SMEG_PLUS_UPG\DATA\MAPPE\POI_USER\ZAR_POI.BIN.inf
RTXcrc v01.00: by mira308sw. RT4/RT5 crc calculator.

CRC = 6735

Сложив CRC из второго расчета с первым мы получим исходное значение 6735, 1db4 => 67351db4.

Формат  ZAR_POI.BIN

Как я уже писал этот файл представляет собой tar gz архив. Внутри GZ архива расположен TMP_POI.TAR, в котором, в свою очередь лежат файлы обновлений для разных стран. 001 – Италия, 002 – Франция и т.д. В свою очередь в каталогах стран лежат радары или опасные зоны.

DANGERZ.LZW
DANGERZDSC.LZW
DANGERZ_PE.LZW
DANGERZ_PS.LZW
POI_VER_DANGERZ.TXT
POI_VER_RADAR.TXT
RADAR.LZW
RADARDSC.LZW
RADAR_PE.LZW
RADAR_PS.LZW

Особую ценность представляют POI_VER_DANGERZ.TXT и POI_VER_RADAR.TXT. В них содержаться следующие переменные

  • POI_PROVIDER – автор обновления;
  • POI_MACRO_CAT – ?;
  • POI_CAT – категория точек. 41 – камеры, 42 – опасные зоны;
  • DATE:20150505;
  • DATA_POI:05/05/2015;
  • NAME_ICON:BMP;
  • NAME_SOUND:SOUND;
  • DESCRIPTION – Описание: RADAR CONTROL или DANGEROUS ZONE;
  • PREFIX – Префикс: RADAR или DANGERZ;
  • NAME_COUNTRY – название страны;
  • CID – ID Страны (не путать с ID континента), 33 для России;
  • NUMBER_POI – количество камер или зон в файле обновления;
  • POI_SIZE – размер всех файлов (LZW + TXT), _4, _8, _16, _32 – размер, который занимают файлы на файловой системе FAT32 с размером блока в 4, 8, 16 и 32 килобайта.
Процесс сбора файла обновлений
  1. Вам потребуются файлы с радарами или опасными зонами. Для создания этих файлов из сsv можно (и нужно) использовать RadarViewer и затем дополнить TXT файл необходимой информацией.
  2. Затем файлы нужно поместить в каталог, соответствующий ID страны. Для России это 033.
  3. Затем каталог с POI помещается еще в один – TMP_POI.
  4. TMP_POI помещается в tarball TMP_POI.TAR
  5. TMP_POI.TAR упаковывается в gzip архив ZAR_POI.BIN
  6. Обновляется ZAR_POI.BIN.inf файл с правильными размерами и контрольной суммой.

PS. Проблема в том, что не смотря на то, что все размеры и контрольные суммы корректны мое ГУ отказывается принимать такой файл, выдавая ошибку Файл обновления невозможно скопировать.

Типичные ошибки

1. Данные на медианосителе повреждены – ошибки в заполнении контрольных сумм или размеров файлов. (CID_SIZE, POI_SIZE). Иногда нужно отформатировать накопитель и попробовать снова.20150617_132134

2. Файл обновления невозможно скопировать.20150617_093658

3. Не удалось проверить совместимость – неверно указаны Country ID (CID) или Continent ID.

20150617_095256

  • Pavel Galchenko

    Удалось победить ?

  • Так на 508 клубе же писал, что пока нет.

  • Raymond

    Were you able to have the system accept your update file? No matter what I try, the system says that the update file cannot be copied.

  • Hey, Raymond.

    Unfortunately no. No matter what I try it says update file could not be copied. It seems that some regions (namely Russia) lacking vital information and script just can’t finish update process properly.

    Probably some folder structure missed since update file on its own works flawlessly when it’s being prepared for EU region with EU maps installed.

    Also, it’s impossible for me to reverse engineer update script as they made it binary unlike C-like syntax in RT6.

    Which region do you prepare update for? In case you’ll come to conclusion please let me know.