Serial Monitor Pro

genaonyx
genaonyx аватар
Offline
Зарегистрирован: 13.10.2016
 
Привет всем. Сегодня я хочу рассказать вам о моем личном проекте. Проект этот необычен для данного раздела форума, так как это не моргающая, ползающая или летающая штуковина :), а программа. 
 
Программа эта называется Serial Monitor Pro или просто Монитор Порта Про.
 
Как вы догадались это альтернатива штатному монитору порта входящему в состав Arduino IDE.
 
По началу, программка была написана для себя любимого, но после того как я показал ее друзьям, и услышав хорошие отзывы, решил поделиться ей со всем миром.
 
И так, с вступлением мы закончили, теперь расскажу вам о ее преимуществах, и чем же она лучше штатной.
 
Основная фишка это поддержка различных языков. Т.е. теперь отправляя строки из ардуино при помощи функций Serial.print и Serial.println в мониторе порта появиться не какие-то кракозябры, а тот текст, который вы и хотели видеть, программка поддерживает кучу различных языков, от Русского и Украинского, до Немецкого и Итальянского.
 
Serial.println("Привет Мир!");

И мы увидим Привет Мир! :) без каких либо библиотек и заморочек.

Следующая возможность, это выводить текст в одну или несколько строк. На многих форумах я встречал такие вопросы и собственно вот оно решение.
 
Для вывода текста в одну или несколько строк, достаточно воспользоваться командой @clear@ которая очистит содержимое окна и выведет текст с начала.
 
void loop()
{
  delay(500);
  Serial.println("@clear@");
  Serial.println("Привет Мир!");
  Serial.println(random());
}

В данном случае всегда будет отображаться только две строки, первая – «Привет мир!», а вторая это случайное число постоянно меняющееся.

Ну и оставшееся это возможность изменить шрифт, его размер и цвет. А так же сохранить все, что получили от ардуинки в файл.
 
На этом вроде все, пишите свои комментарии, оставляйте отзывы. Если программа будет пользоваться спросом, будет соответственно стимул добавлять новые возможности и фишки.
Пишите чего вам не хватает в штатном мониторе порта, и возможно это уже появиться в следующей версии. На будущее хочу сообщить, что в следующей версии планируется вывод состояния аналоговых или цифровых портов в виде графиков и диаграмм.
 
Подробнее вы можете прочесть на странице для скачивания.
dmitron1036
Offline
Зарегистрирован: 10.01.2016

На сколько я помню, в аск-2 кодах есть команда типа "новая страница" или даже "очистить экран", которая делает то же самое.

Просто надо копнуть в истоки....

Гипертерминал её должен выполнять.

А вот сериал монитор....наверно тоже.

genaonyx
genaonyx аватар
Offline
Зарегистрирован: 13.10.2016

Ну незнаю, должна ли программа эметировать терминал. но ок - пороюсь.

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

toc
Offline
Зарегистрирован: 09.02.2013

видел похожую поделку - плагин к Chrome- .прикольная

uni
uni аватар
Offline
Зарегистрирован: 24.09.2015

Это называется ESC-последовательности. Обычно терминалы их поддерживают, например, PuTTY или любой Linux терминал. Эти ESC-команды позволяют управлять выводом на терминал со стороны клиента, упрощая многие операции.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Про кракозябры не понял. Пишешь в IDE кириллицей и в мониторе - тоже кириллица. Или в мире виндоус как-то иначе? Винда вроде давно на юникоде, или я что-то путаю?

genaonyx
genaonyx аватар
Offline
Зарегистрирован: 13.10.2016

Вот вам пример в картинках.

Скетч

void setup()
{
  Serial.begin(9600);
  Serial.println("English");
  Serial.println("Русский");
  Serial.println("Український");
}

Arduino IDE

Serial Monitor Pro

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Афигеть! А я и не знал, что есть такая проблема. Вот что линух животворящий делает!
=======
Просите уж меня! Это я шутил. Знаю я про косяки винды... Просто такой повод поиздеваться на видоус пропадал.
=======
Хотя вы мне идею подали: а зачем отдельная прога?Исходник IDE открыт, я не вижу трудности добавить перекодировку прямо туда.... Еще раз простите за шутку.

