2х плотер - дополнение к "нашим" самодельным генераторам

2х плотер - дополнение к “нашим” самодельным генераторам, помогает строить/визуализировать ачх катушки.

возможности пакета:

  • захват данных с com-порта (две оси [x,y])
  • показ/визуализация графика
  • сохранение захваченных данных-плотера (*.plt)
  • манипуляция с графиком (зум, перетаскивание, просмотр)
  • сохранение выделенных участков в графический файл (*.bmp)
  • в качестве com-порта используется usb-переходник CH340 (FTDI FT232, PL2303, CP2102), аналогичный arduino

URL
tag: avr, atmega328, uart, usart, ploter


Спойлер

ploter / описание

возможности пакета:

  • захват данных с com-порта (две оси [x,y])
  • показ/визуализация графика
  • сохранение захваченных данных-плотера (*.plt)
  • манипуляция с графиком (зум, перетаскивание, просмотр)
  • сохранение выделенных участков в графический файл (*.bmp)
  • в качестве com-порта используется usb-переходник CH340 (FTDI FT232, PL2303, CP2102), аналогичный arduino

особенности пакета:

  • проект разрабатывается под linux (портируется под windows)
  • расчитан на активную работу с ком.строкой (параметры, режим работы, настройки итд)
  • все примеры/описание/команды - приведены под linux

операционные системы /совместимость:

  • linux x64 (все современные версии linux, список протестированных дистрибутивов см.далее)
  • windows xp/7 (на других версиях не тестировалось)

сокращение:
d&d - drag and drop (выделить в проводнике, взять, перетянуть на форму, отпусить кнопку мыши)
2х клик - двойной клик мышкой (левой кнопкой)

установка коротко

установочный пакет распространяется в виде архива/iso-образа

содержимое:

- data_file          - примеры файлов данных (для тестового запуска/привязки расширения *.plt)
- doc                - файлы помощи, документация
- install            - каталог с установщиком
- bin                - каталог с исполняемыми файлами/бинарники
- lib                - каталог с библиотеками
- install_app_gtk.sh - скрипты установки
- install_app_qt4.sh
- install_app_qt5.sh

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

установка (вручную, коротко):

  • монтируем iso-образ / распаковываем архив
  • install_app_X.sh - установка приложения
  • если не сделано до этого:
    добавить “~/bin” в переменнуют “PATH”, перелогиниться.
  • data_file - проверить работу приложения, кликнуть мышкой на файле данных (*.plt)
    либо запускаем из коммандной строки
    $ plot_file
    и d&d-ом набрасываем файл данных на форму

пример установки на live-дистрибутив (видео):

install_redos_live_xxx.mkv

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

подробно

состав пакета:

  • две утилиты (два режима работы DEVICE & FILE)
  • скрипты установки
-----------------------------------------------------------------------------------
 файл/bin  | режим    | осн.функционал 
-----------------------------------------------------------------------------------
plot_dev   | "DEVICE" |  захват com-порта, визуализация, экспорт в файл-данных *.plt
plot_file  | "FILE"   |  визуализация файла-данных, экспорт в граф.файл        *.bmp
-----------------------------------------------------------------------------------

plot_file имеет два режима работы

  • коммандный (выполнить команду и выйти)
  • gui (обычный режим работы)

в коммандном режиме можно открыть файл-плотера *.plt и сохранить в графический файл.
настройку графика можно сделать с помощью cli/аргументов ком.строки (смотрите помощь).

для визуализации используются (gui-toolkit):

  • gtk2 (устаревший, до сих пор использующийся)
  • qt4 (устаревший, использующийся на старых/легких версиях линукса)
  • qt5 (текущий/разрабатываемый)

gui-библиотеки:
если отсутствуют, обращаемся к справке/установка из gui/пакетного менеджера

  • gtk2 - обычно идет в составе дистрибутива (ubuntu-22.04.4/23.10.1 по умолчанию)
  • qt4/5 - в системе должен быть установлен пакет qt4/qt5
    (в современных дистрибутивах с рабочим столом “KDE4/Plasma”/“KDE5/Plasma” - уже установлены)

