В итоге общий процесс работы алгоритма по переходу в однопользовательский режим у меня выходил такой.
Первое. Его я скомпоновал в отдельную надстройку, которую требовалось установить в существующую прошивку комплекса.
Второе. Дальше появлялся дополнительный режим работы оператора – «однопользовательский», который или регистрировал нового оператора, или работал с уже прошитыми в него индивидуальными настройками.
Третье. На следующем шаге, если мощностей медкомплекса было достаточно или он был вполне современным, никаких иных манипуляций проводить с ним не требовалось.
Четвертое. Но если это была какая-то устаревшая или не слишком мощная (бюджетная) модель, то оператору предлагался выбор. Или отключить функции, несовместимые с данной моделью медкомплекса, или произвести его модернизацию в соответствии с предложенными рекомендациями.
Пятое. Эти же рекомендация я вынес и в главное меню, давая возможность хотя бы примерно оценить оператору текущую производительность работы медкомплекса и его будущую производительность, которую он получит после замены искина.
Шестое. Ну и при выборе модернизации, оператору предлагался или небольшой программный разгон, или аппаратный, с подобной инструкцией по пошаговой замене искина.
Седьмое. Саму процедуру миграции я просто вшил в последний пункт, обозначенный кнопкой «Запустить», после выбора которого она стартовала автоматически.
Восьмое. Последним шагом я производил привязку модуля к аппаратной части, чтобы этот же модуль не было возможности раскатить на несколько комплексов.
С искина повторную установку выполнить уже было невозможно. А инсталлятор для повторной установки не годился, так как по мере передачи данных он безвозвратно саморазрушался, по принципу войсковых баз знаний.
Почему не воспользоваться хорошей идеей?
Еще раз, оценив на виртуальной модели работу всех компонентов модуля, я решил не полениться и провести еще один эксперимент, но уже на полностью готовом продукте со всеми его составными частями.
Транс. Выход.
* * *После этого я специально прошёл в соседний отсек и подключил к медбоксу его старый искин. А затем запустил комплекс именно с него.
Следом я провел установку своего универсального программного обновления для медицинского оборудования. Перешёл в однопользовательский режим. И начал выбирать соответственно все доступные пункты меню.
Так. Основной функционал работает, как и раньше, до смены искина.