h1. Текстовое описание частей I и II # Стартуем - скорость низкая, передача данных отключена. # Сервис подключается к адаптеру со скоростью HIGH, ждёт 3 сек, запрашивает серийник. # Ждёт ещё 0.5 сек, видит что серийник не пришёл, переключает скорость соединения на LOW. # Снова запрашивает серийник, ждёт 0.5 сек, проверяет, если не пришёл снова запрашивает и ждёт. И так в цикле пока серийник не пришёл или не кончились 20 попыток. # Адаптер отправляет серийник. # Сервис его проверяет на корректность лицензии ## если лицензия не ОК, то открывает окно активации а фоновые процессы все завершает. ## если лицензия ОК, то 7. # Сервис запрашивает версии прошивки и платы, ждёт 0.5 сек, проверяет, если не пришли снова запрашивает и ждёт. И так в цикле пока номера не придут или не кончились 20 попыток. # Адаптер отправляет номера. # Сервис проверяет номер прошивки. ## если номер меньше 110, то показывает сообщение о необходимости обновления и завершается. ## если >= 110, то 10. # Сервис отправляет команду запроса переключения скорости, ждёт 0.5 сек подтверждения, если не пришёл SUCCESS/ACCESS_DENIED то снова отправляет команду и ждёт. И так в цикле пока SUCCESS/ACCESS_DENIED не придёт или не кончились 20 попыток. # Адаптер когда принимает эту команду, отправляет SUCCESS или ACCESS_DENIED и ждёт 1 секунду (чтобы она успела дойти до сервиса на LOW-скорости), после этого переключается на HIGH. # Сервис, в зависимости от результата: ## если ACCESS_DENIED, то показывает сообщение о необходимости включить галочку и завершает работу. ## если SUCCESS, то меняет скорость работы на HIGH. # Сервис отправляет команду запроса включения передачи CAN-данных, ждёт 0.5 сек подтверждения, если не пришёл SUCCESS/ACCESS_DENIED то снова отправляет команду и ждёт. И так в цикле пока SUCCESS/ACCESS_DENIED не придёт или не кончились 20 попыток. # Адаптер включает передачу CAN-данных или шлёт ACCESS_DENIED. # Всё, мы в рабочем режиме. Соответственно когда адаптер засыпает, он шлёт уведомление и выключает передачу CAN. Когда просыпается, шлёт уведомление и ждёт команды на включение передачи CAN.