так-же, для qt-приложений нужна дополнительно мульти-поточная версия библиотеки lib-qt-pas (multi-thread)
по умолчанию в линуксе идет “обычная” сборка данной библиотеки, поэтому надо:

  • либо собрать/установить самому или найти/установить с пом-ю пакетного менеджера (*)
  • либо использовать скрипт установки
    (*) не уверен, что “нужно/можно” удалять “старую” библиотеку стандартными методами (пакетный менеджер),
    т.к. это может привести к удалению других компонентов.

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

установка плотера с помощью скрипта (локально, в дом. каталог “~/bin/plot”):
копируются все версии gui(gtk/qt4/qt5).
gui по умолчанию “устанавливаются” скриптом с соотв.индексом:

- install_app_gtk.sh
- install_app_qt4.sh
- install_app_qt5.sh

после установки надо проверить настройки PATH:
export PATH=~/bin:.:$PATH
в логин-скрипте (в зависимости от дистрибутива linux):

~/.bash_profile
~/.bashrc
~/.profile

если вызвать приложения (вручную, из ком.строки):

$ plot_file
$ plot_dev

будет запущено приложение с тем gui, который был выбран во время установки.

можно принудительно вызвать приложение с соответствующим gui:

$ plot_file_gtk
$ plot_file_qt4
$ plot_file_qt5
$ plot_dev_gtk
$ plot_dev_qt4
$ plot_dev_qt5

если нужно сменить gui (по умолчанию): повторно запустите скрипт установки с соответствующим индексом:
либо, отредактируйте скрипты запуска, находящиеся в домашнем bin-каталоге:

~/bin/plot_file
~/bin/plot_dev

выберите команду запуска :

plot_dev.gtk "$@"
plot_dev.qt4 "$@"
plot_dev.qt5 "$@"

если скрипт установки отработает без ошибок:

  1. в локальный bin-каталог будут установлены файлы пакета
  2. будет зарегистрировано приложение plot_file и привязано к расширению *.plt (2х клик - запуск приложения, открытие плотера)

список удачно протестированных дистрибутивов linux (live-версии)

  • alt-ws-10.3
  • arch-6.10.10-0914
  • red-os
  • calculate-2024.09.29
  • centos-2024.07.09
  • debian-12.7.0
  • elementary-os-2023.09.26 (скрины *.bmp кидает в HOME)
  • gentoo-2024.09.23
  • neon-2024.09.29
  • mint-22-xfce
  • redos-2024.06.04
  • rosa-plasma-5.12.5.1
  • solus-4.5
  • slackware 14.2/15.0 (develop-дистр, разработка)
  • suse leap
  • ubuntu (редкостная каша с out-dir)
  • kubuntu (аналогично ubuntu)
  • void

видео-каст для ознакомления

захват данных (с com-порта) / видео

cutecom_data_flow.mp4

  1. настройка/параметры com-порта (по умолчанию):
com-port  = [ttyUSB0|COM0] (linux|windows)
boud-rate = [115200]
byte-size = [8]
flow-ctl  = [none]
parity    = [none]
stop-bits = [1]
  1. системные/технические символы
#    - комментарий                               (игнорируется)
0x01 - символ/сигнал "начало передачи данных"    (на буд. доработку, пока выдает в консоль строку "начало передачи" в режиме отладки --debug=1)
0x04 - символ/сигнал "окончание передачи данных" (--/-- "окончание передачи" )
;    - разделитель данных
BR   - символ/лы "перенос строки"
  1. перенос строки [BR]
CR - возврат каретки (carriage return) 
LF - перевод строки  (line feed      )

возможна передача как linux, так и windows версии “переноса строки”:

- Unix/Linux [   LF] or [  '\n'] с/с++ код
- Windows    [CR+LF] or ['\r\n']
  1. поток данных

данные передаются как “пары координат”:
x;y[BR]

пример:

1;1[BR]
2;2[BR]
3;3[BR]

plot_dev / видео

plot_dev_01_receiv_data.1.mkv
plot_dev_01_receiv_data.2.mkv

прием данных (катушка) / “съем АЧХ”

plot_dev_02_cmn_functional.mkv

  • общ.функционал / прием данных (тестовый)
  • select port, pause/run, open/close port

