我需要一些体系结构指导。这是我的目标。在多个应用程序之间共享单个资源(串行端口)
我有一个机器人硬件执行多个功能(即它有几个不同的逻辑设备)。为了说明起见,假设它是一种可互换附件的机器人手臂。硬件具有一个串行端口,用于连接到PC,以便可以通过各种不同的应用程序进行控制。手臂本身和可互换的附件可通过单个串口进行寻址。
我需要提供一个服务,公开几个接口。该接口可以被称为是这样的:
IRobotArm
IGrabberAttachment
IDrillAttachment
等。现在,这是棘手的部分。每个接口都需要被完全不同的独立应用程序访问。因此,机器人手臂和抓取器附件可能由完全不同的应用程序同时控制 - 或者它们可能由同一应用程序控制。
这就是我的建筑难题。如何为多个客户端应用程序提供多个接口,同时确保只创建串行端口的一个实例,并且可以正确序列化命令等。
另一个额外要求:我将在.NET/C#但客户端应用程序可能期望使用COM接口,因此该解决方案需要与COM Interop一起使用。
想法请!