genaonyx
genaonyx аватар
Offline
Зарегистрирован: 13.10.2016

Это не проблема винды и она здесь обсалютно не при чем. Arduino IDE написана на Java, и прекрасно понимает Юникод.

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

Городить свою альтернативную Arduino IDE просто с чуть навороченым монитором порта, дело обсалютно бесмысленное и бесполезное.

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

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

wdrakula пишет:
Афигеть! А я и не знал, что есть такая проблема.

есть такая проблема - многие ползатели не знают, передают они в монитор char или что иное.

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

genaonyx пишет:

Ну незнаю, должна ли программа эметировать терминал. но ок - пороюсь.

по крайней мере, не должна плодить сущности.

Serial.print("\e[J"); // очистка экрана терминала.

 

Mr.Privet
Mr.Privet аватар
Offline
Зарегистрирован: 17.11.2015

Клапауций 232 пишет:

по крайней мере, не должна плодить сущности.


А остальные сущности Клапауция с этим согласны?

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Mr.Privet пишет:
Клапауций 232 пишет:

по крайней мере, не должна плодить сущности.

А остальные сущности Клапауция с этим согласны?

перенаправляю этот вопрос тупню - админу форума, неумные действия которого привели к тому, что Клапауций стал неубиваемым брендом и франшизой.

ent
Offline
Зарегистрирован: 23.09.2016

genaonyx

Добавь в строку статуса чекбокс "DTR on/off" или выпадающий список, как для выбора скорости или порта, чтобы при подключении программы к порту ардуина не ресетилась. Хорошо бы запоминать выбранные состояния и размер/положение окна при выходе.

genaonyx
genaonyx аватар
Offline
Зарегистрирован: 13.10.2016
Вышла новая версия 1.3 (21.10.2016)
В новой версии:
 - Автоматическое отключение от COM-порта при загрузке скетча через Arduino IDE. Т.е. монитор порта больше не мешает прошивать ардуинку.
 - Добавилась кнопка программной перезагрузки Ардуино.
 - Добавилась кнопка очистки данных.
 - Все настройки, в том числе размеры и расположение формы теперь сохраняются.
 - Добавился выпадающий список с настройками DTR и RTS. Если выбрать «DTR off & RTS off» при соединении с ардуинкой она не будет перезагружаться.
ent
Offline
Зарегистрирован: 23.09.2016

Вот это здорово! С работы вернулся, комп разогрел, а тут уже мои пожелания воплощены в реальном проекте!

Попробовал. Работает.

1) Однако перекдючение DTR on/off на активном COM-порту не срабатывает. Ардуино должна перегрузиться при DTR On. Этот переключатель работает только после отключения/включения порта.

2) Новая кнопка "Программно перезагрузить" активирует порт с включённым DTR и, после перезагорузки ардуино, порт отключает. Пусть вернёт в состояние "до её нажатия". На мой взгляд она даже лишняя. Достаточно дёрнуть DTR (см. пункт 1).

3) Нашёл ещё одно маленькое неудобство. Данные COM-порт отправляются только по нажатию мышом кнопки "Отправить". Хочется, что бы по Enter тоже отправка срабатывала, как в терминале Arduino IDE.

Да, я до всяких мелочей люблю докапываться, не судите строго.

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

сделай народу режим "game mode" - это когда символы отправляются немедленно, а не после нажатия кнопки "отправить"

*удобно рулить дуино клавишами, спец клавишами, пилить консоли на стороне контроллера, интерактивные игрушки.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

1. Монитор порта - средство отладки, зачем там что-либо кроме латинницы? Если хочется "плюшек" - есть Processing.

2. Зачем колхоз с @clear@, когда есть стандартизованные Esc-последовательности?

3. Из полезного вижу только запись в файл.

4. Из идей, что иногда было бы полезно: два окна, в одно из которых выдается, как обычно, текст, а в другое - то же самое, но HEX. Режимы: текстовое окно, гексовое окно, оба окна.