plot_dev_03_save_view.mkv

  • сохранение и просмотр (3 варианта)

аргументы ком.строки

  • plot_dev_04_arg_cmd_string.mkv

plot_file / видео

plot_file_01_dnd_single.mkv

  • d&d файлов: “single”
  • наброс поочередно неск. файлов-данных/плотера (*.plt)

plot_file_02_dnd_multi_new_process.mkv

  • d&d файлов: “multi / new process”
  • наброс поочередно неск. файлов-данных/плотера (*.plt)
  • последовательное закрытие всех форм

plot_file_03_dnd_multi_child_form.mkv

  • d&d файлов: “multi / child form”
  • наброс поочередно неск. файлов-данных/плотера (*.plt)
  • закрытие главной формы

plot_file_04_save_part_view.mkv

  • сохранение “выбранной части” плотера и просмотр
  • сохранение (3 участка) (*.bmp)
  • просмотр в граф.просмотрщике

plot_file_05_arg_cmd_string.mkv

  • аргументы ком.строки, примеры

пример работы / видео

install_redos_live_xxx.mkv

  • запуск live-образа
  • установка пакета
  • клик мышкой по *.plt-файлу (файл захвата данных), просмотр графика
  • сохранение участков графика (в граф. файл *.bmp)
  • просмотр сохраненных участков в граф. просмотрщике

дополнительно, короткие тестовые запуски:

slackware_14.2_gtk2.mkv
ubuntu_22.04.4_gtk2.mkv
ubuntu_22.04.4_qt5.mkv

примеры использования аргументов ком.строки

коммандный режим (выполнить задачу - открыть файл-данных, сохранить картинку и выйти)
имя файла вых.данных формируется как “YYYY.MM.DD_HH.MM.SS”
$ plot_file plot_data_A.plt --mode=cmd --out-dir=out_dir --out-name=date-time

имя файла вых.данных формируется как “YYYY.MM.DD”
$ plot_file plot_data_A.plt --mode=cmd --out-dir=out_dir --out-name=date

имя файла вых.данных формируется как “HH.MM.SS”
$ plot_file plot_data_A.plt --mode=cmd --out-dir=out_dir --out-name=time

захват данных с com-порта, запуск с отладкой, установка каталога вых.данных
$ plot_dev ttyUSB0 --debug=1 --out-dir=out-dir

захват данных с com-порта, запуск с отладкой, установка каталога вых.данных
по умолчанию имя файла вых.данных формируется как “com-port-name”, например ‘ttyUSB0’
$ plot_dev ttyUSB0 --debug=1 --out-dir=out-dir

захват данных с com-порта, запуск с отладкой, установка каталога вых.данных
имя файла вых.данных формируется как “YYYY.MM.DD_HH.MM.SS”
$ plot_dev ttyUSB0 --debug=1 --out-dir=out-dir --out-name=date-time

помощь/список аргументов ком.строки:
$ plot_file [-h|--help]

текущая помощь в текстовых файлах

  • help_lin.txt
  • help_win.txt

расширения возможностей

можно добавить в скрипт какой-либо аргумент (для “дополнительной” настройки приложения),
например, сделать out-каталог по умолчанию в домашнем tmp-каталоге.
строка запуска будет следующей:
~/bin/plot_file --out-dir=~/tmp

сохранить скрипт с соответствующим именем:
~/bin/plot_file_out_tmp

и создать *.desktop-файл для запуска данного скрипта (или запускать из ком.строки)
так можно автоматизировать свою исследовательскую работу :о)

особенности поведения дистр-ов linux, файловых менеджеров и “выходных каталогов”

приложения (plot_file, plot_dev) - для сохранения данных используют тот-же каталог,
откуда было запущено само приложение.

если в командной строке перейти в каталог “~/tmp” а потом запустить приложение,
то сохраняться файлы будут именно в каталог "~/tmp"

$ cd ~/tmp
$ plot_file

если вы из “файлового менеджера” кликаете по файлу *.plt для запуска plot_file (показывает график),
то “каталог для сохранения” по Ctrl+S - будет зависеть от того:

  • в каком linux вы работаете
  • какой файловый менеджер вы используете

