kpda-gis/README.md

158 строки
8.7 KiB
Markdown

<h1 align="center">ПК ЦКИ (Программый Комплекс поддержки ЦКИ)</h1>
<div align="center">
<p><img src="doc/readme_content/animated_gis_logo_no_loop.gif" alt="ПК ЦКИ" align="top"></p>
<p>
<img src="https://img.shields.io/badge/c-%2300599C.svg?style=for-the-badge&logo=c&logoColor=white" alt="C">&nbsp;
<img src="https://img.shields.io/badge/c++-%2300599C.svg?style=for-the-badge&logo=c%2B%2B&logoColor=white" alt="C++">&nbsp;
<img src="https://img.shields.io/badge/CMake-%23008FBA.svg?style=for-the-badge&logo=cmake&logoColor=white" alt="CMake">&nbsp;
</p>
<img src="https://img.shields.io/badge/PVS_stat_analyzer-Enabled-green%20" alt="PVS_stat_analyzer-Enabled">&nbsp;
<img src="https://img.shields.io/badge/GCOV_code_coverage-Enabled-green%20" alt="GCOV_code_coverage-Enabled">&nbsp;
</div>
<h1></h1>
<p>Картографический пакет ПК ЦКИ предназначен для обработки и визуализации цифровой картографической информации в защищенной операционной системе реального времени «Нейтрино».</p>
<p>ПК ЦКИ оптимизирован для работы на широком спектре оборудования, включая аппаратные платформы на базе российских процессоров, и применяется в качестве базового ПО при построении ГИС различного назначения для мобильных, бортовых и стационарных систем и комплексов.</p>Подробнее о продукте можно прочитать <a href="https://kpda.ru/products/gis/">здесь</a>.
<h1></h1>
<table>
<tr>
<td>
<table>
<tr>
<th>Поддерживаемые платформы</th>
</tr>
<tr>
<td>
<p><img src="https://img.shields.io/badge/x86-blue" alt="x86">&nbsp;</p>
<p><img src="https://img.shields.io/badge/ARM_v7-blue" alt="ARM_v7">&nbsp;</p>
<p><img src="https://img.shields.io/badge/PowerPC_BE_%2F_BE_SPE-blue" alt="PowerPC">&nbsp;</p>
<p><img src="https://img.shields.io/badge/%D0%AD%D0%BB%D1%8C%D0%B1%D1%80%D1%83%D1%81-blue" alt="Эльбрус">&nbsp;</p>
<p><img src="https://img.shields.io/badge/MIPS-blue" alt="MIPS">&nbsp;</p>
</td>
</tr>
</table>
</td>
<td width="1000px" align="center">
<img src="doc/readme_content/supported_formats.png" alt="Поддерживаемые форматы" width="750px">
</td>
</tr>
</table>
# Обзор
## Содержание
- [Компоненты](#компоненты)
- [Зависимости](#зависимости)
- [Сборка](#сборка)
- [Запуск](#запуск)
## Компоненты
- [doc](doc) - справка по формату GCM, и др.
- [src](src) - исходные компоненты проекта
- [apps](src/apps) - демонстрационные и тестовые приложения
- [lib](src/lib) - исходники используемых библиотек
- [services](src/services) - компоненты ядра, драйверов для работы с серверами и имитаторов серверов
- [gis-core](src/services/core) - ядро картографического пакета
- [drivers](src/services/drivers) - исходники драйверов форматов картографической информации
- [utils](src/utils) - конвертеры карт и дополнительные утилиты для работы
Подробную информацию по конкретному компоненту (приложению, утилите, драйверу и т. д.) можно найти в файлах `README.md`, находящихся в директории этого компонента.
## Зависимости
<div align="center">
<img src="doc/readme_content/GIS.drawio.svg" alt="Зависимости" width="1000px">
</div>
## Сборка
*ПК ЦКИ поддерживается на ЗОСРВ "Нейтрино" версий 2024 и 2021.*
**Для комплекта разработчика 2021 необходимо дополнительно подключить sqlite3:**
1. Установить sqlite3 на свое устройство. Например, для Debian/Ubuntu ввести следующую команду:
<code>sudo apt update && sudo apt install sqlite3</code>
2. Собрать <a href="https://git.kpda.ru/gis/sqlite">sqlite3</a> под требуемую аппаратную платформу, установив библиотеки в указанную вами папку.
- Например, для armle-v7:
<code>make CPULIST=arm VARIANTLIST=le.v7 INSTALL_ROOT_nto=my_sqlite_install_dir install && make clean</code>
- Для x86:
<code>make CPULIST=x86 INSTALL_ROOT_nto=my_sqlite_install_dir install && make clean</code>
3. Полученные библиотеки необходимо поместить на целевое устройство с ОС "Нейтрино" версии 2021 в папку `/opt/gis/lib`.
4. Установить переменные окружения, используя ранее выбранную папку установки:
<code>export SQLite3_INCLUDE_DIR=my_sqlite_install_dir/armle-v7/usr/include/sqlite</code>
<code>export SQLite3_LIBRARY=my_sqlite_install_dir/armle-v7/usr/lib/libsqlite3.so.8</code>
**Сборка ПК ЦКИ для 2021 и 2024:**
1. Перейти в выбранную для сборки папку:
<code>mkdir my_gis_build && cd my_gis_build</code>
2. Настроить cmake:
<code>cmake --toolchain=$KPDA_HOST/mk/cmake/toolchain-nto-armle-v7.cmake *path-from-my_gis_build-folder*/kpda-gis</code>
3. Собрать проект:
<code>cmake --build . -jn</code>, где n - количество потоков.
4. Установить в выбранную папку:
<code>cmake --install . --prefix my_gis_install_dir</code>
*Примечание: при развертывании на целевое устройство *`my_gis_install_dir`* должно быть присвоено значение *`/opt/gis`*.*
## Запуск
**Пример запуска приложения gis-monitor**
1. Установить необходимые переменные окружения
<code>export PATH=/opt/gis/bin:/opt/gis/sbin:$PATH</code>
<code>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/gis/lib</code>
2. Дополнительные настройки
<table>
<tr>
<td>Изменение языка</td>
<td><code>export ABLANG=ru_RU</code></td>
</tr>
<tr>
<td>Уровень отладочного вывода (Error - 1, Warning - 2, Info - 3)</td>
<td><code>export GIS_DEBUG_LEVEL=3</code></td>
</tr>
<tr>
<td>Установка размера кэша в байтах</td>
<td><code>export GIS_CORE_DATABUFFER_SIZE_LIMIT=960000000</code></td>
</tr>
</table>
3. Добавить файлы цифровой картографической информации в директорию, соответствующую исходному формату ЦКИ, в <a href="http://gis.help.kpda.ru/help/topic/ru.kpda.doc.gis/html/dev_guide/articles/gis-environment.html?resultof=%22%47%49%53%5f%43%4f%52%45%5f%4d%41%50%5f%43%41%43%48%45%22%20">$GIS_CORE_MAP_CACHE</a> (по умолчанию /opt/gis/data/maps/cache).
4. Запуск ядра и приложения
При запуске ядра c опцией `-d` передается название драйвера требуемого формата. Подробнее об имеющихся драйверах можно прочитать [тут](http://gis.help.kpda.ru/help/topic/ru.kpda.doc.gis/html/utilities/reference-book/gis-core.html?cp=0_2_1_0_0).
Пример запуска с драйвером для формата SXF:
<code>gis-core -dsxf-local,sync=hard</code> [справка](http://gis.help.kpda.ru/help/topic/ru.kpda.doc.gis/html/utilities/reference-book/gis-core.html?cp=0_2_1_0_0)
Запуск демонстрационного приложения gis-monitor:
<code>gis-monitor -x50 -y50</code> [справка](http://gis.help.kpda.ru/help/topic/ru.kpda.doc.gis/html/utilities/reference-book/gis-monitor.html?cp=0_2_0_0_0)