|
Object Detector 1.8.1. Error Handling in CoAP Client.
В состав клиента CoAP (версия Object Detector 1.8.1) добавлены функции обработки ошибок.
Начнем с фатальных ошибок, при которых работа клиента CoAP невозможна.
Понятно, что такие ошибки следует своевременно обнаруживать и сообщать о них пользователю.
Рассмотрим случай, когда сервер CoAP недоступен.
При создании клиента CoAP для подключения к серверу используются следующие параметры:
После создания клиент CoAP попытается получить доступ к серверу CoAP.
Если сервер не отвечает, программа сообщит пользователю о критической ошибке и перейдет в состояние,
при котором операцию подключения можно повторить или попытаться
запустить клиента с другим протоколом связи, например, HTTP.
На рисунке 1 приведен фрагмент кода, выполняющий часть указанных действий.
Ошибки типа QtCoap::Error::TimeOut.
При обнаружении ошибки этого типа клиент попытается ее исправить путем повторной отправки данных на сервер.
Число таких повторов задается константой maximum_number_errors в файле coap.h.
При повторных попытках передачи данных пользователю в GUI интерфейс ничего не сообщается,
информация выводится в log файл или терминал. Пример показан на рисунке 2.
Если ошибку удается исправить, то клиент продолжит работу в нормальном (штатном) режиме.
В случае если число попыток исправления ошибки достигнет значения заданного константой maximum_number_errors и ошибку исправить не удается, программа
выведет окно, показанное на рисуноке 3. Это окно предлагает пользователю несколько вариантов дальнейших действий.
При нажатии на кнопку "Ignore" программа пропустит текущую запись и попытается отправить следующую.
Если пользователь установит CheckBox и нажмет кнопку "Ignore", программа будет пытаться передавать следующие по порядку данные,
игнорируя возможные ошибки до тех пор, пока число пропущенных записей не достигнет значения заданное константой max_fatal_errors_coap.
Если ошибку
удастся исправить, то клиент продолжит передачу данных на сервер в нормальном режиме. Если нет, то окно будет выведено повторно.
Работу клиента CoAP можно завершить нажав кнопку "Abort".
1. Обработка критических ошибок в CoAP клиенте.
Рисунок 1.
2. Исправление ошибок типа QtCoap::Error::TimeOut.
Автоматическое исправление ошибок.
Рисунок 2.
3. Игнорирование (пропуск) ошибок.
Рисунок 3.
Object Detector 1.8.1 скомпилирован и собран в операционной системе macOS Tahoe 26.3.
Проект Object Detector 1.8.1 можно загрузить и поблагодарить:
Консультации через e-mail: veresov@jdesign.ru или телефон: +7 921-215-45-70.
|
