OberonCore https://forum.oberoncore.ru/ |
|
Черный квадрат и синяя бутылка https://forum.oberoncore.ru/viewtopic.php?f=1&t=6646 |
Страница 1 из 1 |
Автор: | adimetrius [ Среда, 12 Август, 2020 15:50 ] |
Заголовок сообщения: | Черный квадрат и синяя бутылка |
Коллеги, а какие есть способы интеграции ББ и А2? В идеале, мне бы хотелось из модуля внутри Блекбокса вызвать процедуру, определенную в модуле А2, передать ей параметры, она бы поработала внутри А2 и вернула мне в ББ результаты через параметры-переменные. Ну, если такого счастья нет, то хотя бы через командную строку как-нибудь. Есть ли такое? Все это на платформе Линукс. |
Автор: | Sergej Durmanov [ Среда, 12 Август, 2020 17:55 ] |
Заголовок сообщения: | Re: Черный квадрат и синяя бутылка |
Собрать а2 с необходимым комплектом модулей в виде dll |
Автор: | adimetrius [ Среда, 12 Август, 2020 18:21 ] |
Заголовок сообщения: | Re: Черный квадрат и синяя бутылка |
Ага, спасибо за ответ; он помог мне лучше понять и уточнить свой запрос. ББ работает в 32-битном режиме, а мне нужно, чтобы А2 работала и выполняла мой запрос в 64-битном режиме. Получается, что IPC не обойти - они должны быть в разных процессах. И тогда мой запрос превращается в: Какие средства IPC с внешним миром поддерживает А2 в лин? А) В простейшем случае я могу передать ей данные в файле и результат тоже взять из файла, и запустить через Dialog.CallExternal. Наверняка можно собрать А2 чтобы она как утилита командной строки отработала. Где об этом можно прочесть? Б) если я не захочу то и дело создавать процесс А2, как настроить IPC с работающей А2? Например, как послать ей сигнал, когда я подготовил входные данные? |
Автор: | Ярослав Романченко [ Воскресенье, 16 Август, 2020 02:29 ] |
Заголовок сообщения: | Re: Черный квадрат и синяя бутылка |
Когда A2 стартует с командной оболочкой, то подключается к стандартным потокам ввода-вывода. Т.е. выполняем, например, "A2.exe run <файл с параметрами>". Если файл существует, из него исполняются команды. Если файла нет, исполняется команда "Shell.Start" Это место в коде: модуль StdIOShell.Mod, процедура Execute Потом активности обслуживающие потоки ввода-вывода висят постоянно. По-идее, в потоки ввода-вывода можно писать/читать |
Автор: | adimetrius [ Среда, 26 Август, 2020 12:24 ] |
Заголовок сообщения: | Re: Черный квадрат и синяя бутылка |
В итоге сделал HTTP-сервер на А2, посылаю ему запросы из ББ и получаю асинхронно ответы. С непривычки замучился программировать в А2: очень привык к "богатому" посмертному отладчику в Черном Квадрате; переходу к месту в исходнике из посмертного дампа (синий ромбик); просмотру интерфейса модуля или символа; и, пожалуй, главное - "богатому" тексту, когда можно использовать цвет/жирность по смыслу, а не по синтаксису. Это подпортило мои впечатления, хотя решить основную свою задачу удалось легко и быстро. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |