У меня есть инструмент winform, который взаимодействует с аппаратным обеспечением с помощью последовательного порта.Какой шаблон дизайна лучше всего использовать для управления последовательностью шагов?
Последовательный порт используется для отправки команд на аппаратное обеспечение, которое будет подтверждать команды и иногда возвращать данные.
Для выполнения задачи несколько команд необходимо отправить на оборудование в определенном порядке.
Я успешно реализовал инструмент, используя оператор switch для управления отправкой команд. Однако, хотя это работает, я не могу не думать о том, что есть лучший, более простой способ сделать это - есть ли?
Текущая реализация ниже:
Каждый случай является команда, которая нуждается в отправке к аппаратному обеспечению. Метод отправки передается метод вызова и идентификатор следующего шага - который будет возвращен, если команда отправлена успешно.
- Инструмент отправит команду запуска сеанса на оборудование.
- Аппаратное обеспечение подтверждает команду.
- Инструмент отправляет команду указания направления на аппаратное обеспечение.
- Аппаратное обеспечение подтвердит команду.
т.д.
MessageID nextStep = MessageID.IMS;
while (nextStep != MessageID.Stop)
{
switch (nextStep)
{
case MessageID.ISS:
nextStep = Send(new ISS_StartSession(), MessageID.IE386);
RaiseProgressEvent(10); //percentage complete
break;
case MessageID.IE386:
nextStep = Send(new IE386_SetDirection(Direction.BOTH), MessageID.IE378);
RaiseProgressEvent(20);
break;
//etc
case MessageID.Error:
HandleError(); //abort task if necessary
break;
}
}
Есть ли лучший способ сделать это ..?
Есть ли хорошо известный дизайн, на который я должен обратить внимание?
Является ли следующий MessageID отправленным на текущий звонок «Отправить»? –