протестировано было несколькох менеджеров
‘+’ с ожидаемым поведением (сохранение в тот-же каталог, где находятся файлы данных плотера *.plt)
‘-’ сохраняет в HOME/Desktop (но не туда, где был открыт файл данных плотер *.plt)

- konqueror/tde (tde-14.0.11)
+ konqueror/kde (kde-plasma) 
- dolphin tde
+ dolphin kde
+ thunar (*)
- krusader-1.90/tde
- pcmanfm
- nautilus 
(*) - thunar показал исключительно правильное поведение во всех тестируемых linux/рабочих столах.

для исправления данной особенности linux-а/файловых менеджеров можно:

  • использовать арг.ком.строки --out-dir=out-dir
  • создать скрипт запуска и *.desktop-файл, вызывающий данный скрипт.

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

можно, так-же, использовать шоткат/команду выбора каталога для сохранения (диалог “выбор выходного каталога”):
[Ctl + D]

особенности использования usb-com-порта/переходника

если программа не видит подключенный com-port (у меня было именно так):

смотрим сообщения dmegs до и после подключения порта

$ sudo dmesg > dmesg1.txt    # до подключения 
$ sudo dmesg > dmesg2.txt    # после подключения 
$ diff dmesg1.txt dmesg2.txt # смотрим отличия
-->
1142a1143,1153
> [ 1627.780644] workqueue: hub_event hogged CPU for >10000us 4 times, consider switching to WQ_UNBOUND
> [ 1627.906724] usb 1-2: new full-speed USB device number 6 using xhci_hcd
> [ 1628.317243] usb 1-2: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.62
> [ 1628.317256] usb 1-2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
> [ 1628.317260] usb 1-2: Product: USB2.0-Serial
> [ 1628.320316] ch341 1-2:1.0: ch341-uart converter detected
> [ 1628.322853] usb 1-2: ch341-uart converter now attached to ttyUSB0
> [ 1628.912212] input: BRLTTY 6.4 Linux Screen Driver Keyboard as /devices/virtual/input/input11
> [ 1628.919047] usb 1-2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
> [ 1628.924073] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
> [ 1628.924112] ch341 1-2:1.0: device disconnected

из чего делаем вывод, что пакет “brltty” конфилктует с плотером.
удаляем пакет и библиотеку: brltty & libbrlapi0.8
$ sudo apt remove brltty libbrlapi0.8

shot-cut’s / шоткат / клавиатурные сокращения

[Alt + Q] (QUICK/SETUP) - вызов   формы выбора com-port (quick/быстрые настройки)
[Esc    ] (ESCAPE     ) - закрыть форму выбора com-port
[Ctl + O] (OPEN/CLOSE ) - открыть/закрыть (open/close) com-port
[Space  ] (           ) - прием/пауза (receive run/pause) прием данных
[Ctl + S] (SAVE       ) - сохранение данных          в файл (*.plt)
[Ctl + F] (FILE       ) - диалог "сохранение данных" в файл (*.plt) / только plot_dev
[Ctl + D] (DIRECTORY  ) - диалог "выбор выходного каталога"

Lite VNA 64 может до 3 Ггц подобные измерения делать.

конечно может, но его нету в наличии и, лично я привык доверять приборам, X1-50 к примеру

X1-50 это, безусловно, классика. Но место на рабочем столе не безгранично…
А по цене, они похожи.

для ардуинок осциллограф и БП достаточный комплект, ИМХО

Lite VNA 64 : ali-price - 17-23 тыс
X1-50 : price (что-то около… бублика по горизонтали)

тема: дополнение к “нашим” самодельным DDS-генераторам

хотя, спасибо, что сравнили с “Lite VNA/ваше всё
ploter - софтовое решение, а не хардовое :о)

VNA недавно купил на Али за 12 тыр. X1-50 позже предлагали за 7 тыр. Воздержался. Но разница в диапазонах работы! Это если про цены.

недавно - это не одно и то-же что сейчас
и это “железные” хреньки :о)

давайте тему “прочих болтов” закроем?! :о)
если есть вопросы/тема/обсуждение - велкам!

Не нашёл как выводить одновременно два графика. Есть такая возможность?

какая микросхема генератора в нём?

только один график, захват подразумевает с одного устройства/порта.

