На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

usernametaken (Все сообщения пользователя)

Поиск  Пользователи  Правила  Войти
Форум » Пользователи » usernametaken
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
ГИС Оператор, прикладные задачи и потоки
 
Спасибо за ответ.

С PANAPI на первый взгляд всё получилось. Потоки запускаются ничего не падает.

[B]Тогда вопрос в догонку:[/B]
Нельзя ли сделать чтобы PANAPI задача загружалась при открытии новой карты автоматически?
Т. е. если пользователь закрыл карту и открыл новую ему не было необходимости выполнять «Задачи→Запуск задач...»?

[B]P.S.[/B]
Первый вариант я использовал из-за этих фраз в документации:
[QUOTE]Существует два вида таких задач.
Первый вид – это задачи, выполняемые в потоковом режиме без интерактивной работы оператора (пользователя) с изображением электронной карты. Например, конвертирование, трансформирование, сортировка, обновление и другие виды обработки данных.
Второй вид – это интерактивные задачи. Например, редактирование, решение расчетных задач, построение отчетов, работа с базами данных и так далее.
...
[/QUOTE]
Вот я и решил что мне нужен первый вид.
А про то что библиотека будет выгружена из функции по выходу из `CallMapFunctionEx` я не догадался.
Изменено: usernametaken - 15.03.2019 12:38:34
ГИС Оператор, прикладные задачи и потоки
 
Здравствуйте, коллеги!

Сделал простой плагин к ГИС Оператору в котором пытаюсь создать новый поток. В этом случае ГИС Оператор с загруженным плагином падает.
Поток пробовал создавать разными способами: std::thread или QThread или даже создавать QTcpServer — результат идентичный.
Вопрос: что я делаю не так?
[CODE]#include "movingmapobject.h"

#include <iostream>
#include <thread>

#include <mapapi.h>

extern "C"
{
long int WINAPI GetInterfaceVersion()
{
   return MAPACCESSVERSION;
}
}  // extern "C"

extern "C"
{
//Если назвать функцию CallGisFunctionEx как указано в документации, то Оператор ругается: Функции "CallMapFunctionEx, CallMapFunction, CreateMapTask" или "CreatePanTask"не найдены !
long int WINAPI CallMapFunctionEx(HMAP hmap, TASKPARMEX * parm)
{
   std::cerr << "CallMapFunctionEx()" << std::endl;

   MovingMapObject* mmo = new MovingMapObject; //MovingMapObject Пустой класс. Только пустые конструктор, деструктор и функция doWork() {}

   std::thread* thr = new std::thread(&MovingMapObject::doWork, mmo);
   thr->detach();

   return 0;
}
}[/CODE]
Использую sdk_operatorse.zip и ГИС Оператор отсюда [URL=https://gisinfo.ru/download/download_linux.htm]https://gisinfo.ru/download/download_linux.htm[/URL]
ОС Astra Linux SE 1.6. Qt 4.8.7

Плагин загружается при старте ГИС Оператор с помощью параметра командной строки -t.

Плагин нужен для того чтобы в дальнейшем отображать на карте динамические точки и другую информацию, полученную из другого приложения.
Страницы: 1



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности