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