p.s.
откуда возьмется два графика на устройстве с одним портом/генератором?! :о)
а вот открытие/просмотр 2х разных “данных захвата” одновременно - это пока в планах TO-DO

1 лайк

Ну, я имел ввиду, как в Arduino IDE, с одного порта, бывает очень удобно:

Спойлер

Понял, спасибо. Удачи в этом деле!

Простите меня пожалуйста, но я не совсем понял (в отличии от высказавшихся ранее). Это программа построения графиков 2д из поступающих с COM-порта данных? Или это что то более «глобальное»?
Из особенностей - захват любых данных? А как она их (любые данные) определяет?
Я ни в клей мере не хочу никак проект принизить, но в Делфи подобное делается за один вечер (имею ввиду захват и вывод данных в 2д в виде графика с ком-порта). Вроде бы и штатная в ардуино иде 2х тоже умеет…,

  • поступающих с сом-порт
  • как в дельфи
  • как в ардуино (думаю, что так-же)

все просто, поток состоит из пары чисел [x,y]
подробнее есть на сорсфорже (максимально полное описание, мини-документация, видео-демонстрашки)

плюшки в простоте/мини-интерфейсе/некоторых фишках (делал для себя и своих коллег, затачивалось под свое видение/руки/ноги/голову) :о)

зы

ни каких проблем, критикуйте на здоровье по делу! :о)
только без клея…

Да, такое часто бывает когда пишу с планшета и не всё перечитываю что написал. Он считает себя умнее и заменяет слова ))

Я услышал что хотел, спасибо за обратную связь.

Спойлер

ploter / описание

возможности пакета:

  • захват данных с com-порта (две оси [x,y])
  • показ/визуализация графика
  • сохранение захваченных данных-плотера (*.plt)
  • манипуляция с графиком (зум, перетаскивание, просмотр)
  • сохранение выделенных участков в графический файл (*.bmp)
  • в качестве com-порта используется usb-переходник CH340 (FTDI FT232, PL2303, CP2102), аналогичный arduino

особенности пакета:

  • проект разрабатывается под linux (портируется под windows)
  • расчитан на активную работу с ком.строкой (параметры, режим работы, настройки итд)
  • все примеры/описание/команды - приведены под linux

операционные системы /совместимость:

  • linux x64 (все современные версии linux, список протестированных дистрибутивов см.далее)
  • windows xp/7 (на других версиях не тестировалось)

сокращение:
d&d - drag and drop (выделить в проводнике, взять, перетянуть на форму, отпусить кнопку мыши)
2х клик - двойной клик мышкой (левой кнопкой)

установка коротко

установочный пакет распространяется в виде архива/iso-образа

содержимое:

- data_file          - примеры файлов данных (для тестового запуска/привязки расширения *.plt)
- doc                - файлы помощи, документация
- install            - каталог с установщиком
- bin                - каталог с исполняемыми файлами/бинарники
- lib                - каталог с библиотеками
- install_app_gtk.sh - скрипты установки
- install_app_qt4.sh
- install_app_qt5.sh

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

установка (вручную, коротко):

  • монтируем iso-образ / распаковываем архив
  • install_app_X.sh - установка приложения
  • если не сделано до этого:
    добавить “~/bin” в переменнуют “PATH”, перелогиниться.
  • data_file - проверить работу приложения, кликнуть мышкой на файле данных (*.plt)
    либо запускаем из коммандной строки
    $ plot_file
    и d&d-ом набрасываем файл данных на форму

пример установки на live-дистрибутив (видео):

install_redos_live_xxx.mkv

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

подробно

состав пакета:

  • две утилиты (два режима работы DEVICE & FILE)
  • скрипты установки
-----------------------------------------------------------------------------------
 файл/bin  | режим    | осн.функционал 
-----------------------------------------------------------------------------------
plot_dev   | "DEVICE" |  захват com-порта, визуализация, экспорт в файл-данных *.plt
plot_file  | "FILE"   |  визуализация файла-данных, экспорт в граф.файл        *.bmp
-----------------------------------------------------------------------------------

plot_file имеет два режима работы

  • коммандный (выполнить команду и выйти)
  • gui (обычный режим работы)

