Jump to content
iT4iT.CLUB

Search the Community

Showing results for tags 'cmd'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Operating systems
    • UNIX
    • Mac OS
    • Windows
  • Monitoring System
    • Zabbix
  • Network hardware
    • Cisco Systems
    • MikroTik
    • Ubiquiti Networks
  • Microcontrollers
    • Arduino

Blogs

There are no results to display.

There are no results to display.

Categories

  • Zabbix
    • Templates
  • Arduino
    • Espressif Systems
    • Libraries
  • UNIX

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Found 4 results

  1. Просмотреть файл [esp8266] Библиотека CMD, реализует настройку микроконтроллера и управление вашей программой через терминал. Основная задача библиотеки, это прием пользовательских команд через UART интерфейс, их обработка и выполнение пользовательского кода, связанного с той или иной командой. Данная библиотека позволяет реализовать: Управление микроконтроллером Любую настройку, будь то WiFi, другие библиотеки или часть Вашей программы Вызывать Ваши задачи (функции) из терминала по команде и передавать им требуемые параметры Использовать контроллер в качестве шлюза между датчиками и программами на PC Внимание: любая команда, передаваемая в терминал обязана заканчиваться символом перевода строки "\n". Подключение библиотеки #include <cmd.h> Инициализация объекта, к которому мы будем обращаться для добавления команд. В качестве параметра объекту необходимо передать указатель на объект Serial или любой другой схожий по типу интерфейс. cmd command(&Serial); В функции Setup описываем какие команды требуется обрабатывать. Например, по команде "test" вызывать пользовательскую функцию с именем "myFunctionName". Имя пользовательской функции может быть абсолютно любым. void Setup() { Serial.begin(115200); command.add("test", myFunctionName); } Пользовательская функция будет вызываться каждый раз, когда по интерфейсу Serial поступит команда "test". Если команда будет передана с параметрами, то эти параметры будут переданы в качестве аргументов пользовательской функции. В функции loop должна находится команда вызова обработчика. void loop() { command.handleEvents(); } Пользовательская функция обязана соответствовать ряду требований: Не возвращать никакого результата (быть объявленной с типом void) Принимать в качестве первого аргумента переменную с типом byte в которой будет храниться число равное количеству переданных параметров Принимать в качестве второго параметра переменную с типом char** в которой будет храниться указатель на массив со всеми указателями (char*) на переданные параметры void myFunctionName(byte argc, char** argv) { /* ... */ } Функция всегда должна иметь такой вид, даже если не подразумевается, что ей будут передаваться какие-либо параметры. Чтобы перебрать все переданные параметры и вывести их в консоль, можно воспользоваться следующим примером void myFunctionName(byte argc, char** argv) { if (0 < argc) { for (uint8_t i = 0; i < argc; i++) { Serial.printf("%i. %s\n", i, argv[i]); } } } Пример вызова пользовательской функции без параметров и с ними # test No parameter was passed # test p1 p2 p3 p4 p5 0. p1 1. p2 2. p3 3. p4 4. p5 Помните, что параметры представлены в виде указателей и работать с ними нужно как с обычными переменными не получится т.к указатель содержит не значение переменной (переданный параметр), а указатель на ту область памяти микроконтроллера в которой это значение находится. Чтобы сравнить два значения, например, параметр под индексом 0 (идет первым в списке) с каким-либо значением в программе, воспользуйтесь функцией strcmp, которая возвращает целочисленное значение, указывающее на лексическое расхождение строк. Если строки равны, то возвращаемое значение равно 0. if (!strcmp(argv[0], "wifi")) { Serial.println(F("Первый аргумент WiFi")); } else { Serial.println(F("Первый аргумент НЕ WiFi!!!")); } Для копирования значения указателя в другую переменную с типом char можно воспользоваться функцией strcpy char myVar[20]; strcpy(myVar, argv[0]); if (myVar == "123456") { Serial.prinln(F("ok")); } Также можно обернуть указатель объектом String и получить весь функционал этого объекта, который будет содержать значение параметра String param1(argv[0]); // String param1 = argv[0]; Serial.printf("argv[0] length: %i\n", param1.length()); Serial.printf("argv[0] is integer?: %s\n", param1.toInt() ? "YES" : "NO"); if (param1 == "qwerty") { Serial.println(F("Hello QWERTY!")); } С библиотекой идут несколько примеров, в том числе и пример конфигурации WiFi в режиме STA. Автор Kitsum Добавлен 05.12.2018 Категория Библиотеки  
  2. Version 1.0

    13 downloads

    Основная задача библиотеки, это прием пользовательских команд через UART интерфейс, их обработка и выполнение пользовательского кода, связанного с той или иной командой. Данная библиотека позволяет реализовать: Управление микроконтроллером Любую настройку, будь то WiFi, другие библиотеки или часть Вашей программы Вызывать Ваши задачи (функции) из терминала по команде и передавать им требуемые параметры Использовать контроллер в качестве шлюза между датчиками и программами на PC Внимание: любая команда, передаваемая в терминал обязана заканчиваться символом перевода строки "\n". Подключение библиотеки #include <cmd.h> Инициализация объекта, к которому мы будем обращаться для добавления команд. В качестве параметра объекту необходимо передать указатель на объект Serial или любой другой схожий по типу интерфейс. cmd command(&Serial); В функции Setup описываем какие команды требуется обрабатывать. Например, по команде "test" вызывать пользовательскую функцию с именем "myFunctionName". Имя пользовательской функции может быть абсолютно любым. void Setup() { Serial.begin(115200); command.add("test", myFunctionName); } Пользовательская функция будет вызываться каждый раз, когда по интерфейсу Serial поступит команда "test". Если команда будет передана с параметрами, то эти параметры будут переданы в качестве аргументов пользовательской функции. В функции loop должна находится команда вызова обработчика. void loop() { command.handleEvents(); } Пользовательская функция обязана соответствовать ряду требований: Не возвращать никакого результата (быть объявленной с типом void) Принимать в качестве первого аргумента переменную с типом byte в которой будет храниться число равное количеству переданных параметров Принимать в качестве второго параметра переменную с типом char** в которой будет храниться указатель на массив со всеми указателями (char*) на переданные параметры void myFunctionName(byte argc, char** argv) { /* ... */ } Функция всегда должна иметь такой вид, даже если не подразумевается, что ей будут передаваться какие-либо параметры. Чтобы перебрать все переданные параметры и вывести их в консоль, можно воспользоваться следующим примером void myFunctionName(byte argc, char** argv) { if (0 < argc) { for (uint8_t i = 0; i < argc; i++) { Serial.printf("%i. %s\n", i, argv[i]); } } } Пример вызова пользовательской функции без параметров и с ними # test No parameter was passed # test p1 p2 p3 p4 p5 0. p1 1. p2 2. p3 3. p4 4. p5 Помните, что параметры представлены в виде указателей и работать с ними нужно как с обычными переменными не получится т.к указатель содержит не значение переменной (переданный параметр), а указатель на ту область памяти микроконтроллера в которой это значение находится. Чтобы сравнить два значения, например, параметр под индексом 0 (идет первым в списке) с каким-либо значением в программе, воспользуйтесь функцией strcmp, которая возвращает целочисленное значение, указывающее на лексическое расхождение строк. Если строки равны, то возвращаемое значение равно 0. if (!strcmp(argv[0], "wifi")) { Serial.println(F("Первый аргумент WiFi")); } else { Serial.println(F("Первый аргумент НЕ WiFi!!!")); } Для копирования значения указателя в другую переменную с типом char можно воспользоваться функцией strcpy char myVar[20]; strcpy(myVar, argv[0]); if (myVar == "123456") { Serial.prinln(F("ok")); } Также можно обернуть указатель объектом String и получить весь функционал этого объекта, который будет содержать значение параметра String param1(argv[0]); // String param1 = argv[0]; Serial.printf("argv[0] length: %i\n", param1.length()); Serial.printf("argv[0] is integer?: %s\n", param1.toInt() ? "YES" : "NO"); if (param1 == "qwerty") { Serial.println(F("Hello QWERTY!")); } С библиотекой идут несколько примеров, в том числе и пример конфигурации WiFi в режиме STA.
  3. Доверяй, но проверяй. Идея заключается в том, чтобы проверять антивирусом все загружаемые uTorrent клиентом файлы сразу после окончания закачки. Эта тема особенно актуальна если кроме Вас за компьютером обедаем ваш отпрыск, который не сильно озабочен тем, какую дрянь он может подцепить в сети при скачивании безобидного на вид контента. Я доверяю антивирусу Kaspersky, но подойдет любой другой поддерживающий управление с помощью консольных команд. Аналогично и Torrent клиент должен уметь выполнять эти команды по событию. Для управления антивирусом Касперского с помощью консольных команд используется исполняемый файл avp.com находящийся в корневом каталоге установленного антивируса. Список поддерживаемых команд Usage: avp.com <command> [options] command Specifies the command to be executed. HELP Show this help SCAN Start new scan UPDATE Update databases and optionally application modules ROLLBACK Rollback previously updated databases RENEW Renew product START Start specified task STOP Stop running task STATUS Show task status STATISTICS Show task statistics EXPORT Export settings IMPORT Import settings AcceptEULA Accept EULA and manage KSN agreement usage flag REPORT Export reports SHOWTM Show scan task manager EXIT Exit product TRACES Turn traces on/off, clear traces To get additional description of specific command use 'HELP <command>' syntax Examples: avp.com [ /? | HELP ] avp.com <command> /? avp.com HELP <command> avp.com HELP SCAN avp.com UPDATE /? Первым делом необходимо прописать корневой каталог антивируса в Переменные среды операционной системы, переменная Path. По умолчанию каталог установки находится на системном диске (по умолчанию C:\): x86 - C:\Program Files\Kaspersky Lab\<тип антивируса>\ x64 - C:\Program Files (x86)\Kaspersky Lab\<тип антивируса>\ Допустим используется 64-х разрядная операционная система с установленным бесплатным антивирусом от Касперского версии 16.0.1, полный путь будет выглядеть так C:\Program Files (x86)\Kaspersky Lab\Kaspersky Free 16.0.1\ Открываем свойства компьютера (горячие клавиши "Win" + "Pause") и переходим в раздел "Дополнительные параметры системы". Во вкладке "дополнительно" находятся настройки "Переменные среды". Добавляем в переменную Path полный путь до каталога антивируса определенный ранее. Ничего сложного, но, чтобы проверить правильность действий достаточно в Командной строке набрать avp.com help и в ответ получим список поддерживаемых команд. Осталось дело за малым. Идем в настройки uTorrent, Дополнительно -> Запуск программы. Сам клиент поддерживает следующий список параметров, которые можно передать запускаемому приложению: %F - имя загруженного файла (для торрентов с одним файлом) %D - папка сохранения файлов %N - название торрента %P - предыдущее состояние торрента %L - метка %T - трекер %M - строка статуса (как в колонке статуса) %I - hex-кодированный инфо-хеш %S - состояние торрента %K - вид торрента (одиночный|мульти) На мой взгляд, самый оптимальный вариант, это полная проверка каталога, в который была произведена закачка. В довесок проверяем оперативную память и разделы автозагрузки. Итоги проверки будем записывать в лог файл, это поможет в разборе полетов в будущем. Команда запуска будет выглядеть следующим образом: avp.com SCAN /R:"%HOMEDRIVE%\AVP.log" /MEMORY /STARTUP "%D" По умолчанию файл логов AVP.log будет сохранен в корень системного диска, но Вы можете изменить его на любой другой как это сделал я. Пробуем что нибудь скачать и смотрим на результат.
  4. Всем привет! И так, имеется компьютер, которому предоставлен доступ в интернет через proxy сервер. Для обычной работы в браузере этого вполне достаточно, но возникла ситуация когда потребовалось выпустить в интернет (по протоколу HTTP/HTTPS) приложение не имеющее сетевых настроек прокси. Первой попыткой было завернуть трафик через Proxifier, но из-за специфики работы программы через Java VM она потерпела фиаско. Конечно, можно и нужно было попробовать разобраться с JVM, но хотелось здесь и сейчас! Принято решение завернуть http/s трафик windows в proxy сервер. В состав Windows (начиная с 2000) включена утилита netsh предназначенная для конфигурации сетевых параметров. Утилита имеет функционал от настройки ip адресов до конфигурации IPSec, но нас интересует настройка службы WinHTTP. Для конфигурации WinHTTP через командную строку (cmd), последнюю необходимо запускать с правами администратора. Добавление общей записи о прокси-сервере netsh winhttp set proxy proxy-server="10.10.10.1:3128" Добавление записи о прокси-сервере с указанием конкретных протоколов netsh winhttp set proxy proxy-server="http=10.10.10.1:3128;https=10.10.10.1:3129" Добавление записи о прокси-сервере с указанием конкретных протоколов и списка исключений netsh winhttp set proxy proxy-server="http=10.10.10.1:3128;https=10.10.10.1:3129" bypass-list="*.example.com" Импорт настроек из IE netsh winhttp import proxy source=ie Просмотр текущей конфигурации netsh winhttp show Сброс настроек netsh winhttp reset proxy
×
×
  • Create New...