Монитор порта, как сделать красиво?
- Войдите на сайт для отправки комментариев
Пт, 11/04/2014 - 14:59
Добрый день! Посдкажите пожалуйста как сделать так чтобы данные в мониторе порта обновлялись в одной строке, т.е шла перезапись текущего значения. Делаю вольметр на Arduino. Спасибо!
void loop() { value = analogRead(analogInput); // Считываем значение с указанного аналогового входа 0 vin = ( value * 5.0) / 1024; // Переводим из 10 битного значения в значение напряжения vout = vin / (0.01599); Serial.print("Voltage = "); Serial.print(vout, 2); delay(50); }
Помоему никак.
В стандартном Serial Monitor - никак. Он слишком туп для этого.
Но если взять любой нормальный терминал (Serial Monitor - это есть "терминальный клиент" который почти ничего не умеет). Например putty, то все становится реальным.
Простейший вариант: делать Serial.write('\r'); Который будет возвращать курсво в начало строке, без перехода на новую (но про Serial.println - нужно будет забыть).
А если погуглить про "управляющие последовательности ANSi". то можно найти всякие интерестные команды которые позволяют и мигающий курсор скрыть/показать, и передвинуть его, и экран очистить, цвет/фон текста поменять. Вообщем можно даже заморочится и начать рисовать "оконный интерфес и менюшки". И все это в окне терминала. Ну естественно насколько у дуинки памяти хватит.
Вообщем вывод вот такого скетчика:
В Serial Monitore видно "как длинную строка и все цифры сливаются". А если открыть putty счетчик себе аккуртно "тикает" в левом верхнем углу.
Ну в мониторе среды ардуино - понятное дело никак, а вообще это уже довно решенный вопрос.
http://www.opennet.ru/base/dev/console_ctl.txt.html
И вместо монитора програмку Putty
Чем больше скорость тем меньше заметно мелькание курсора на экране.
Если не хочется ломать голову по поводу управляющих кодов. То можно готовую либу под ардуину поискать.
К примеру https://github.com/nottwo/BasicTerm
Уверен что и другие есть.
Спасибо всем большое!
Сам тоже робовал возврат каретки '/r' только пишет типа ошибка синтаксиса.
Либо получалось выводить все в одну строку. Но такая же абракадабра получается.
Поставлю сторонний терминал
Еще раз спасибо!=)
может я отстал от жизни
паросвятите заблудшую душу
но с порта в данном случае rs232/usb (неважно) надо производить
1.прием
2.распознавание
3.протоколирование
4.отображение !!! в удобном виде !!! на экране
взрослые и дети для этого специальный exe-шник пишут последние 20 лет
а в чем смыл в терминале таращится и хныкать над тем о чем столько лет с 1970-ого по 1980ый боролись и придумали перевод каретки что-бы !!!история событий!!! оставалась
по моемому идиотизмом попахивает
берешь command.com
деассемблируешь
вырываешь старый код
пользуешь несовершенство НЕ перевода строки
Сам тоже робовал возврат каретки '/r' только пишет типа ошибка синтаксиса.
Потому что это ошибка синтаксиса. Вглядывайтесь внимательней в мой возврат карретки и в свой.
А как putty настроить на прослушку COM-порта?
Art100, просвещаю... Вы знаете что такое терминал ? Правильно это хъюманинтерфейс, интерфейс взаимодействия с человеком. Поэтому правильная терминальная программа и правильное с ней взаимодействие позволяет удобно для человек предоставить управление и отобразить индикацию. В данном случае последдовательный интерфейс всег лишь среда передачи и интерфейс управления. И за форматирование отображения отвечает ардуино.
Если же пойти путем который вы считаете единственно правильным, создать прогу для лога и отображения, то это уже будет не терминал, а клиент. И за форматирование отображаемой информации будет отвечать программа принимающая данные.
То и другое имеет право быть. Но в первом случае не нужно написание специального клиента на стороне компа, а можно использовать любой терминальный клиент, кстати такой есть в стандартной поставке виндоуса.
>> Сам тоже робовал возврат каретки '/r' только пишет типа ошибка синтаксиса.
попробуйте \r
Я, когда задался аналогичным вопросом, нашёл выход в следующем. 1. "Подсмотрел" решение на http://wiki.amperka.ru/видеоуроки:7-i2c-и-processing , видео №2. 2. Использовал программу для визуализации измерений мультиметра DVM-101 http://www.syscompdesign.com/Downloads_ep_44.html. Выглядит вполне пристойно, ведёт log, стороит график. Есть конечно и свои особенности, но побробовать её стоит. Можно запускать одновременно несколько раз эту программу (напряжение, ток).
если уже есть со всеми перечисленными мjими 4 пунктами
возникает вопрос ломать протоколирование(перевод строки)
зачем?
чтобы было красиво и на одной странице
Надо начинать или заканчивать вывод всей информации стройкой очистки экрана и переводом на позицию 0.0
Serial.print("\f"); (гипертерминал windows такую команду понимает)
А встроеный в arduino ide монитор порта просто уё.щный,лучше использовать любой другой,который поддерживает эту команду.
эта команда подать новый лист :)
И всё будет красиво.
видео:
https://youtu.be/s5n-bjAtVXo
Написал на форум ARDUINO.CC
может добавят поддержку этой комманды.
чтобы было красиво
Надо было завтра оветить! Вот тогда было бы красиво: 3 года и 3 дня :)
прошлое настоящее и будущее это почти одно и тоже
так что нормально...
вот сюжа написал предложение:
http://forum.arduino.cc/index.php?topic=470470.0
Поддержите :)
kolyan-denisov@.. Красиво - это как? Для вольтметра будете использовать монитор порта или хотите к чему то прилепить?