в коммандном режиме можно открыть файл-плотера *.plt и сохранить в графический файл.
настройку графика можно сделать с помощью cli/аргументов ком.строки (смотрите помощь).

для визуализации используются (gui-toolkit):

  • gtk2 (устаревший, до сих пор использующийся)
  • qt4 (устаревший, использующийся на старых/легких версиях линукса)
  • qt5 (текущий/разрабатываемый)

gui-библиотеки:
если отсутствуют, обращаемся к справке/установка из gui/пакетного менеджера

  • gtk2 - обычно идет в составе дистрибутива (ubuntu-22.04.4/23.10.1 по умолчанию)
  • qt4/5 - в системе должен быть установлен пакет qt4/qt5
    (в современных дистрибутивах с рабочим столом “KDE4/Plasma”/“KDE5/Plasma” - уже установлены)

так-же, для qt-приложений нужна дополнительно мульти-поточная версия библиотеки lib-qt-pas (multi-thread)
по умолчанию в линуксе идет “обычная” сборка данной библиотеки, поэтому надо:

  • либо собрать/установить самому или найти/установить с пом-ю пакетного менеджера (*)
  • либо использовать скрипт установки
    (*) не уверен, что “нужно/можно” удалять “старую” библиотеку стандартными методами (пакетный менеджер),
    т.к. это может привести к удалению других компонентов.

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

установка плотера с помощью скрипта (локально, в дом. каталог “~/bin/plot”):
копируются все версии gui(gtk/qt4/qt5).
gui по умолчанию “устанавливаются” скриптом с соотв.индексом:

- install_app_gtk.sh
- install_app_qt4.sh
- install_app_qt5.sh

после установки надо проверить настройки PATH:
export PATH=~/bin:.:$PATH
в логин-скрипте (в зависимости от дистрибутива linux):

~/.bash_profile
~/.bashrc
~/.profile

если вызвать приложения (вручную, из ком.строки):

$ plot_file
$ plot_dev

будет запущено приложение с тем gui, который был выбран во время установки.

можно принудительно вызвать приложение с соответствующим gui:

$ plot_file_gtk
$ plot_file_qt4
$ plot_file_qt5
$ plot_dev_gtk
$ plot_dev_qt4
$ plot_dev_qt5

если нужно сменить gui (по умолчанию): повторно запустите скрипт установки с соответствующим индексом:
либо, отредактируйте скрипты запуска, находящиеся в домашнем bin-каталоге:

~/bin/plot_file
~/bin/plot_dev

выберите команду запуска :

plot_dev.gtk "$@"
plot_dev.qt4 "$@"
plot_dev.qt5 "$@"

если скрипт установки отработает без ошибок:

  1. в локальный bin-каталог будут установлены файлы пакета
  2. будет зарегистрировано приложение plot_file и привязано к расширению *.plt (2х клик - запуск приложения, открытие плотера)

список удачно протестированных дистрибутивов linux (live-версии)

  • alt-ws-10.3
  • arch-6.10.10-0914
  • red-os
  • calculate-2024.09.29
  • centos-2024.07.09
  • debian-12.7.0
  • elementary-os-2023.09.26 (скрины *.bmp кидает в HOME)
  • gentoo-2024.09.23
  • neon-2024.09.29
  • mint-22-xfce
  • redos-2024.06.04
  • rosa-plasma-5.12.5.1
  • solus-4.5
  • slackware 14.2/15.0 (develop-дистр, разработка)
  • suse leap
  • ubuntu (редкостная каша с out-dir)
  • kubuntu (аналогично ubuntu)
  • void

видео-каст для ознакомления

захват данных (с com-порта) / видео

cutecom_data_flow.mp4

  1. настройка/параметры com-порта (по умолчанию):
com-port  = [ttyUSB0|COM0] (linux|windows)
boud-rate = [115200]
byte-size = [8]
flow-ctl  = [none]
parity    = [none]
stop-bits = [1]
  1. системные/технические символы
#    - комментарий                               (игнорируется)
0x01 - символ/сигнал "начало передачи данных"    (на буд. доработку, пока выдает в консоль строку "начало передачи" в режиме отладки --debug=1)
0x04 - символ/сигнал "окончание передачи данных" (--/-- "окончание передачи" )
;    - разделитель данных
BR   - символ/лы "перенос строки"
  1. перенос строки [BR]
