Ниже приведен пример оформления сценария работы исполнительного модуля, взаимодействующего с контроллером светофора.
; Сценарии работы модуля-исполнителя: Kernel\Targets 1: Uniteller.DeviceController S01: Переключение сигнала светофора Описание : @nonutx Перед началом работы, модуль DeviceController должен быть проинициализирован. После инициализации модуль может принимать сообщения от управляющей логики. Единственная цель модуля - обеспечить переключение сигналов светофора по команде. Подцели: 01: Инициализация 02: Установка сигнала 03: Выгрузка Проверки 01: Инициализация, установка сигнала светофора, выключение по команде Kernel.Stop 02: Инициализация, выключение по команде Kernel.Stop 03: Последовательная успешная смена цвета по команде setlight: зеленый, желтый, красный. Инициализация Описание : @nonutx Модуль DeviceController включается сообщением Kernel.Start. При его получении модуль устанавливает сигнал светофора и запоминает этот цвет в переменную CurrentLight. Независимо от результата модуль переходит в состояние ожидания новой команды. Проверки: 01: При включении модуль установил сигнал по умолчанию, работа в штатном режиме. 02: При включении модуль не установил сигнал по умолчанию, работа в штатном режиме. Установка сигнала Описание : @nonutx Модуль DeviceController принимает от управляющей логики сообщение SetLight с параметром ColorType. Сперва гасится цвет, который был ранее включен, CurrentLight: * Если цвет не может быть погашен, то управляющей логике отправляется сообщение Fail. Установка нового цвета прерывается. Модуль возвращается в состояние ожидания новой команды. После успешного гашения предыдущего сигнала включается новый: * Если модуль смог установить сигнал нужного цвета, то отправляет управляющей логике сообщение Success. * Если модуль не смог установить сигнал нужного цвета, то он отправляет управляющей логике сообщение Fail. В переменную CurrentLight запоминается новый цвет. Модуль возвращается в состояние ожидания новой команды. Проверки: 01: Попытка выставить красный сигнал успешна, модулю управляющей логики отправлено Success. 02: Попытка выставить жёлтый сигнал успешна, модулю управляющей логики отправлено Success. 03: Попытка выставить зелёный сигнал успешна, модулю управляющей логики отправлено Success. 04: Попытка выставить красный сигнал неуспешна, модулю управляющей логики отправлено Fail. 05: Попытка выставить жёлтый сигнал неуспешна, модулю управляющей логики отправлено Fail. 06: Попытка выставить зелёный сигнал неуспешна, модулю управляющей логики отправлено Fail. 07: Попытка погасить красный сигнал при установке зелёного неуспешна, модулю управляющей логики отправлено Fail. 08: Попытка погасить жёлтый сигнал при установке красного неуспешна, модулю управляющей логики отправлено Fail. 09: Попытка погасить зелёный сигнал при установке жёлтого неуспешна, модулю управляющей логики отправлено Fail. Выгрузка Описание : @nonutx При получении сообщения Kernel.Stop модуль гасит на светофоре цвета CurrentLight. После получения результата, независимо от успеха модуль завершает работу. Проверки 01 : Выгрузка модуля при включенном красном, успешно погашен 02 : Выгрузка модуля при включенном жёлтом, неуспешно погашен 03 : Выгрузка модуля при включенном красном, успешно погашен
Включенные в тело сценария проверки составляют чек-лист. При такой форме записи дополнительный документ с чек-листом составлять не нужно.