主程序+配置模块

时间:2015-08-13 09:51:05

标签: python c++ c sockets named-pipes

我有一个主程序 X ,它从我的网络摄像头获取信息 我想在执行时实时配置 X 据我所知,其中一种常见的方法是使用IPC,如命名管道/ Unix套接字/ Internet套接字等。但我想避免每个调用者必须单独打开一个套接字/命名管道,并每次都进行通信。
简而言之,我想要一个名为 Y 的帮助程序,我可以通过以下方式使用它:

Y set-fps=15
Y show-frame=true
Y get-fps  (should return 15)

我想在/ usr / bin / *中播放这个帮助程序 Y (或者将其放在$ PATH directoreis中的一个),以便它可以从命令行执行。

我有什么选择来获得此功能。我的约束如下:
(i)程序 X 可以是C ++ / Python (ii)多个客户可以同时拨打 Y

我想这些系统在Linux上很常见,你有nmcli等程序与network-manager等服务进行交互?

1 个答案:

答案 0 :(得分:0)

很抱歉将这篇文章回答,我仍然无法发表评论。

我可以看到的方法之一是:

当您的程序从网络摄像头获取帧时,肯定存在循环或冗余自动机。

通过这种方式,您可以在一个块中在内核内存中分配一些寄存器,每个寄存器都是参数之一。

然后,在每个循环中,您的X程序可以从该内核空间读取不同的参数。另一方面,每个想要修改参数的客户端也将访问此内核空间,并修改所需的值。

然后,您必须使用信号量保护内核空间,以进行任何写入或读取操作。(可以使用互斥锁,但是您可能需要一些编写器/读取器实现)

当然,与每个参数的保护相比,这在性能上并不是最佳的,但是你必须只处理一个信号量,而一个简单的互斥体就可以完成这项任务。它当然也不如使用管道或插座进行通信,但是使用它们,你仍然需要保护参数的读写...