CR - возврат каретки (carriage return) 
LF - перевод строки  (line feed      )

возможна передача как linux, так и windows версии “переноса строки”:

- Unix/Linux [   LF] or [  '\n'] с/с++ код
- Windows    [CR+LF] or ['\r\n']
  1. поток данных

данные передаются как “пары координат”:
x;y[BR]

пример:

1;1[BR]
2;2[BR]
3;3[BR]

plot_dev / видео

plot_dev_01_receiv_data.1.mkv
plot_dev_01_receiv_data.2.mkv

прием данных (катушка) / “съем АЧХ”

plot_dev_02_cmn_functional.mkv

  • общ.функционал / прием данных (тестовый)
  • select port, pause/run, open/close port

plot_dev_03_save_view.mkv

  • сохранение и просмотр (3 варианта)

аргументы ком.строки

  • plot_dev_04_arg_cmd_string.mkv

plot_file / видео

plot_file_01_dnd_single.mkv

  • d&d файлов: “single”
  • наброс поочередно неск. файлов-данных/плотера (*.plt)

plot_file_02_dnd_multi_new_process.mkv

  • d&d файлов: “multi / new process”
  • наброс поочередно неск. файлов-данных/плотера (*.plt)
  • последовательное закрытие всех форм

plot_file_03_dnd_multi_child_form.mkv

  • d&d файлов: “multi / child form”
  • наброс поочередно неск. файлов-данных/плотера (*.plt)
  • закрытие главной формы

plot_file_04_save_part_view.mkv

  • сохранение “выбранной части” плотера и просмотр
  • сохранение (3 участка) (*.bmp)
  • просмотр в граф.просмотрщике

plot_file_05_arg_cmd_string.mkv

  • аргументы ком.строки, примеры

пример работы / видео

install_redos_live_xxx.mkv

  • запуск live-образа
  • установка пакета
  • клик мышкой по *.plt-файлу (файл захвата данных), просмотр графика
  • сохранение участков графика (в граф. файл *.bmp)
  • просмотр сохраненных участков в граф. просмотрщике

дополнительно, короткие тестовые запуски:

slackware_14.2_gtk2.mkv
ubuntu_22.04.4_gtk2.mkv
ubuntu_22.04.4_qt5.mkv

примеры использования аргументов ком.строки

коммандный режим (выполнить задачу - открыть файл-данных, сохранить картинку и выйти)
имя файла вых.данных формируется как “YYYY.MM.DD_HH.MM.SS”
$ plot_file plot_data_A.plt --mode=cmd --out-dir=out_dir --out-name=date-time

имя файла вых.данных формируется как “YYYY.MM.DD”
$ plot_file plot_data_A.plt --mode=cmd --out-dir=out_dir --out-name=date

имя файла вых.данных формируется как “HH.MM.SS”
$ plot_file plot_data_A.plt --mode=cmd --out-dir=out_dir --out-name=time

захват данных с com-порта, запуск с отладкой, установка каталога вых.данных
$ plot_dev ttyUSB0 --debug=1 --out-dir=out-dir

захват данных с com-порта, запуск с отладкой, установка каталога вых.данных
по умолчанию имя файла вых.данных формируется как “com-port-name”, например ‘ttyUSB0’
$ plot_dev ttyUSB0 --debug=1 --out-dir=out-dir

захват данных с com-порта, запуск с отладкой, установка каталога вых.данных
имя файла вых.данных формируется как “YYYY.MM.DD_HH.MM.SS”
$ plot_dev ttyUSB0 --debug=1 --out-dir=out-dir --out-name=date-time

помощь/список аргументов ком.строки:
$ plot_file [-h|--help]

текущая помощь в текстовых файлах

  • help_lin.txt
  • help_win.txt

расширения возможностей

можно добавить в скрипт какой-либо аргумент (для “дополнительной” настройки приложения),
например, сделать out-каталог по умолчанию в домашнем tmp-каталоге.
строка запуска будет следующей:
~/bin/plot_file --out-dir=~/tmp

