Что такое трассировка, команда tracert
Tracert/Traceroute — это служебная компьютерная программа, предназначенная для определения маршрутов следования данных до удаленного сервера в сетях TCP/IP.
Что такое трассировка маршрута простыми словами
Трассировка – это метод диагностики маршрута, позволяющий определить проблемный участок сети, на котором происходят потери сетевых пакетов. Выполняется трассировка в момент, когда наблюдаются проблемы.
Очень часто пользователи задаются вопросом, с чем связана разница в написании tracert и traceroute? По сути это аналогичные команды, просто команда tracert применяется в операционных системах Windows, а traceroute – в операционных системах Linux и в операционной системе маршрутизаторов Cisco.
Как сделать трассировку с помощью команд tracert и traceroute
Откройте командную строку, нажмите кнопку “Пуск”. Наведите курсор на “Все программы”. Выберите “Стандартные”, а затем щелкните “Командная строка”.
Откройте окно «Командная строка» и введите следующую команду:
Как ускорить телефон ? Отключи эти настройки смартфона и телефон перестанет тормозить
tracert имя_узла или tracert IP-адрес
При использовании команды tracert с буквенным адресом проверяемого хоста, автоматически проверяется еще и работоспособность и доступность DNS – сервера. Ведь для того, чтобы начать процесс трассировки, команда tracert должна сначала связаться с сервером DNS и получить IP-адрес проверяемого хоста.
Пример вывода информации командой tracert:
Команда tracert последовательно опрашивает и измеряет время задержки до всех маршрутизаторов на пути прохождения пакета, пока не будет достигнут целевой хост. Если между какими-либо двумя маршрутизаторами наблюдается большой рост задержки, значит этот участок маршрута влияет на увеличение пинга.
Следует также учитывать, что основная задача маршрутизаторов – это передавать пакеты с полезной информацией, а не отвечать на команды tracert и ping. Поэтому некоторые маршрутизаторы на пути следования пакета могут пинговаться даже с потерей пакетов, но при этом целевой хост будет доступен без потери.
Поэтому прежде чем звонить в техподдержку провайдера с криком “Я знаю, где у вас пропадают пакеты!”, убедитесь, что целевой хост также пингуется с потерей пакетов. Иначе вам попросту расскажут то, о чем написано выше.
Расширенная диагностика программой MTR
Трассировка с применением программы MTR дает более полное представление о потерях. Очень актуален этот метод, когда проблема плавающая, так как трассировка выполняется непрерывно. Если сравнивать с вышерассмотренными утилитами, то они запускают определенное количество пакетов, в то же время MTR проводит диагностику до тех пор, пока ее не завершишь самостоятельно.
Скачайте программу WinMTR для Windows с Github: https://github.com/White-Tiger/WinMTR/releases, выбрав архив WinMTR-v100-static.zip.
Чтобы начать диагностику:
- Распакуйте архив и запустите файл WinMTR.exe.
- Вверху в поле «Host» введите имя сервера, домен или IP-адрес.
- Нажмите «Start».
Теперь можно подождать около минуты, пока данные будут собраны. Если проблема непостоянная – дождитесь, пока она появится, соберите данные около минуты и остановите диагностику. Скриншот с результатом отправьте в поддержку.
НЕ Трогай эти настройки на Андроид! Лучше не будет!
Для Linux есть аналог программы MTR, его можно установить из пакетного менеджера операционной системы.
Статья была полезной?
Источник: mehelps.ru
Трассировка и оборудование приложений
Трассировка — это мониторинг выполнения запущенного приложения. Вы можете добавить инструментирование трассировки и отладки в свое приложения .NET Framework при его разработке; кроме того, вы можете использовать это инструментирование при разработке приложения и после его развертывания. С помощью классов System.Diagnostics.Trace, System.Diagnostics.Debug и System.Diagnostics.TraceSource можно записывать сведения об ошибках и выполнении приложения в журналы, текстовые файлы или на другие устройства для последующего анализа.
Термин инструментирование относится к возможности мониторинга и измерения уровня производительности продукта и диагностики ошибок. В программировании это означает способность приложения включать следующие возможности.
- Трассировка кода — получение информационных сообщений о работе приложения во время выполнения.
- Отладка — отслеживание и устранение ошибок программирования в приложении при разработке. Дополнительные сведения см. в разделе Отладка.
- Счетчики производительности — компоненты, позволяющие отслеживать производительность приложения. Дополнительные сведения см. в статье Performance Counters.
- Журналы событий — компоненты, которые позволяют принимать и относить основные события при выполнении приложения. Дополнительные сведения см. в описании класса EventLog.
Инструментирование приложения путем добавления операторов трассировки в стратегически важных местах кода особенно полезно для распределенных приложений. С помощью операторов трассировки можно инструментировать приложение не только для отображения сведений о неправильных моментах, но также отслеживать, насколько хорошо работает приложение.
Класс TraceSource предоставляет улучшенные функции трассировки и может использоваться вместо статических методов более старых классов трассировки Trace и Debug. Знакомые классы Trace и Debug по-прежнему широко используются, однако рекомендуется использовать класс TraceSource для новых команд трассировки, таких как TraceEvent и TraceData.
Классы Trace и Debug идентичны, за исключением того, что процедуры и функции класса Trace по умолчанию компилируются в сборки выпуска, а процедуры и функции класса Debug — нет.
Классы Trace и Debug предоставляют средства для мониторинга и исследования производительности приложения как во время разработки, так и после развертывания. Например, возможно использование класса Trace для отслеживания в развернутом приложении отдельных типов действий по мере их выполнения (например, создание новых подключений к базе данных) и последующего мониторинга производительности приложения.
Отладка и трассировка кода
Использование методов вывода класса Debug при разработке приложения позволяет отображать сообщения в окне вывода, доступном в интегрированной среде разработки Visual Studio. Вот несколько примеров:
Trace.WriteLine(«Hello World!») Debug.WriteLine(«Hello World!»)
System.Diagnostics.Trace.WriteLine(«Hello World!»); System.Diagnostics.Debug.WriteLine(«Hello World!»);
В каждом из этих примеров будет отображаться сообщение Hello World! в окне вывода при запуске приложения в отладчике.
Это позволяет отлаживать приложения и оптимизировать их производительность на основе их поведения в среде тестирования. Возможна отладка приложения при отладочном построении с включенным условным атрибутом Debug, что позволяет получать все выходные данные отладки.
Когда приложение будет готово к выпуску, можно скомпилировать построение выпуска, не включая условный атрибут Debug, чтобы код отладки не включался компилятором в конечный исполняемый файл. Дополнительные сведения см. в разделе Практическое руководство. Условная компиляция с использованием атрибутов Trace и Debug. Дополнительные сведения о различных конфигурациях сборок для приложения см. в разделе Компиляция и сборка.
С помощью методов класса Trace можно отслеживать выполнение кода в установленном приложении. Процессом и масштабом трассировки можно управлять. Для этого добавьте в код переключатели трассировки. Так вы сможете отслеживать состояние приложения в рабочей среде.
Это особенно важно в бизнес-приложениях, которые используют различные компоненты, выполняющиеся на нескольких компьютерах. Вы можете управлять порядком использования переключателей после развертывания с помощью файла конфигурации. Дополнительные сведения см. в разделе Практическое руководство. Создание, инициализация и настройка переключателей трассировки.
При разработке приложения, для которого предполагается использовать трассировку, в код приложения обычно включают сообщения трассировки и отладки. Когда все будет готово для развертывания приложения, можно скомпилировать сборку выпуска без включения условного атрибута Debug. Тем не менее можно включить условный атрибут Trace, чтобы компилятор включил код трассировки в исполняемый файл. Дополнительные сведения см. в разделе Практическое руководство. Условная компиляция с использованием атрибутов Trace и Debug.
Этапы трассировки кода
Существует три этапа трассировки кода.
- Инструментирование — добавление кода трассировки в приложение.
- Трассировка — код трассировки записывает сведения в указанный целевой объект.
- Анализ — оценка сведений трассировки для определения и понимания проблем в приложении.
Во время разработки все методы вывода трассировки и отладки записывают сведения в окне вывода Visual Studio по умолчанию. В развернутом приложении эти методы записывают сведения трассировки в указанные целевые объекты. Дополнительные сведения об указании целевого объекта выходных данных трассировки и отладки см. в разделе Прослушиватели трассировки.
Ниже приведен полный обзор основных шагов, обычно выполняемых при использовании трассировки для анализа и исправления возможных проблем в развертываемом приложении. Дополнительные сведения о выполнении этих шагов см. по соответствующей ссылке.
Использование трассировки в приложении
- Обдумайте, какие выходные данные трассировки вы хотите получить на месте после развертывания приложения.
- Создайте набора переключателей. Дополнительные сведения см. в статье How to: Configure Trace Switches (Настройка переключателей трассировки).
- Добавьте операторы трассировки в код приложения.
- Определите, где вы хотите получать выходные данные трассировки, и добавьте соответствующие прослушиватели. Дополнительные сведения см. в разделе Создание и инициализация прослушивателей трассировки.
- Выполните тестирование и отладку своего приложения и содержащегося в нем кода трассировки.
- Скомпилируйте приложение в исполняемый код с помощью одной из следующих процедур.
- Используйте меню Сборка со страницей Отладка диалогового окна Страницы свойств в обозревателе решений. Используйте эту процедуру при компиляции в Visual Studio. — или —
- Используйте директивы компилятора Trace и Debug для компиляции из командной строки. Дополнительные сведения см. в разделе Условная компиляция с использованием атрибутов Trace и Debug. Используйте эту процедуру при компиляции из командной строки.
- Если во время выполнения возникает проблема, включите соответствующий переключатель трассировки. Дополнительные сведения см. в разделе Настройка переключателей трассировки. Код трассировки записывает сообщения трассировки в указанный целевой объект, например в экран, текстовый файл или журнал событий. Целевой объект определяется типом прослушивателя, который вы включили в Trace.Listeners коллекцию.
- Проанализируйте сообщения трассировки, чтобы обнаружить и понять проблемы в приложении.
Инструментирование трассировки и распределенные приложения
При создании распределенного приложения тестирование приложения способом, которым оно будет использоваться, может показаться сложной задачей. Немногие группы разработчиков имеют возможность протестировать все возможные сочетания операционных систем или веб-браузеров (в том числе все параметры локализованных версий) или смоделировать большое число пользователей, которые будут обращаться к приложению одновременно. В таких обстоятельствах невозможно протестировать реакцию распределенного приложения на большую нагрузку, различные настройки и разные действия конечных пользователей. Кроме того, многие компоненты распределенного приложения не имеют пользовательского интерфейса, с которым можно взаимодействовать напрямую или просматривать активность этих компонентов.
Однако вы можете компенсировать это, позволив распределенным приложениям описывать определенные события, интересующие системных администраторов, особенно то, что работает неправильно, путем инструментирования приложения, то есть путем размещения операторов трассировки в стратегически важных местах кода. Затем, если во время выполнения произойдет что-либо неожиданное (например, слишком большое время отклика), можно будет определить вероятную причину.
Операторы трассировки помогают избежать сложностей проверки исходного кода, его изменения, перекомпиляции, а также попыток воспроизвести ошибку времени выполнения в среде отладки. Помните, что можно инструментировать приложение не только для отображения ошибок, но также для наблюдения за производительностью.
Стратегическое размещение операторов трассировки
Необходимо уделить особое внимание размещению операторов трассировки для использования во время выполнения. Вы должны учесть, какие сведения трассировки скорее всего потребуются в развертываемом приложении, чтобы в полной мере охватить все вероятные сценарии трассировки. Поскольку приложения, использующие трассировку, могут быть самыми разными, не существует общих принципов стратегического размещения трассировки. Дополнительные сведения о размещении операторов трассировки см. в разделе Практическое руководство. Добавление операторов трассировки в код приложения.
Выходные данные трассировки
Выходные данные трассировки собираются объектами, которые называются прослушивателями. Прослушиватель — это объект, который принимает выходные данные трассировки и записывает их в устройство вывода (обычно это окно, журнал или текстовый файл). При создании прослушиватель трассировки, как правило, добавляется к коллекции Trace.Listeners, что позволяет ему получать все выходные данные трассировки.
Сведения трассировки всегда записываются как минимум в целевой объект вывода Trace по умолчанию, DefaultTraceListener. Если по каким-то причинам объект DefaultTraceListener был удален, а другие прослушиватели не были добавлены в коллекцию Listeners, сообщения трассировки получены не будут. Дополнительные сведения см. в разделе прослушиватели трассировки.
В следующей таблице перечислены шесть членов класса Debug и методов класса Trace, которые записывают сведения трассировки.
Assert | Указанный текст; если ничего не указано, то стек вызовов. Выходные данные записываются только в том случае, если условие, указанное в качестве аргумента в Assert инструкции, имеет Assert . |
Fail | Указанный текст; если ничего не указано, то стек вызовов. |
Write | Указанный текст. |
WriteIf | Указанный текст, если удовлетворено условие, заданное в качестве аргумента в WriteIf инструкции. |
WriteLine | Заданный текст и возврат каретки. |
WriteLineIf | Указанный текст и символ возврата каретки, если удовлетворяется условие, заданное в качестве аргумента в WriteLineIf инструкции. |
Все прослушиватели в коллекции Listeners получают сообщения, описанные в приведенной выше таблице, но предпринимаемые ими действия зависят от вида прослушивателя, получившего сообщения. Например, DefaultTraceListener при получении Fail или неудачном Assert уведомлении диалогового окна отображается диалоговое окно утверждения, но TextWriterTraceListener просто записывает выходные данные в свой поток.
Можно создавать пользовательские результаты путем реализации собственного прослушивателя. Пользовательский прослушиватель трассировки может, например, отображать сообщения в окне сообщения или подключаться к базе данных для добавления сообщений в таблицу. Все пользовательские прослушиватели должны поддерживать шесть вышеупомянутых методов. Дополнительные сведения о создании прослушивателей, определяемых разработчиками, см. в описании TraceListener в справочнике по .NET Framework.
Write Методы и WriteLine всегда записывают указанный текст. Assert , WriteIf и WriteLineIf требуется логический аргумент, который определяет, записывается ли заданный текст в заданный текст; если выражение имеет Assert (для WriteIf и WriteLineIf ), либо WriteIf (для Assert ). Fail Метод всегда записывает указанный текст. Дополнительные сведения см. в разделе Практическое руководство. Добавление операторов трассировки в код приложения и в справочнике по .NET Framework.
Проблемы безопасности
Если не отключить трассировку и отладку перед развертыванием приложения ASP.NET, то приложение может отображать сведения о себе, которые могут использоваться вредоносными программами. Дополнительные сведения см. в разделах Практическое руководство. Условная компиляция с использованием атрибутов Trace и Debug, Компиляция и сборка и Практическое руководство. Создание, инициализация и настройка переключателей трассировки. Отладка также настраивается через службы IIS.
См. также
- Trace
- TraceSource
- Контракты для кода
- Типы проектов C#, F# и Visual Basic
- Практическое руководство. Добавление операторов трассировки в код приложения
- Практическое руководство. Условная компиляция с использованием атрибутов Trace и Debug
- Практическое руководство. Создание, инициализация и настройка переключателей трассировки
- Практическое руководство. Создание и инициализация источников трассировки
- Практическое руководство. Использование TraceSource и фильтров с прослушивателями трассировки
- Прослушиватели трассировки
- Переключатели трассировки
Источник: learn.microsoft.com
Как русифицировать робот-пылесос Xiaomi самому и сложно ли настроить русский язык
Большая часть выпускаемых сейчас роботов-пылесосов от Xiaomi поддерживает голосовые уведомления о текущем режиме работы. А в дополнение к этому его можно настроить на выполнение пользовательским команд через ассистента, установленного в смартфоне (Алиса от Яндекса или Google Assistant).
И всё, что для этого понадобится — это установить специальное ПО на телефон или компьютер и прошить робот-пылесос. Это позволит также добавлять собственные голосовые уведомления, например, наделив пылесос голосом какого-нибудь киногероя.
Функция практического применения как такового не имеет, но если пользователю предоставляется такая возможность, то почему бы ею не воспользоваться?
Для чего нужно русифицировать пылесос
Это необходимо для того, чтобы в приложении для смартфона интерфейс настройки робота-пылесоса отображался на русском языке.
В дополнение к этому:
- голосовые уведомления о текущем статусе робот-пылесос также будет «проговаривать» на русском языке;
- у пользователя появится возможность на русском языке отдавать голосовые команды пылесосу.
Также нужно учесть, что если приобретенный робот-пылесос выпущен для китайского потребительского рынка, то по умолчанию в нем будут доступны всего 2 языка: китайский и английский. Включить голосовые уведомления на русском через фирменное приложение не получится.
Именно для таких случаев и потребуется перепрошивка. С её помощью можно добавить любую «озвучку» роботу, даже записать её самостоятельно.
Как русифицировать через штатное приложение
Для дистанционного управления, настройки, отслеживания статуса робота-пылесоса его необходимо синхронизировать со смартфоном. Для этого на телефон необходимо установить фирменное приложение Xiaomi для работы с «умной» техникой — Mi Home.
После — обязательно обновить прошивку до актуальной версии (программа все сделает автоматически, необходимо лишь предоставить запрашиваемые разрешения). Затем в параметрах робота-пылесоса появится возможность включить голосовое управление, а также выбрать язык команд (в данном случае — русский).
После этого смартфон скачает необходимый голосовой пакет, сохранит его в памяти пылесоса. По умолчанию используется «голос» Google Assistant.
Но, при необходимости, его можно заменить на любой другой через специальную программу.
Что нужно для перепрошивки
Предусмотрено 2 варианта перепрошивки робота-пылесоса:
- При помощи смартфона. Предпочтительный вариант, так как он попросту проще. Разберется даже неопытный пользователь.
- Через ПК. Компьютер понадобится также в том случае, если пользователь желает создать собственный список голосовых уведомлений (можно использовать набор любых звуков).
Прошивка при помощи смартфона
Предварительно нужно скачать и установить на смартфон приложение XVacuum Firmware. Оно бесплатное, доступно в магазине приложение AppStore и GooglePlay, а также на официальном сайте разработчика.
Данная программа позволяет создать прямо на телефоне виртуальный прокси-сервер, с которого пылесос скачивает обновления. Что это дает?
Можно подменить стандартный голосовой пакет на любой другой. В самом пылесосе нет функции проверки загружаемых пакетов.
То есть установится любой, главное чтобы у него был совместимый формат аудиофайлов (робот-пылесос Xiaomi «понимает» WAV-файлы).
Итак, пошагово процесс перепрошивки выглядит следующим образом:
- В папку sdcard на телефоне нужно поместить файл голосового пакета с разрешение .pkg, который планирует установить пользователь. Именно этот формат «принимает» робот-пылесос.
- Далее нужно сбросить настройки Wi-Fi робота-пылесоса. Для этого нужно на 10 – 15 секунд нажать кнопку «Домой» на нём (которая отвечает за автоматическую установку пылесоса на зарядную базу). Держать клавишу необходимо до звукового сигнала.
- Перезагрузка занимает секунд 20 – 30. После этого на смартфоне необходимо включить поиск Wi-Fi-сетей, выбрать для подключения точку доступа самого робота-пылесоса (именуется как «Xiaomi-XXXXXXX», где XXXXXXX — сторонние символы). Пароль вводить не потребуется.
- Дождаться синхронизации устройств. После — запустить на смартфоне ранее установленную программу XVacuum Firmware. Выбрать через файловый менеджер пакет .pkg, сохраненный в sdcard.
- Нажать «Trying». Программа выдаст предупреждение о том, что во время прошивки не следует отключать Wi-Fi и нажимать какие-либо кнопки на самом роботе-пылесосе. Просто тапнуть на «ОК», запустится перепрошивка.
- После загрузки голосового пакета на пылесос он автоматически перезагрузится.
- Далее открыть приложение Mi Home, перейти в настройки робота-пылесоса.
- Открыть пункт «Голосовые уведомления», включить его, выбрать в качестве языка по умолчанию для них английский.
Всё, после этого робот-пылесос будет сопровождать все свои действия голосовыми уведомлениями из установленного пользователем пакета.
В памяти пылесоса может быть сохранен только один голосовой пакет. То есть для установки нового нужно повторить процедуру прошивки с помощью XVacuum Firmware.
Нужно учесть, что прошивка пройдет успешно только в том случае, если файл .pkg помещен в папку sdcard на телефоне (то есть внутренняя память телефона). Существует также возможность выполнить перепрошивку и без обязательного сброса настроек Wi-Fi. Но в этом случае нужно вручную ввести «токен» устройства в приложении.
Установка новой прошивки при помощи компьютера
Для прошивки пылесоса с помощью ПК потребуется приложение WIN-MIROBO. Скачать её можно бесплатно на сайте разработчика. Устанавливать его не нужно, достаточно распаковать скачанный архив в корень диска С (где установлена Windows). В нем содержится также папка Voicepack — в неё заблаговременно нужно скопировать все .pkg файлы (наборы голосовых уведомлений).
Пошагово процесс прошивки следующий:
- Выполнить сброс настроек Wi-Fi робота-пылесоса. Не сопрягать его со смартфоном.
- Подключить ПК к точке доступа пылесоса. Да, на компьютере обязательно должен быть установлен модуль Wi-Fi. Подключение по кабелю недоступно, так как у робота нет никаких портов или коннекторов для подключения.
- Запустить программу (файл win-mirobo.bat). Откроется командная строка, автоматически включится поиск совместимого для прошивки робота-пылесоса.
- После — появится список доступных пакетов для голосовых уведомлений. Пользователю лишь нужно выбрать необходимый (ввести цифру) и нажать Enter. Сразу запустится запись файла во внутреннюю память пылесоса. По завершению операции терминал автоматически закроется (иногда для этого нужно нажать Esc на клавиатуре).
- Далее робота-пылесоса нужно вручную перезагрузить. То есть зажать на 3 – 5 секунд кнопку включения, снова её нажать.
- После — выполнить сопряжение с телефоном через Mi Home. В настройках робота-пылесоса, в разделе «Голосовые уведомления» указать «Английский».
Голосовой пакет в памяти пылесоса остается даже после обновления прошивки через Mi Home.
Как создавать собственные пакеты голосовых уведомлений для робота
Для этого потребуется скачать приложение wav-pkg. Оно конвертирует аудио-файлы в формат WAV, а после — упаковывает их в архив .pkg, который «понимает» робот-пылесос. Нужно лишь учесть, что при конвертации файлы обрезаются до длины оригинальных команд.
Для создания голосового пакета необходимо:
- распаковать скачанную программу в корень диска С;
- скопировать в папку voicepack аудио-файлы, которые будут использоваться для уведомлений;
- запустить программу wav-pkg (через bat-файл в распакованной папке);
- откроется окно командной строки, запустится автоматическая конвертация файлов и формирование пакета голосовых уведомлений
Архив помещается также в папку Voicepack. Затем его можно переместить в WIN-MIROBO или скопировать на смартфон и «залить» в память робота-пылесоса.
Где можно найти дополнительные пакеты голосовых уведомлений. Пользователи их часто выкладывают на тематических форумах, а также на сайте сообщества Xiaomi.
Компания Сяоми не запрещает пользователям обмениваться такими данными. Более того, установка голосового пакета вышеуказанными способами не нарушает условия гарантийного обслуживания.
Какую прошивку рекомендуется выбрать
Производитель выложил в открытый доступ исходный код прошивки для большинства выпущенных роботов-пылесосов. Естественно, что многие пользователи, разбирающиеся в программировании, стали выпускать собственные «кастомные» сборки, добавляя в неё дополнительные функции или сразу интегрируя в них сторонние голосовые пакеты.
На робот-пылесос Xiaomi можно даже установить Linux-дистрибутив Ubuntu (только базовые компоненты, без графической оболочки). Теоретически это позволяет его использовать даже как удаленный сервер. Зачем это необходимо? Ответить сложно. Но интересен сам факт, что на пылесос можно устанавливать полноценную операционную систему — удивляет.
Но самой стабильной является штатная прошивка, установленная через Mi Home. Именно её пользователям и рекомендуется использовать.
Настройка пылесоса после установки новой прошивки
Новые прошивки также можно устанавливать через XVacuum Firmware (WIN-MIROBO для этого не подойдет, эта программа может использоваться только для установки дополнительных голосовых пакетов на устройство). После этого настройка робота выполняется привычным образом — через Mi Home. Для сопряжения также можно использовать и альтернативные программы, по типу Roborock. Её также можно бесплатно скачать с магазина приложений GooglePlay или AppStore.
Для сопряжения через Mi Home необходимо:
- Запустить приложение, ввести логин и пароль от аккаунта Xiaomi. Если пользователь его ранее не создавал, то сперва нужно зарегистрироваться (через номер мобильного).
- На главном экране Mi Home тапнуть на ярлык с изображением «+», выбрать «Добавить новое устройство».
- Программа запустит автоматический поиск совместимых устройств поблизости. Если это заканчивается ошибкой, то нужно убедиться, что на телефоне включен GPS и Bluetooth, а также приложению Mi Home предоставлено разрешение для определения местоположения пользователя.
- Из перечня обнаруженных устройств выбрать робот-пылесос.
- Ввести пароль от «домашней» Wi-Fi-сети. Это необходимо для включения функции облачного хранения настроек.
- Дождаться окончания сопряжения.
Если программа запросит разрешение для установки обновлений в фоне для данного устройства — следует запретить. В противном случае кастомная прошивка будет заменена на штатную.
Как включить и настроить голосовое управление
Чтобы управлять голосовыми командами роботом-пылесосом потребуется:
- На смартфон установить Mi Home, синхронизировать приложение с пылесосом.
- Установить на смартфон приложение Алиса.
- Запустить программу Яндекс, авторизоваться.
- Выбрать «Умный дом», выбрать — «Добавить». Из представленного перечня указать «Xiaomi».
- Выполнить авторизацию через профиль Xiaomi (который используется для входа в приложение Mi Home). Примерно через 2 – 3 минуты в списке «Умный дом» появятся все совместимые устройства, которыми можно управлять голосовыми командами.
- Открыть приложение Mi Home. Переименовать робот-пылесос, используя только кириллицу.
После этого можно управлять через яндексовую Алису пылесосом. В приложении также будет указан список всех поддерживаемых команд. Их можно отредактировать на свое усмотрение, заблокировать, приостановить выполнение и так далее.
После настройки голосового управления через Алису команды можно произносить также в Яндекс.Станцию (если колонка имеется). У данного девайса чувствительность микрофонов на порядок лучше, чем в смартфоне, так что управлять с его помощью действительно удобней.
Возможные проблемы и как их решить
В принципе, каких-либо проблем не должно возникнуть, если четко следовать вышеуказанным инструкциям по настройке робота-пылесоса. Но Mi Home — не самая «стабильная» программа, если верить отзывам самих пользователей. Она нередко зависает или же прекращает работу прямо во время настройки, сопряжения робота со смартфоном. Ничего критического в этом нет, но пользователю следует знать, что стоит предпринимать в той или иной ситуации:
- Если прошивка (как при помощи телефона, так и ПК) заканчивается ошибкой, то в большинстве случаев помогает банальная перезагрузка пылесоса. То есть его достаточно выключить и включить при помощи кнопки на самом корпусе.
- Если при использовании ПК программа WIN-MIROBO сразу закрывается после запуска, то рекомендуется проверить сетевые настройки и добавить подключенный Wi-Fi в домашнюю сеть. В противном случае задействует брандмауэр, который блокирует обмен данными с «неизвестными» устройствами, для подключения к которым не требуется вводить пароль.
- Через некоторое время настройки установленного голосового пакета сбрасываются до заводских или уведомления просто не воспроизводятся. Такое происходит только после сброса Wi-Fi робота-пылесоса. Иногда — после обновления прошивки через Mi Home. В этом случае рекомендуется выполнить его перепрошивку повторно.
Итого, русифицировать робот-пылесос от Xiaomi достаточно просто. Удобно, что XVacuum Firmware и WIN-MIROBO позволяют это сделать даже в том случае, если техника выпущена для продажи на китайском потребительском рынке (их покупают, так как они стоят дешевле «глобальных» версий). Вся процедура занимает всего 5 – 10 минут.
Полезное видео
Просмотрев видео вы узнаете как настроить русский язык на роботе-пылесосе Xiaomi:
Источник: obzorok.com
Трассировка
С помощью трассировки можно просматривать сообщения из работающего приложения.
Чтобы получить информацию о работающем приложении, его можно запустить в отладчике. Во время отладки приложение можно выполнять пошагово и помещать точки останова на определенных строках и по достижению определенных условий. Проблема, связанная с отладкой, состоит в том, что программа с рабочим кодом может вести себя иначе, чем программа с отладочным кодом.
Например, когда выполнение программы прерывается в точке останова, другие потоки приложения также приостанавливаются. Кроме того, в рабочей сборке вывод компилятора оптимизирован, и потому могут проявляться другие эффекты. Поэтому существует потребность в получении информации и от рабочей сборки. Трассировочные сообщения записываются как отладочным, так и рабочим кодом.
Ниже описан сценарий, демонстрирующий пользу трассировки. После того, как приложение развернуто, оно успешно выполняется на одной системе, в то время как на другой системе периодически возникают проблемы. После включения подробной трассировки система с проблемами предоставит детальную информацию о том, что происходит внутри приложения. Система, работающая без проблем, поддерживает трассировку, сконфигурированную только на перенаправление сообщений об ошибках в систему протоколирования событий Windows. Критичные ошибки просматриваются системным администратором.
Накладные расходы, связанные с трассировкой, очень невелики, потому что уровень трассировки конфигурируется только при необходимости.
Архитектура трассировки состоит из четырех основных частей:
Источник (source)
Источник информации трассировки. Вы используете его для отправки трассировочной информации.
Переключатель (switch)
Определяет уровень информации для протоколирования. Например, можно запрашивать только информацию об ошибках или детальную многословную информацию.
Слушатели (listener)
Определяют, куда должны быть записаны сообщения трассировки.
Фильтры (filter)
Слушатели могут иметь присоединенные фильтры (filter). Фильтр определяет, как трассировочные сообщения должны быть записаны слушателем. Таким образом для одного и того же источника можно иметь различные слушатели, которые пишут различные уровни информации.
Класс TraceSource использует переключатель для определения протоколируемой информации. У TraceSource есть коллекция TraceListenerCollection, ассоциированная с ним, куда отправляются сообщения трассировки. Коллекция состоит из объектов TraceListener, и каждый слушатель имеет подключенный к нему TraceFilter.
Многие технологии .NET используют источники трассировки, которые понадобится просто включить, чтобы увидеть, что происходит. Например, в WPF определяет помимо прочих источники с именами System.Windows.Data, System.Windows.RoutedEvent, System.Windows.Markup, System.Windows.Media.Animation. Однако для включения трассировки WPF необходимо не только сконфигурировать слушателей, но также установить внутри ключа реестра НКЕY_CURRENT_USERSoftwareMicrosoftTracingWPF новый ключ DWORD по имени ManagedTracing со значением 1. Классы из пространства имен System.Net используют источник трассировки System.Net, а WCF — источники трассировки System.ServiceModel и System.ServiceModel.MessageLogging.
Источники трассировки
Трассировочные сообщения записываются с помощью класса TraceSource. Трассировка требует установки флага Trace компилятора. В проекте Visual Studio флаг Trace по умолчанию установлен для отладочных и рабочих сборок, но это можно изменить через свойства Build (Сборка) проекта.
При записи трассировочных сообщений класс TraceSource использовать труднее по сравнению с классом Trace, однако он предлагает больше опций. Для записи трассировочных сообщений потребуется создать экземпляр TraceSource. В конструкторе должно быть определено имя источника трассировки. Метод TraceInformation() пишет информационное сообщение в вывод трассировки. Вместо простой записи информационных сообщений метод TraceEvent() требует значения перечисления TraceEventType, которое определяет тип трассировочного сообщения.
TraceEventType.Error указывает, что сообщение является сообщением об ошибке. Определив переключатель трассировки, можно видеть только сообщения об ошибках. Второй аргумент метода TraceEvent() требует идентификатора. Идентификатор может использоваться внутри самого приложения.
Например, идентификатор 1 может служить для обозначения входа в метод, а 2 — для выхода из метода. Метод TraceEvent() перегружен, поэтому TraceEventType и идентификатор — это единственные обязательные параметры.
В третьем параметре перегруженного метода можно передать сообщение, записанное в трассировочную информацию. TraceEvent() также поддерживает передачу форматной строки с любым количеством параметров, подобно тому, как это делается в Console.WriteLine(). Метод Transformation() не делает ничего помимо вызова TraceEvent() с идентификатором 0. Transformation() — лишь упрощенная версия TraceEvent().
В методе TraceData() можно передать вместо сообщения любой объект, например, экземпляр исключения. Чтобы убедиться, что данные записаны слушателями и не остались в памяти, необходимо выполнить Flush(). Если источник больше не нужен, можно вызвать метод Close(), который закроет все слушатели, ассоциированные с источником трассировки. Метод Close() также вызывает Flush().
internal static TraceSource trace = new TraceSource(«MyConsoleApplication»); static void TraceSourceDemo1()
Внутри приложения можно использовать различные источники трассировки. Для различных библиотек имеет смысл определить разные источники, чтобы для разных частей приложения можно было включать различные уровни трассировки. Чтобы использовать источник трассировки, вы должны знать его имя. Обычно в качестве такого имени используется имя сборки.
Перечисление TraceEventType, значение которого передается в качестве аргумента TraceEvent(), определяет следующие уровни для указания серьезности проблемы: Verbose, Information, Warning, Error и Critical. Уровень Critical определяет фатальную ошибку или крах приложения, a Error — восстановимую ошибку. Сообщения трассировки на уровне Verbose предоставляют детализированную отладочную информацию.
TraceEventType также определяет уровни действия Start, Stop, Suspend и Resume. Эти уровни определяют временные события внутри логической операции. В приведенном виде код не отображает никаких трассировочных сообщений, поскольку переключатель, ассоциированный с источником трассировки, выключен.
Переключатели трассировки
Для включения или отключения трассировочных сообщений можно сконфигурировать переключатель трассировки. — это классы, унаследованные от абстрактного базового класса Switch. Производными классами являются BooleanSwitch, TraceSwitch и SourceSwitch. Класс BooleanSwitch может быть включен и выключен, а другие два предоставляют ранговый уровень. Один ранг определен перечислением SourceLevels.
Чтобы сконфигурировать переключатели трассировки, необходимо знать значения, ассоциированные с перечислением SourceLevels. Класс SourceLevels определяет значения Off, Error, Warning, Info и Verbose.
Переключатель трассировки можно ассоциировать программно, установив свойство Switch объекта TraceSource. Здесь ассоциированный переключатель типа SourceSwitch имеет имя MyConsoleApplication и уровень Verbose:
internal static TraceSource trace = new TraceSource(«MyConsoleApplication») < Switch = traceSwitch >; internal static SourceSwitch traceSwitch = new SourceSwitch(«MyConsoleApplication») < Level = SourceLevels.Verbose >;
Установка уровня Verbose означает, что записываться должны все трассировочные сообщения. Если установить значение Error, то будут фиксироваться только сообщения об ошибках. Установка значения Information означает, что должны записываться сообщения об ошибках, предупреждающие и информационные сообщения. Трассировочные сообщения можно просматривать в окне Output (Вывод) отладчика.
Обычно уровень переключателя нужно изменять не перекомпиляцией приложения, а внесением изменений в конфигурацию. Трассировка может быть настроена в элементе конфигурационного файла приложения. Источник трассировки определен элементом , который является дочерним для . Имя источника в конфигурационном файле должно в точности соответствовать имени источника в коде. Здесь источник трассировки имеет переключатель типа System.Diagnostics.SourceSwitch, ассоциированный с именем MySourceSwitch. Сам переключатель определен в разделе и уровень переключателя установлен в verbose:
Теперь можно изменить уровень трассировки, просто изменяя конфигурационный файл, без необходимости перекомпиляции кода. После изменения конфигурационного файла приложение должно быть перезапущено.
Сейчас трассировочные сообщения пишутся в окно Output отладчика Visual Studio. Добавляя слушателей трассировки, это можно изменить.
Слушатели трассировки
По умолчанию трассировочная информация пишется в окно Output отладчика Visual Studio. Изменяя конфигурацию приложения, этот вывод можно направить в другое место. Куда будет записан вывод трассировки — зависит от слушателей. Слушатель наследуется от абстрактного базового класса TraceListener.
В .NET поставляется несколько слушателей трассировки для записи событий трассировки в различные места. Для файловых слушателей трассировки используется базовый класс TextWriterTraceListener, а также производные классы XmlWriterTraceListener — для записи XML-файлов и DelimitedListTraceListener — для записи файлов с разделителями. Запись в журнал событий осуществляется с помощью либо EventLogTraceListener, либо EventProviderTraceListener.
Слушатель EventProviderTraceListener использует формат файла событий, который появился в Windows Vista. Можно также комбинировать веб-трассировку с трассировкой System.Diagnostics и записывать сведения в файл trace.axd.
.NET Framework предлагает множество слушателей, в которые может быть записана трассировочная информация. В случае если слушатели не отвечают существующим требованиям, можно написать собственный слушатель, наследуя специальный класс от базового класса TraceListener. С помощью такого специального слушателя можно, например, записывать трассировочную информацию в веб-службу, отправлять сообщения на мобильный телефон и т.д.
Слушатель трассировки можно сконфигурировать программно, создав объект слушателя и присвоив его свойству Listeners класса TraceSource. Однако обычно намного интереснее просто изменить конфигурацию, чтобы определить другой слушатель.
Слушатели можно сконфигурировать как дочерние элементы элемента . В этом случае определяется тип класса слушателя и с помощью initializeData указывается направление вывода слушателя. В показанной ниже конфигурации определяются слушатели XmlWriterTraceListener для записи в файл demotrace.xml и DelimitedListTraceListener для записи в файл demotrace.txt:
С таким слушателем можно указывать дополнительную информацию, которая должна быть записана в журнал трассировки. Эта информация задается в XML-атрибуте traceOutputOptions и определена перечислением TraceOptions. Доступными значениями перечисления являются Callstack, DateTime, LogicalOperationStack, ProcessId, Threadld и None. В XML-атрибут traceOutputOptions можно добавлять сразу несколько необходимых значений, разделяя их запятыми, как в слушателе delimitedListener из предыдущего примера.
Источник: professorweb.ru