5. Соответственно, режим (или дополнительное поле ввода), в котором обратно отсылается не текст, а бинарные коды. Т.е. вводишь, скажем, "64", а в порт идет число 0x40.

6. Ну и хорошая идея Калапуция о режиме передачи без ожидания Enter.

genaonyx
genaonyx аватар
Offline
Зарегистрирован: 13.10.2016
Не думал что народ на столько требователен. :)
 
Пару разъяснений, так как некоторые пункты повторяются раз за разом.
1. По поводу команды @clear@ и ESC последовательностей. Да команда в принципе не нужна, но начинающему ардуинщику она намного приятней и понятней чем \e[J", или кто то со мной будет спорить? Что косаеться ESC то в следующей версии будет ну мож не все, но основные команды точно. Время, ребята, всем и всегда его не хватает. Но в планах это еще с релиза.
2. По поводу вывода в HEX то же, мне уже не раз писали, будет в одной из следующих версий.
 
ent
Все решаемо, в следующей версии.
По поводу перезагрузки, дерганья DTR не достаточно для некоторых ардуинок, там не просто переоткрытие порта, но и открытие его на скорости 1200 бод, что заставляет те самые ардуинки перезагружаться.
 
Клапауций 232
Звучит интересно, но концепция размыта.
 
Andriano
1. Если есть MS-DOS зачем вам Windows? Если есть москвич, зачем вам фольцваген? А не это ли причина того, что все сидят на терминалах?
5. Да тоже о таком думал.
Клапауций 232
Offline
Зарегистрирован: 05.04.2016

genaonyx пишет:

Клапауций 232
Звучит интересно, но концепция размыта.

концепция очевидна - у тебя два очевидных варианта работы с монитором:
1. ты отправляешь скан-код нажатой клавиши в сериал.
2. у тебя есть возможность набора строки печатных символов, её редактирования, в случае ошибочного ввода, затем, полюбовавшись на нетленку, нажимаешь кнопку "отправить".
почему 2-й, сложный вариант, для тебя очевиден, а 1-й самый простой - нет, для меня загадка.
*для чего нужен 1-й вариант, писал в посте, где его предложил.
 
далее - размышления на тему...
что ты ожидаешь получить на стороне сериала контроллера?:
1. исключительно строку, состоящую из печатных символов, о чём свидетельствует символ '\0' в конце потока символов?
2. печатный символ без '\0' вслед за ним? (в данной реализации монитора это возможно?)
3. спец символ без '\0' вслед за ним? (в данной реализации монитора это возможно?)
4. сканкод любой нажатой клавиши клавиатуры? без '\0' вслед за ним? (в данной реализации монитора это возможно?)
5. форматированный текст со спец-символами твой монитор позволяет отправлять? например, полный текст этого поста отправить и получить обратно в эхо.
!предложенный мной режим, позволяет не заморачиваясь реализовать пункты 2-5.
 
**текст поста подразумевает, что кнопка "отправить", таки, добавляет символ '\0' в конец набранной в мониторе строки, иначе, вообще, не понятно, что делать с принятым на стороне контроллера.
 
ent
Offline
Зарегистрирован: 23.09.2016

Господа, встретился вот такой терминал https://sites.google.com/site/terminalbpp/. Вдруг можно что-то почерпнуть для собственного проекта.

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

здрасти, решил протестить,возникла проблемка, он как будто пропускает или зависает не знаю как обьяснить,загрузил блинк, этот скетч каждый тик светика прибавляет по 1000 к переменной , но как становится переменная больше 10000 то начинаются пропуски в мониторе было 10000 он пропустил несколько тиков потом сразу 13000 пришло

 

 

 

 

genaonyx
genaonyx аватар
Offline
Зарегистрирован: 13.10.2016

Ок, гляну

genaonyx
genaonyx аватар
Offline
Зарегистрирован: 13.10.2016

Привет всем, извените что давно небыло новостей. Был занят другим проектом.

И так, вчера выпустил новую версию 1.4.

Вот что нового:

- Исправлены проблемы с кодировкой в следствии чего некоторые данные пропадали (спасибо Алексею и Xumuk).
- Добавлены новые кодировки на выбор: ANSI, ASCII, Unicode, UTF7, UTF8.
- Менять DTR и RTS можно теперь в любое время.
- Нет необходимости теперь нажимать кнопку "Отправить". Можно отправить данные нажатием клавишей Enter.
- Редактор заменен на другой (на будущее).
- Программа запоминает при закрытии теперь не только свои размеры, но и состояние.
- Добавлена команда "\e[J" для поклонников консолей. Пример: Serial.print("\e[J"); // Аналог команды @clear@
- Добавлены задатки и для других консольных команд, которые будут пополняться с новыми версиями.

Xumuk в новой версии ваша проблема решена.

ent в новой версии все ваши замечания внесены.

Клапауций 232 ужа начал делать предложенный вами "игровой режим".

http://arduino.on.kg/serialMonitor Скачиваем и оставляем свои посты как тут так и комментарии на странице программы.

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

genaonyx пишет:

Клапауций 232 ужа начал делать предложенный вами "игровой режим".

ега не нужно делать - ега нужно разрешить.

он у тебя уже готов - просто разреши отправку введённого в монитор символа немедленно в порт.

genaonyx
genaonyx аватар
Offline
Зарегистрирован: 13.10.2016

У меня уже реализован глобальный перехват сообщений, с помощью которого я хотел реализовать и перехват нажатия ВСЕХ клавишь, вплоть до служебных. Тыкаете на кнопку, открываеться спец форма и запускаеться перехват. + на форме хотел сделать эдакий рисованый джойстик, таскание мышью которого отправляла координаты х и y. но пока непонятно в каком формате будет удобно эти данные получать. Но в целом да непроблема, все есть, если вам и другим мое придложение не устраивает, я выпущу новую версию.

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

genaonyx пишет:

если вам и другим мое придложение не устраивает, я выпущу новую версию.

лично мне не нужно - я юзаю Терминал для DigiUSB, просто делюсь опытом реализации функций, которые почему-то не реализованы в существующих проектах.

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

char send_usb = ERR; // символ отправляемый в USB.
//.....
//~~~отослать символ в USB~~~
    send_usb  = getch(); // retrieve scancode. ♥
if (send_usb != ERR) {  // из клавиатуры пришёл символ.

    result_usb = usb_control_msg(devHandle, (0x01 << 5), 0x09, 0, send_usb, 0, 0, 1000); // отослать символ в USB.
if (result_usb < 0) {printf("Error USB: %i", result_usb); Sleep(5000); return 1;} // в USB что-то сломалось - завершение программы.
}

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

ent
Offline
Зарегистрирован: 23.09.2016

Позанудствую немного.

Надо запретить "бесконечное" уменьшение окна программы. Элементы управления должны быть видны всегда, а не наезжать друг на друга и не скрываться за пределами окна.

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

ent пишет:

Позанудствую немного.

Надо запретить "бесконечное" уменьшение окна программы. Элементы управления должны быть видны всегда, а не наезжать друг на друга и не скрываться за пределами окна.

надеюсь, размер окна ограничен размером одного пикселя.

Mr.Privet
Mr.Privet аватар
Offline
Зарегистрирован: 17.11.2015

Клапауций 234 пишет:

надеюсь, размер окна ограничен размером одного пикселя.


Иначе бы программа калапсировала и форматировала винт

genaonyx
genaonyx аватар
Offline
Зарегистрирован: 13.10.2016
Вышла новая версия 1.5 от 04.12.2016
 
 - Полностью переработан интерфейс.
 - Добавлен игровой режим.
 - Исправлены мелкие баги и ошибки.
 
Игровой режим, это режим в котором программа начинает перехватывать нажатие большинства клавиш вашей клавиатуры и переправлять их коды в подключенную ардуинку.
 
Включается режим очень просто, установите соединение с ардуинкой и нажмите на кнопку с иконкой в виде геймпада.
 
Пару тестовых скетчей.
 
void setup()
{
  Serial.begin(9600);
}

void loop()
{
  if (Serial.available() > 0)
  {
    byte b = Serial.read();
    Serial.println(b);
  }
}

 

Результат:

 
Используем полученные коды для управления 13-тым светодиодом на ардуинке.
void setup()
{
  Serial.begin(9600);
  pinMode(13, OUTPUT);
}

void loop()
{
  if (Serial.available() > 0)
  {
    byte b = Serial.read();
    if (b == 38) digitalWrite(13, HIGH); // Нажата клавиша "Вверх", код клавишы 38
    if (b == 40) digitalWrite(13, LOW);  // Нажата клавиша "Вниз", код клавишы 40
  }
}

 

 
Таким образом нажимая клавишу вверх мы будем включать светодиод, а клавишу вниз - выключать.
 
Специально для вас мы подготовили таблицу кодов клавиш http://arduino.on.kg/codekeys
 
ent и это исправил то же.
Lui22
Offline
Зарегистрирован: 07.03.2016

Доброго времени суток, не могли бы вы сделать/подсказать Serial монитор с функцией очистки для Андроид?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Зачем Вы спрашиваете это тут, на форуме по Ардуино? Вам надо на форум разработчиков под Андроид, быстрее результат будет.

genaonyx
genaonyx аватар
Offline
Зарегистрирован: 13.10.2016

Друзья, вышла новая версия программы (1.6). Программа была почти полностью переписана с нуля. Изменился так же и подход к ее интерфейсу. Теперь вы можете убрать ненужные вам настройки с экрана, или добавить их. Так же появился файл конфигурации в котором можно задать все настройки программы.

genaonyx
genaonyx аватар
Offline
Зарегистрирован: 13.10.2016
Вышла новая версия 1.7.0 (03.02.2018)
В новой версии:
 - Добавлен просмотр данных в HEX режиме.
 - Вернулась поддержка кодировки ANSI.
 - Добавлена новая кодировка OEM 866 (MS-DOS, Кириллица).
 
Пару примеров:
 
1. Дамп памяти EEPROM в Hex режиме:
#include "EEPROM.h"

void setup()
{
  Serial.begin(9600);
  for (int i = 0; i < EEPROM.length(); i++) Serial.write(EEPROM.read(i));
}

void loop()
{
  
}

 
 
2. Кодировка ANSI
void setup()
{
  Serial.begin(9600);
}

void loop()
{
  byte i;
  // Цифры.
  for (i = 48; i <= 57; i++) Serial.write(i);
  // Латинница.
  for (i = 65; i <= 90; i++) Serial.write(i);
  for (i = 97; i <= 122; i++) Serial.write(i);
  // Кириллица.
  for (i = 192; i < 255; i++) Serial.write(i);
  Serial.write(168); // Ё
  Serial.write(184); // ё
  Serial.println("");
  delay(5000);
}

 

КонстантинБ
Offline
Зарегистрирован: 02.11.2017

Установил сегодня, нормально работает, спасибо.

Есть вопросы:

У игровом режиме, в монитор порта команда приходит в момент отпускания клавиши.

Т.е. нажимаю клавишу - ничего не происходит, отпускаю - появляется команда.

Это настраивается как-то? Иначе, например радиоуправление где ноут пультом работает сделать не получится.

И вот по этому документы можете дать разъяснения? Что чем рулит.

[MainForm]
Left=661
Top=10
Width=680
Height=374
Maximized=0
 
[Font]
Name=Courier New
Size=10
Color=clWindowText
 
[Settings]
AutoScroll=1
DTR=0
Prefix=0
Speed=4
HookUpload=1
Encoding=1
ToolBar=1
Postfix=0
GameMode=1
Port=COM6
AutoConnect=0
 
[Visible]
ToolBar=1
TopPanel=1
AutoScroll=0
Encoding=0
DTR=1
Postfix=0
Port=1
Speed=1
BottomPanel=1
Olej
Olej аватар
Offline
Зарегистрирован: 05.03.2018

Раз уж вытащили на свет божий такую древнюю тему то ...

genaonyx пишет:

Это не проблема винды и она здесь обсалютно не при чем. Arduino IDE написана на Java, и прекрасно понимает Юникод.

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

1. Проблема как раз именно винды! Потому что винда для кодирования UNICODE использует UTF-16, тогда как все нормальрные люди для этого используют UTF-8.

2. Но это только цветочки ... потому что ягодки будут в том, что ваша винда отображает только кодовую страницу CP-1251 (если вы её вречную не поменяете), или в CP-866, если вы свой сериальный порт станете отображать в терминал.

Далее...

3. Никто! Никто в мире, ни одна операционная система, язык программирования и приложение не может "прекрасно понимать Юникод", потому что UNICODE - это чисто теоретическая таблица кодов для всех в природе символов. А "понимать" программный код может только и исключительно выбранный для него способ кодирования UNICODE, из которых приняты и используются UTF-32, UTF-16 (точнее аж 2: UTF-16-BE и UTF-16-LE) и UTF-8.

И вот те "краказябры", которые вы показывали - это и есть несоответствие способов кодирования.

Olej
Olej аватар
Offline
Зарегистрирован: 05.03.2018

wdrakula пишет:

Про кракозябры не понял. Пишешь в IDE кириллицей и в мониторе - тоже кириллица. Или в мире виндоус как-то иначе? Винда вроде давно на юникоде, или я что-то путаю?

Винда не только не умела внятно и совместимо с другими работать с UNICODE в 2016г., когда была написана эта реплика, но так же точно не умеет этого делать и в нынешнем 2018-м.

 

Olej
Olej аватар
Offline
Зарегистрирован: 05.03.2018

genaonyx пишет:

Программа эта называется Serial Monitor Pro или просто Монитор Порта Про.
 
Как вы догадались это альтернатива штатному монитору порта входящему в состав Arduino IDE.
А чем вас не устраивает штатный монитор Arduino IDE?
 
Нет, идея взаимодействия Arduino в паре с хостом на котором он работает - плодотворная... Особенно если это взаимодействие не визуальное ... "на посмотреть", а обмен данных с целевым приложением, по типу клиент-сервер.
 
Только для построений таких взаимодействий есть такой шикарный инструмент и средство создание приложений как Processing, старший брат Arduino IDE, из которого и родился младшенький ... и довольно убогенький...
 
И уж если делать подобные инструменты, то и делать их бы на Processing, и работы там на пару часов работы будет.
 
vvadim
Offline
Зарегистрирован: 23.05.2012

Olej пишет:

genaonyx пишет:

Программа эта называется Serial Monitor Pro или просто Монитор Порта Про.
 
Как вы догадались это альтернатива штатному монитору порта входящему в состав Arduino IDE.
А чем вас не устраивает штатный монитор Arduino IDE?
 
Нет, идея взаимодействия Arduino в паре с хостом на котором он работает - плодотворная... Особенно если это взаимодействие не визуальное ... "на посмотреть", а обмен данных с целевым приложением, по типу клиент-сервер.
 
Только для построений таких взаимодействий есть такой шикарный инструмент и средство создание приложений как Processing, старший брат Arduino IDE, из которого и родился младшенький ... и довольно убогенький...
 
И уж если делать подобные инструменты, то и делать их бы на Processing, и работы там на пару часов работы будет.
 

 

ну так вперёд - сделать и показать сообществу...

Olej
Olej аватар
Offline
Зарегистрирован: 05.03.2018

vvadim пишет:

ну так вперёд - сделать и показать сообществу...

И что ж хотела бы "посмотреть" эта оскорблённая ощественность?

На то как Processing взаимодействует с Andruino? Так у вас тут на форуме целый раздел относительно Processing есть (и очень здорово что есть!) - раззуй глаза и читай аж до тошноты ...  А инсталлировать этот как Processing - так там в экзамплах и документации  пару десятков примеров такого взаимодействия.

Или про то, как используя Processing быстро строить оконные (GUI) приложения? Так там сотня примеров ... вставь в READ.ME свою фамилию - и у тебя уже готов свой проект ;-D 

Или о том, как строить клиент-серверное взаимодействие скетча Arduino через Serial (как вариант) с серверной частью на хост-компьютере? Так тут, во-первых, прежде чем "посмотреть", оскорблённая ощественность должна бы понимать что вообще из себя представляет клинт-серверное взаимодействие. Готова общественность???

А во-вторых, такое взаимодействие 2-х программных компонент, клиента и сервера, происходит не на уровне визуальных картинок на "посмотреть", а на уровне внутреннего обмена какими-то данными ... в зависимости от прикладной области приложения. Ну, напишу и покажу я код на хосте, взаимодействующий с Arduino ... напишу на языке Python, или Go, или Swift, или Kotlin, или Rust ... - для "посмотреть" общественности. Рассмотрение этого кода сильно попустит оскорблённое чувство общественности?

Цитата:

Иногда лучше жевать, чем говорить.

 

genaonyx
genaonyx аватар
Offline
Зарегистрирован: 13.10.2016

Olej

1.Пока что у нас нет западных ценностей. Кто чем хочет - тем и пользуется. Я не навязываю вам процессинг, терминалы и прочее. Я выложил программу, хотят, скачивают, хотят, не скачивают. Хотят, пользуются, хотят, не пользуются. Прошу не разводить обсуждения, что лучше, а что хуже, создайте отдельную тему или напишите статью с вашим субъективным мнением о тех или иных программах.

2.По поводу кодировки вы немного недопоняли, дело тут не в операционной системе и ее кодировке.

КонстантинБ

1. Нет, это не настраивается, исправлю в выходных, добавлю отправку кода клавиши и по нажатию и по отпусканию клавиши.

2. Это конфиг файл в котором сохраняются все настройки по завершению программы.
- Секция [MainForm] содержит стандартные настройки размера формы. Ширина, высота, положение на экране, обычное состояние окна или развернуто на весь экран.
- Секция [Font] содержит настройки шрифта.
- Секция [Settings] содержит основные настройки.

AutoScroll - Автопрокрутка
DTR - состояние линий DTR и RTS.
Prefix - не используется.
Speed - Скорость передачи данных
HookUpload - Перехватывать ли нажатие кнопки "Загрузить" в Arduino IDE
Encodind - тип кодировки
ToolBar - Отображать ли верхнюю панель с кнопками
Postfix - Постфикс при передачи данных
GameMode - Игровой режим
Port - Порт к которому подключатся
AutoConnect - Автоматически ли подключатся к COM порту при включении программы.
 
DTR, Speed, Encodind, Postfix - это номера в выподающем списке.

- Секция [Visible] содержит настройки видимости того или иного компонента, где 1 виден, 0 не виден.

Почти все настройки задаются в меню программы, кроме AutoConnect.

Клапауций 555
Offline
Зарегистрирован: 10.03.2018

Olej пишет:

А чем вас не устраивает штатный монитор Arduino IDE?

блин. ну, сколько можно? - влазить в темы, где уже сто раз всеми обсосано и народ пришёл к какому-то консенсусу, и играть роль тупого Капитана Очевидность.

Olej
Olej аватар
Offline
Зарегистрирован: 05.03.2018

genaonyx пишет:

1.Пока что у нас нет западных ценностей. Кто чем хочет - тем и пользуется.

Я не знаю про ваши ценности...

Но только в 2018г. кроить велсипед на Delphi, которому уже 20 лет место только как на свалке ... это даже не смешно уже.

А потом заниматься вечной дрочиловкой со шрифтами и кодовыми таблицами, которым никогда не будет конца. Потому что победить это нельзя в принципе.

Люди вам сделали Arduino IDE, худо там или бедно ... но используя хотя бы инструментарий (Java) и кодировки (UNICODE, UTF-8), которые появились уже после того, как Delphy должен был уже благополучно умереть. А теперь вы этими граблями разгребаете то, что сделано гораздо более по стандартам современным, а потом будет победоносно годами бороться со сложностями, которые сами себе нагородили.

Ну ... Флаг в руки ... и с криком: "Банзай"!

 

Клапауций 555
Offline
Зарегистрирован: 10.03.2018

Olej пишет:

Люди вам сделали Arduino IDE, худо там или бедно ... 

ну, хватит тупить - народ желает по UART комфортно работать с более, чем 1-байтными кодировками.

штатный монитор этого не позволяет. точка.

genaonyx
genaonyx аватар
Offline
Зарегистрирован: 13.10.2016

Блин. Ну какая разница пользователю на чем написана программа. Я вас наверное удивлю но 6 миллиардов людей не знают на чем написана windows. А миллиард и вовсе не видело ПК. Ещё первым сообщением я дал понять что писать надо по теме. Мне в лом отвлекаться на пустые рассуждения. Есть предложение по программе. Пишите. Баг нашли - пишите. Вы бы еще зашли на форум flprog и попытались объяснить их 5000 комьюнити. Что есть си и писать скетчи на другом языке ненадо. И прога вообще написана не на избранном языке. Прям Тереза Мэй какая-то.

КонстантинБ
Offline
Зарегистрирован: 02.11.2017

genaonyx пишет:

КонстантинБ

Спасибо.

КонстантинБ
Offline
Зарегистрирован: 02.11.2017

Olej ты не на Хонде ездишь случайно?

emserg
Offline
Зарегистрирован: 25.01.2016

Привет, программа отличная и очень нужная.

Нужно исправить некоторые ошибки.

_____________________________________________

long times;
void setup() { Serial.begin(115200);  }
void loop() {
Serial.print(F("Счётчик: "));
Serial.println(times);
times++; 
}

______________________________ 

1) каким образом изучить данные, если они приходят быстро?  (например нужно посмотреть в течении 5 сек на "Счётчик: 400", а потом "Счётчик: 1000". Каким образом выделить и скопировать данные например "Счётчик: 800 - Счётчик: 3400" в блокнот? (нужно сохранить сначала буфер в файл, а потом от туда копировать? неудобно.)

2) откл. "Автопрокрутка" запоминает № строки и не даёт нормально листать, возвращаясь к прежней строке.