сохранить скрипт с соответствующим именем:
~/bin/plot_file_out_tmp

и создать *.desktop-файл для запуска данного скрипта (или запускать из ком.строки)
так можно автоматизировать свою исследовательскую работу :о)

особенности поведения дистр-ов linux, файловых менеджеров и “выходных каталогов”

приложения (plot_file, plot_dev) - для сохранения данных используют тот-же каталог,
откуда было запущено само приложение.

если в командной строке перейти в каталог “~/tmp” а потом запустить приложение,
то сохраняться файлы будут именно в каталог "~/tmp"

$ cd ~/tmp
$ plot_file

если вы из “файлового менеджера” кликаете по файлу *.plt для запуска plot_file (показывает график),
то “каталог для сохранения” по Ctrl+S - будет зависеть от того:

  • в каком linux вы работаете
  • какой файловый менеджер вы используете

протестировано было несколькох менеджеров
‘+’ с ожидаемым поведением (сохранение в тот-же каталог, где находятся файлы данных плотера *.plt)
‘-’ сохраняет в HOME/Desktop (но не туда, где был открыт файл данных плотер *.plt)

- konqueror/tde (tde-14.0.11)
+ konqueror/kde (kde-plasma) 
- dolphin tde
+ dolphin kde
+ thunar (*)
- krusader-1.90/tde
- pcmanfm
- nautilus 
(*) - thunar показал исключительно правильное поведение во всех тестируемых linux/рабочих столах.

для исправления данной особенности linux-а/файловых менеджеров можно:

  • использовать арг.ком.строки --out-dir=out-dir
  • создать скрипт запуска и *.desktop-файл, вызывающий данный скрипт.

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

можно, так-же, использовать шоткат/команду выбора каталога для сохранения (диалог “выбор выходного каталога”):
[Ctl + D]

особенности использования usb-com-порта/переходника

если программа не видит подключенный com-port (у меня было именно так):

смотрим сообщения dmegs до и после подключения порта

$ sudo dmesg > dmesg1.txt    # до подключения 
$ sudo dmesg > dmesg2.txt    # после подключения 
$ diff dmesg1.txt dmesg2.txt # смотрим отличия
-->
1142a1143,1153
> [ 1627.780644] workqueue: hub_event hogged CPU for >10000us 4 times, consider switching to WQ_UNBOUND
> [ 1627.906724] usb 1-2: new full-speed USB device number 6 using xhci_hcd
> [ 1628.317243] usb 1-2: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.62
> [ 1628.317256] usb 1-2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
> [ 1628.317260] usb 1-2: Product: USB2.0-Serial
> [ 1628.320316] ch341 1-2:1.0: ch341-uart converter detected
> [ 1628.322853] usb 1-2: ch341-uart converter now attached to ttyUSB0
> [ 1628.912212] input: BRLTTY 6.4 Linux Screen Driver Keyboard as /devices/virtual/input/input11
> [ 1628.919047] usb 1-2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
> [ 1628.924073] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
> [ 1628.924112] ch341 1-2:1.0: device disconnected

из чего делаем вывод, что пакет “brltty” конфилктует с плотером.
удаляем пакет и библиотеку: brltty & libbrlapi0.8
$ sudo apt remove brltty libbrlapi0.8

shot-cut’s / шоткат / клавиатурные сокращения

[Alt + Q] (QUICK/SETUP) - вызов   формы выбора com-port (quick/быстрые настройки)
[Esc    ] (ESCAPE     ) - закрыть форму выбора com-port
[Ctl + O] (OPEN/CLOSE ) - открыть/закрыть (open/close) com-port
[Space  ] (           ) - прием/пауза (receive run/pause) прием данных
[Ctl + S] (SAVE       ) - сохранение данных          в файл (*.plt)
[Ctl + F] (FILE       ) - диалог "сохранение данных" в файл (*.plt) / только plot_dev
[Ctl + D] (DIRECTORY  ) - диалог "выбор выходного каталога"

че, серьезно?

особенности пакета:
- проект разрабатывается под linux (портируется под windows)

скачайте, посмотрите как у вас будет работать, потом напишете, все буду только безгранично благодарны … в разумных пределах :о)