У меня есть основная программа X, которая получает канал с моей веб-камеры.
Я хочу настроить X в режиме реального времени во время его выполнения.
Я понимаю, что один из распространенных способов сделать это - использовать IPC, например, named-pipes/Unix-сокеты/интернет-сокеты и т. Д. Но я хочу, чтобы каждый вызывающий пользователь должен был отдельно открыть сокет/именованный канал и общаться каждый раз.
Короче говоря, я хочу вспомогательную программу под названием Y, которые я могу использовать следующим образом:Дизайн кода для основной программы + модуль конфигурации
Y set-fps=15
Y show-frame=true
Y get-fps (should return 15)
Я хотел бы играть в эту вспомогательную программу Y в/USR/BIN/* (или, скорее, поместить его в один из $ PATH directoreis), чтобы он исполнялся из командной строки.
Каковы мои возможности для получения этой функции. Мои ограничения таковы:
(i) Программа X может быть либо C++/Python.
(ii) Несколько клиентов могут звонить Y одновременно.
Я полагаю, что такие системы распространены в Linux, где у вас есть программы, такие как nmcli
, взаимодействующие с такими сервисами, как network-manager
?
Вам по-прежнему нужен какой-то канал IPC между программами Y и X . И если вас беспокоит несколько внешних систем или программ, использующих Y одновременно, вы можете использовать некоторую систему семафоров/мьютексов (большинство операционных систем назвали (общесистемные) семафоры). –
Это звучит неприятно. Я бы рекомендовал переосмыслить дизайн. – EOF
Я предполагаю, что для обработки нескольких клиентов именованные каналы могут быть слишком полезными (так как мне понадобится одна пара для каждого клиента, который пытается подключиться). Я хочу иметь возможность обрабатывать несколько клиентов одновременно с/без блокировки (в зависимости от запроса). – vishal