3) ждём когда значение будет "Счётчик: 135500" и как наблюдаются эти значения на экране? (мерцает? программа тормозит? хотя "Счётчик: 256350" это файл 1,8Мб) 

4) дабы не вводить в заблуждение значком Ардуино на панели задач, лучше его поменять, к примеру, повернуть на 90 градусов и проинвертировать цвет. 

5) изменить подсказку на кнопку "Игровой режим" на типа "перехват нажатия клавиатуры в коды клавиш".

6) при выборе отображения в другом формате (HEX, ANSI и т.д.), отображение меняется только при поступлении новых данных, хотя на экране старые данные имеются, они при смене формата, не меняются.

___________________

Best regards. 

avdubovik
Offline
Зарегистрирован: 06.06.2019

Добрый день. Программирую в Ардуино недавно. Искал Подобную программу. Мне ваша программа очень понравилась. К сожалению терминал порта в Ардуино никто не хочет дорабатывать. У вас поднята тема управляющих команд. Я нашёл  только одну Serial.println(“@clear@”); но её маловато. Хотелось бы ещё что то вроде Serial.println(“@SaveFile@c:\file.txt”)  Serial.println(“@AddFile@c:\file.txt”)для сохранения в файл всего что есть в мониторе порта.

                В принципе имя файла можно вводить в строке для отправки текста. Ардуно его ловит и результаты складывает где указано. Но здесь есть один нюанс. Данные в монитор порта могут поступать какие угодно если Ардуино заточено не под вашу программу. И чем больше управляющих команд тем больше вероятность непредвиденных действий. Для этого желательно просто добавить кнопку Включить/Отключить управляющие команды – Стазу все или по отдельности.

                Также хотелось бы видеть данные в графическом представлении. Что-то вроде ПЛОТЕРА. Запускаемого одновременно с монитором порта. А данные разделять с помощью управляющих команд. Самое простое разделение - числовые данные на плотер а все символьные в монитор порта. И конечно предусмотреть очистку окна плотера.

 

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

genaonyx, можно исходник? И на чём писалось. Нужно нечто подобное, но с другим дизайном.