Мне нужно некоторое архитектурное руководство. Вот моя цель.Совместное использование одного ресурса (последовательный порт) между несколькими приложениями
У меня есть часть роботизированного оборудования, которое выполняет несколько функций (то есть имеет несколько различных логических устройств). Для иллюстрации предположим, что это рука робота со сменными вложениями. Аппарат имеет один последовательный порт, который он использует для подключения к ПК, так что он может управляться различными приложениями. Сама рука и взаимозаменяемые вложения адресуются через один последовательный порт.
Мне нужно предоставить услугу, предоставляющую несколько интерфейсов. Интерфейсы можно назвать что-то вроде:
IRobotArm
IGrabberAttachment
IDrillAttachment
и так далее. Теперь вот сложная часть. К каждому интерфейсу нужно обращаться совершенно разными изолированными приложениями. Таким образом, рычаг робота и захватное устройство могут управляться совершенно разными приложениями одновременно - или они могут управляться одним и тем же приложением.
Это моя архитектурная головоломка. Как предоставить несколько интерфейсов нескольким клиентским приложениям, при этом создается только один экземпляр последовательного порта и что команды могут быть правильно сериализованы и т. Д.
Еще одно дополнительное требование: я буду работать в .NET/C#, но клиентские приложения вполне могут рассчитывать на использование COM-интерфейса, поэтому решение должно работать с COM Interop.
Идеи, пожалуйста!