在多个应用程序之间共享单个资源(串行端口)

时间:2010-07-23 11:09:43

标签: .net architecture client-server

我需要一些建筑指导。这是我的目标。

我有一块执行多种功能的机器人硬件(即它有几个不同的逻辑设备)。为了便于说明,我们假设它是一个带有可互换附件的机器人手臂。硬件具有单个串行端口,用于连接到PC,因此可以通过各种不同的应用程序进行控制。手臂本身和可互换的附件可通过单个串行端口进行寻址。

我需要提供一个服务,暴露几个接口。接口可能被称为:

  

IRobotArm
  IGrabberAttachment
  IDrillAttachment

等等。现在,这是棘手的部分。每个接口都需要由完全不同的隔离应用程序访问。因此,机器人手臂和抓取器附件可能同时由完全不同的应用程序控制 - 或者它们可能由同一应用程序控制。

这就是我的建筑之谜。如何为多个客户端应用程序提供多个接口,同时确保只创建一个串行端口实例,并且可以正确序列化命令等。

还有一个额外要求:我将使用.NET / C#,但客户端应用程序可能期望使用COM接口,因此该解决方案需要与COM Interop一起使用。

想法!

2 个答案:

答案 0 :(得分:3)

您需要一个实际打开串行端口并发送/接收数据的控制器进程。

暴露这些接口的DLL应该与控制器进程通信,而不是直接与串口通信。

答案 1 :(得分:1)