Текстовое описание частей 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.