Отправить пакетную информацию на com-порт?

Я пытаюсь получить файл .bat для отправки данных моего процессора на com-порт, на котором находится мой arduino. Я пробовал несколько результатов Google (включая один с этого сайта), и все, что я нашел, просто... сотрет всю переменную, привязанную к com - порту. Arduino подключен к ЖК-дисплею (не совсем потому, что arduino microview, но в основном это так), который отображает переменные, которые я хочу, и работает так, как ожидалось, когда я помещаю данные в последовательный монитор вручную, но когда я запускаю что-либо, что должно отправлять информацию, все они становятся пустыми, когда у меня ничего нет в моем скетче это их очищает.

Файл получает данные так, как должен. Если я запущу это

wmic /namespace:\\root\wmi PATH MSAcpi_ThermalZoneTemperature get CurrentTemperature

потом у меня температура нормализуется. Но если я попытаюсь отправить это в ком - порт...

wmic /пространство имен:\\root\wmi ПУТЬ MSAcpi_ThermalZoneTemperature get CurrentTemperature > COM3

Arduino считывает все, что он получает, буквально как ничто, и пропускает переменные.

, 👍-1

Обсуждение

скачать и установить com0com с https://sourceforge.net/projects/com0com/ ... это создаст два связанных виртуальных последовательных порта ... подключите последовательный монитор, такой как PuTTY, или консоль arduino IDE к одному порту ... отправьте вывод WMIC на другой порт ... посмотрите, что отправляется из WMIC, @jsotola

каков ваш конкретный вопрос? ... вы не предоставили никакой информации, которая могла бы быть использована для отладки проблемы, @jsotola

Проблема в том, что пакетный файл буквально ничего не отправляет (до такой степени, что arduino устанавливает свои переменные в ничто, даже не "0", просто ничего) в тот момент, когда я запускаю файл .bat, хотя когда я просто запрашиваю информацию, она дает мне правильное значение., @Justerfrog

(@jsotola см. Выше, забыл ответить), @Justerfrog

Arduino может сбрасывать себя каждый раз, когда вы открываете последовательный порт., @Edgar Bonet

Переменные не могут быть отключены. Они всегда имеют какую-то ценность. Знаете ли вы, что именно команда wmic отправляет в каком формате? Это звучит так, как будто ваш код Arduino ожидает один формат (например, текст в формате ASCII в определенной форме), но команда отправляет его в другом формате. Вам нужно убедиться, что команда wmic отправляет именно то, что вы от нее ожидаете., @chrisl


1 ответ


0

Как отметил Эдгар в комментариях, Arduino сбрасывается каждый раз, когда вы открываете последовательный порт.

Каждый раз, когда вы выполняете перенаправление, последовательный порт открывается заново, что сбрасывает Arduino в загрузчик. Затем возникает короткая задержка, пока загрузчик ищет подходящую связь для загрузки нового кода, а затем ваша существующая программа запускается заново.

В сочетании с этим возникает проблема скорости передачи данных: вам необходимо убедиться, что последовательный порт настроен на ту же скорость передачи данных, что и ваша программа.

Все вместе это означает, что простой редирект, который вы используете, на самом деле не лучший способ общения с Arduino. Вместо этого вам нужно будет написать правильную программу, которая открывает последовательный порт, ждет сброса Arduino, а затем начинает периодически искать и отправлять необходимую вам информацию.

Python и PySerial-это обычный выбор для начинающих, так как он прост в использовании и имеет множество примеров.

,