Каждый раз, когда я звоню своему провайдеру с жалобой
У меня нет доступа в интернет.
они спрашивают меня
Вы отключили маршрутизатор, подождали пару минут и снова включили его?
Что я не могу понять, так это то, почему прошивка не делает это для меня. Это должно быть легко, как пинг до пинга, например, Google каждые 60 секунд, а в случае сбоя инициируйте сброс системы. Сделайте это 3 раза подряд, затем сдайтесь и сообщите пользователю результаты самодиагностики.
Кроме того, по моему опыту, разработка встроенного программного обеспечения в значительной степени выигрывает от вызовов assert()
, пронизанных по всему коду. Они обычно вешают устройство (while(1);
) во время разработки, чтобы указать разработчикам на проблему. Почему бы не сделать быстрое сообщение журнала и затем аккуратно перезагрузиться, когда aseert () дует во время выполнения? Маршрутизаторы являются машинами мягкого реального времени, поэтому было бы целесообразно некоторое время простоя во имя отказоустойчивости (пользователю не нужно перезагружать маршрутизатор от адаптера питания, как, например, дикарь).
Почему перезапуск маршрутизатора вручную все еще является такой часто необходимой задачей?