我写一个客户端程序来控制服务器,又控制了一些大的硬件。 服务器需要接受命令初始化,启动,停止和控制硬件。
从客户机到服务器的连接是通过TCP或UDP套接字。 每个命令被封装在使用SCADA协议(例如Modbus或DNP3)相应的消息。
初始化阶段的部分包括从所述客户端发送的命令序列到服务器。 在一些情况下,必须有在命令之间秒,以防止多个子系统的延迟的同时被初始化。 延迟的值取决于命令的类型。
我想,该命令设计模式是一个很好的方法来这里跟随。 该客户端实例ConcreteCommands和祈求其放置在队列中。 我不知道如何把可变延迟,以及是否还有更好的模式,涉及一个定时器和一个队列处理与可变延迟发送的消息。
我使用C#,但是这可能是无关紧要的,因为它更是一个设计模式问题。