Giter Site home page Giter Site logo

hyozd / serialplot Goto Github PK

View Code? Open in Web Editor NEW
663.0 30.0 164.0 2.97 MB

Small and simple software for plotting data from serial port in realtime.

Home Page: https://hackaday.io/project/5334-serialplot-realtime-plotting-software

License: GNU General Public License v3.0

CMake 2.62% Python 0.64% C 1.17% QMake 0.54% C++ 94.98% Dockerfile 0.05%
serialport plotting realtime qt

serialplot's Introduction

SerialPlot

Small and simple software for plotting data from serial port in realtime.

SerialPlot v0.4 Screenshot

Features

  • Reading data from serial port
  • Binary data formats (u)int8, (u)int16, (u)int32, float
  • User defined frame format for robust operation
  • ASCII input (Comma Separated Values)
  • Synchronized multi channel plotting
  • Define and send commands to the device in ASCII or binary format
  • Take snapshots of the current waveform and save to CSV file

See hackaday.io page for screenshots.

Installation

You can obtain windows and linux binary packages hackaday.io page:

https://hackaday.io/project/5334-serialplot-realtime-plotting-software

Dependencies

  • Qt 5, including SerialPort module
  • Qwt 6.1

Building

Obtain Dependencies

  • Qt5 development packages
  • Qt5 SerialPort module
  • CMake
  • Mercurial

Under Ubuntu/Debian: apt install qtbase5-dev libqt5serialport5-dev cmake mercurial

Under OpenSUSE: zypper in libqt5-qtbase-devel libqt5-qtserialbus-devel libqt5-qtserialport-devel cmake mercurial

Download and Install Qwt [Optional]

Qwt is the library that provides plotting widgets for SerialPlot. You have 3 different options for Qwt.

  • Leave it to serialplot build scripts. Qwt will be downloaded and built for you.

  • If your linux distribution has the libqwt-qt5-dev or qwt-qt5-devel or, on OpenSUSE, qwt6-qt5-devel package, install it and set BUILD_QWT cmake option to false.

  • Download Qwt 6 here and build it yourself per these instructions and install. Make sure you use Qt5 (not Qt4) to build. And set BUILD_QWT cmake option to false.

Download and Build SerialPlot

You can use Mercurial to download SerialPlot source code. Or you can download it from here: https://hg.sr.ht/~hyozd/serialplot/

hg clone https://hg.sr.ht/~hyozd/serialplot/
cd serialplot
mkdir build && cd build
cmake ..
make

You can also build with QtCreator IDE (or qmake) using serialplot.pro file.

Known Issues

  • On Ubuntu 16.04 / Linux Mint 18, removing USB serial device while it is open in SerialPlot, causes application to go into a nasty loop and eventually it crashes. This is a bug of Qt 5.5. I have uploaded a patched version of the problematic libqt5serialport5 package to launchpad ppa. If you install SerialPlot from there or use AppImage binary, you shouldn't have any problems.

License

This software is licensed under GPLv3. See file COPYING for details.

serialplot's People

Contributors

alexanderamelkin avatar aslan-mehmet avatar bsilvereagle avatar hyozd avatar nerdyprojects avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

serialplot's Issues

Receive buffer empty

Hi,

I've built serialplot 10.0.0 for Raspberry PI 3 using QtCreator 5.15.2. Builds fine, demo mode works as expected. However, I don't seem to get any data from tty/dev/acm0, when I connect my STM32F303 board (CDC class USB device). The STM32F303 board is sending some tab delimited integer values in format 1234\t2345\r\n. Port (tty/dev/acm0) works ok - if I set the same configuration on Putty, data is displayed is correct format. In both cases data transfer is ASCII, 8 bits, 1 stop, no parity, no flow control.

When I set the breakpoint on start of AsciiReader::ReadData, _device->canReadLine() always skips the while loop (as if it never read a \n terminator). If I add _device->bytesAvailable() before that call, it reports some non-zero number of bytes (differs, but larger than one line of received data). If I do peek/read/readall the QIODevice buffer, the buffer always reads zero. A call to
_device->isSequential() returns true.

In order to exclude any Qt environment related errors, I've also built the "Command Line Reader Async Example" (which uses ReadAll function on QSerialPort) and this works fine: Buffer stores and prints out values as expected.

Best regards,

Matej Možek

Custom frame format idea

Hi, there.
I guess that Custom Frame fomat description could be improved in the following way:
Frame Start - no change
Packed Data Structure as in printf format definitions.
E.g. : %f, %d, %u etc.
This will allow to mix different data types in one packet.
Endianness - no change
Checksum: - no change

Thanks in advance,
Vladimir

OS X Port

I loved this application, and it was recommended in this video course on YouTube, 9-Axis IMU LESSON 1: Introduction to Nine Axis Sensors and Inertial Measurement Units with Arduino. However, I needed a version to run on OS X.

I have managed to get this running on OS X with all of the Qt5 and Qwt frameworks bundled in the application, so it should work out of the box. I works on OS X 10.13.6 and other versions will be tested shortly.

It is available here: serialplot_OS_X_port

A detailed document of the process is available here Porting serialplot to OS X
and a brief HOWTO version here HOWTO: Port serialplot to OS X.

Hopefully I am not stepping on anyone's toes in making this port, and I would like to have your permission to have it up on Github. I could even provide OS X support for it, if I am able to.

Compare (show numeric difference) two channels

Hasan, It would be a wonderful feature if could subtract one channel from another channel to see in real time. I modified serialplot AsciiReader::parseline samples array after for loop for a quick demonstration by simply channel 1 = channel 1 minus channel 2 (samples->data . . .) so now channel 1 shows the difference. I can't get serialplot project to compile as I'm not that good at modern build tools. Would you be willing to do the code mod and create a windows EXE so I can try it out and email me the EXE. My serial input stream is ASCII float values so just the ASCII mod and I always have at least 2 channels incoming so do not need any fault checking. Thank you

featurerequest: predefine SVG-Export size

currently the SVG-Export size is defined by the window geometry.
would be cool to have a option to define it.
this way it would be easier to generate comparable plots - regardless of what the window currently is set to.

featurerequest: Snapshots - use main plot scaling (no auto scaling)

currently it seems that a snapshot does some auto-scaling to fit all data to the screen.
this leads to difficulties when multiple plots / snapshots are compared..
it shifts / stretches the y scale...
wish: toggle option or manually define visible area (x; y ranges)

featuerequest: position of legend

a useful feature: set the position of the legend to one of the four corners.
for me bottom right is actual the area of interest... so it is a little in the way - but i need the name-color combo to know what is what (8channels...)

Feature-Request: Show ASCII-Debug-Messages while decoding custom frame

It would be nice if the tool would allow to show filtered readable debug messages, simulataneously to the plotted data.
Basically readable ascii-data, which is not part of the custom-frame.

My use-case looks like the following:
I am transmitting 1000 packages/second with a custom frame (HEADER + LEN + DATA + CRC), but maybe 1 debug-package/second. (Like "DEBUG: Hello world!")
Just by reading the raw-data, it is quite hard to find the actual debug-message in there.
Therefore it would already be a big help if a pure text window is available (supporting new-line characters),
which just shows all (ASCII) symbols which coudn't bee decoded by the custom frame.

New Feature: overlap plots from different channels.

Say that from an Arduino board I am sending something like this (comma separated values):

    int sensorValue = analogRead(A0);
    
    // Send over serial
    Serial.print(sensorValue);
    Serial.print(",");
    Serial.print(sensorValue/2);
    Serial.print(",");
    Serial.print(sensorValue/4);
    Serial.print("\n\r");

I can plot the data on 3 different graphs (one per channel, provided that I selected 3 channels from the DataFormat tab). Fine.

It would be nice to be able to plot sensorValue and sensorValue/2 on the first graph and sensorValue/4 on the second graph. i.e. to select what channel shall be plot on which graph.

Feature requests: Multiple features

Hi. I'm impressed by your SerialPlot tool. I can see there is much hard work that went into it.

I've noticed the tool ha many feature found in an oscilloscope.

Feature #1: Multi-channel plot triggering events
One of the features lacking is plot triggering. This is where the plot starts advancing and capturing into the buffer upon a user-defined event. This can be for example when a specific channel goes above or below a 'trigger' threshold. Other trigger events can be based on:

  • multiple simultaneous channel thresholds.
  • single channel threshold crossing counts.
  • many, many more triggering event types. (For example check the triggering events supported by the KeySight oscilloscopes.)
    Note: I realize that the BEST place to start plotting on trigger events is within the client. Your reaction time to the event will be delayed. Only a deep buffer, can properly capture enough data to provide enough time for a decision. Also, you can only make a decision on the data rate supplied by the client device feeding the data. If the data rate is too slow, your decision is only good as the data supplied.
    Usually on an embedded system there are better and much faster decision of a good triggering event to start dumping data.

This feature can be useful on making more efficient use of the buffer.

Feature #2: Multi-channel plot filtering
This is somewhat related to Feature #1. The user can provide search/filter criteria (which may include thresholds) to find a search index where the criteria is satisfied. This is a post-processing of the buffer data.
Theoretically, this search can be done as the data is being acquired. The plot can display a 'caret' where the search criteria is met both in the static or dynamic running of the plot.
A deep buffer is usually preferred.

Feature #3: Channel labelling and unit designation
You already have the ability to define and save) the Label name. You you see a benefit for the client to 'push' these labels? Theoretically, this might be done with a 'two-way' request from the host for label info.

This label info request can be also augmented with unit designation.

If such a two-way communication is added, theoretically, your "Data Format" info about the data to plot can be sent to allow SerialPlot to automatically sync up without requiring the user to know the plotting specifics.

Feature #4: Using the Frame Start as a packet sync with automatic detection
You can add a Button next to the "Frame Start:" field. This button can perform an auto-detect on the packet and fill in the field.
I realize with random-ish data this feature can be tricky.
If the Frame Start pattern is detected during the data, Simple Binary and ASCII can be ignored.

These are suggestions that I hope you might find useful to include in future versions. They are targeted to improve the user experience in setup and gathering useful data.

Feature request: add a tab showing the incoming serial data like cutecom does that

I have a project that logs a series of values to the serial port in a format that's not "Simple binary", nor "ASCII". Therefore i need to specify the a custom frame.

It would help me a lot if I can see the data coming in from the serial port, in much the same way as cutecom does this: (i have redacted some of the incoming data, in reality there are more channels coming in)
image

I propose an extra tab in Serialplot called "terminal", with the raw incoming serial data, like in the below mockup:
image

My versions:
SerialPlot 0.12.0 revid 7c00..
Qt 5.15.1
Windows 10 home 21H2 19044.3086

Repetitive sending commands with programmed interval.

Hello,
very appreciate for your program.
Could you add some little feature:
repetitive sending commands with programmed interval.

I try to describe why. There are a family of chinese USB testers by Kotomi or ChargerLAB which have ability to send data to PC. Native SW is uncomfortable for me and I have to make a trick to use the testers with your SW. I use splitted COM ports to periodically send starting message for tester SW from one program and receive the answer in your program. That is why it'll be very useful to have it all in one place.
The intervals interesting for me are: 10s, 1s, 100ms, 50ms, 20ms, 10ms, but of course it may be setted numerically to any value.
Thanks in advace,
Vladimir

P.S.
One issue:
COM port# does not restored from savings.

Serialplot won't refresh

Hi there, weird issue:

I have serialplot running on my T430 without any problems. Plugging the same board into my Desktop PC, I only can get new data whenever I press "Open". So it appears that serialplot isn't polling for new data and I have to "refresh" it manually. My T430 is running Arch Linux, my Desktop is on Manjaro. Both have qwt 6.1 and the complete qt5 package installed.

Is this a known problem and is there a fix? I'm also happy to provide additional information, bug reports whatever :). I didn't have time to dig into the code, but I'll gladly free up some, if it helps.

SerialPlot Only Reads First Record

I'm trying to log data from a serial data stream, which prints out every 100ms.

My output code looks like this:

printf("%04d,\n", position );

SerialPlot only displays the first value when I connect.

Data is visibly present and valid on a scope. I presume I've missed an important detail.

support for udp package

Dear developer
I am interesting in using the serialplot for my student experiment.
I can use for serial and bluetooth communication for plotting data from Arduino.
I also use NodeMCU which has WiFi connection with UDP package.
Would you give me information how to connect for the UDP WiFI with specific IP and Port?
I am looking forward for your information

Best regards,
Irwandi

Fix for multiplot in snapshot

Multiplot in a snapshot is crashing because of access to PlotManager::_stream which is nullptr when PlotManger is used on a Snapshot. When adding a check for nullptr and we get nice multiplots in snapshots.

Patch:

diff -r a097738f33a7 src/plotmanager.cpp
--- a/src/plotmanager.cpp       Sun Dec 27 21:17:54 2020 +0300
+++ b/src/plotmanager.cpp       Sun Jan 03 10:53:45 2021 +0100
@@ -242,7 +242,10 @@
         {
             auto plot = addPlotWidget();
             plot->setVisible(curve->isVisible());
-            plot->setDispChannels(QVector<const StreamChannel*>(1, _stream->channel(i)));
+            if (_stream != nullptr)
+            {
+                plot->setDispChannels(QVector<const StreamChannel*>(1, _stream->channel(i)));
+            }
             curve->attach(plot);
             i++;
         }

ppa error

How can I fix
$ sudo add-apt-repository ppa:hyozd/serialplot
Cannot add PPA: ''This PPA does not support bionic''.

featurerequest: x asis from data

i have a case where i would like to have the x axes to be controlled / shows my data-timestamp.
would be super to be able to select a channel to be the source for the x axis.

featurerequest: automatic reconnect to lost port

It would be very nice if the app automatically reconnects to the last active port if this is lost.
for serial connections to microcontrollers they sometimes close with a uC reset.
currently for me this means i have to manually re-scan and reconnect to the last port.
from a User-Perspective for example GTKTerm handles this very nicely :-)

docu / build - `Qt5Svg` not found

i have no knowledge of cmake - so maybe i do something very silly here..

following the readme -
cmake on Kubuntu 23.10 failed for me:

serialplot/build (master)$ cmake -D BUILD_QWT=false ..


.....


-- Could NOT find Qt5Svg (missing: Qt5Svg_DIR)
CMake Error at /usr/lib/x86_64-linux-gnu/cmake/Qt5Core/Qt5CoreMacros.cmake:454 (message):
  Cannot use "Svg" module which has not yet been found.
Call Stack (most recent call first):
  CMakeLists.txt:150 (qt5_use_modules)

i also had to sudo apt install libqt5svg5-dev

with this cmake is fine.
but make fails with

[ 29%] Building CXX object CMakeFiles/serialplot.dir/src/plot.cpp.o
/home/stefan/mydata/tools/serialplot/src/plot.cpp: In member function ‘void Plot::setLegendPosition(Qt::AlignmentFlag)’:
/home/stefan/mydata/tools/serialplot/src/plot.cpp:278:12: error: ‘class QwtPlotLegendItem’ has no member named ‘setAlignmentInCanvas’
  278 |     legend.setAlignmentInCanvas(alignment);
      |            ^~~~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/serialplot.dir/build.make:214: CMakeFiles/serialplot.dir/src/plot.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:89: CMakeFiles/serialplot.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

as the documentation
clearly shows that setAlignmentInCanvas is available i think somehow i have now included the wrong version...

so i tried again with out the -D BUILD_QWT=false and this time it build successfully.

featurerequest: Change Line Thickness of Plot

First, thank you for developing serialplot. It is a great tool I use for example to teach courses in electronics for biologists. For screen capture the line width is often to thin, and being able to change the line width would greatly aid visibility for the students.

Thank You!
Best,
agenews

Project is no longer available on bitbucket

"Repository unavailable
Bitbucket no longer supports Mercurial repositories."

Is the version on github updated? Could you put the appimage files in the "releases" section here? Thanks!

SerialPlot limits fixed or payload size frames to 255 or less bytes

I really need to have frames that are longer than 255 bytes.

I really like the triggered frame mode, like an O'scope. But I need 400 bytes per channel, at least, and up to 6 channels max, 4 channels typical, 2 channels minimum.

Another issue, version 0.12 and 0.11; if in ASCII mode, which by the way cannot receive my ASCII data at all, except as a raw binary stream in SP, when I click on Simple Binary button, the program freezes up, may or may not recover and show the binary stream on the chart. May have to use Task Manager to kill SP in that case.

ASCII mode: I'm trying to test if I can use it to circumvent the frame limitations in Custom Frame mode (255 or less total bytes). Using any other terminal program, I can see my ASCII formatted data from my project. Yet in SP, in ASCII mode, no data received... in text window, no data... If I am in Simple Binary mode, in text window I see my ASCII data. But no graphs.

Sigh. I am beyond frustrated trying to find a solution.

Keep up the good work, aside from the frame limits, I'm really happy with your program!

Regards
Dave
PS. below is the Pic Basic Pro 3.0 routine I'm using to try to get ASCII working in SerialPlot. Binary data works fine but I need more, more bytes per frame!. As you can see, I've tried various permutations on the theme, to no avail. Binary works fine.

'###############################################
DBUG_DATA: 'USE THIS TO VIEW DATA ARRAYS OUTSIDE OF INNER LOOPS
DEBUG "A",",", "B" , "," 'FRAME START HEADER
'DEBUG "200" 'PAYLOAD OR BUFFER SIZE TO BE SENT CRAP, 255 IS LIMIT!
'DEBUG 255,255
'DEBUG 200
FOR INDEX = 0 TO 19'9
debug DEC SLEW_RATEL(INDEX)
DEBUG ","
debug DEC SLEW_RATER(INDEX)
'DEBUG ","
'DEBUG "\r", "\n"
NEXT
'DEBUG "\r", "\n"

RETURN

Serialplot build fails

I have successfully used serialplot in the past, but today when I needed to use it for some measurements, I got the error serialplot: symbol lookup error: serialplot: undefined symbol: _ZN13QwtPlotZoomer7setAxisEii when I tried to start it

Figured I had to update the software, but I am also having trouble building it.

[ 29%] Building CXX object CMakeFiles/serialplot.dir/src/plot.cpp.o
/home/user/Downloads/AUR/serialplot-hg/src/serialplot/src/plot.cpp: In member function ‘void Plot::calcSymbolSize()’:
/home/user/Downloads/AUR/serialplot-hg/src/serialplot/src/plot.cpp:277:47: error: invalid use of incomplete type ‘class QwtScaleMap’
  277 |     auto paintDist = sw->scaleDraw()->scaleMap().pDist();
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/include/qwt/qwt_plot_seriesitem.h:14,
                 from /usr/include/qwt/qwt_plot_curve.h:14,
                 from /home/user/Downloads/AUR/serialplot-hg/src/serialplot/src/plot.cpp:24:
/usr/include/qwt/qwt_plot_item.h:17:7: note: forward declaration of ‘class QwtScaleMap’
   17 | class QwtScaleMap;
      |       ^~~~~~~~~~~
/home/user/Downloads/AUR/serialplot-hg/src/serialplot/src/plot.cpp:278:47: error: invalid use of incomplete type ‘class QwtScaleMap’
  278 |     auto scaleDist = sw->scaleDraw()->scaleMap().sDist();
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~^~
In file included from /usr/include/qwt/qwt_plot_seriesitem.h:14,
                 from /usr/include/qwt/qwt_plot_curve.h:14,
                 from /home/user/Downloads/AUR/serialplot-hg/src/serialplot/src/plot.cpp:24:
/usr/include/qwt/qwt_plot_item.h:17:7: note: forward declaration of ‘class QwtScaleMap’
   17 | class QwtScaleMap;
      |       ^~~~~~~~~~~
make[2]: *** [CMakeFiles/serialplot.dir/build.make:208: CMakeFiles/serialplot.dir/src/plot.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:87: CMakeFiles/serialplot.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

Not sure if this issue is isolated to my specific system configuration, or if it is something everyone will face if they update their system. I am running Manjaro with the latest updates, and tried building through AUR, as well as manually.

Some relevant packages and their version number:
qwt 6.2.0-1
qt5-serialport 5.15.2-1
qt5-base 5.15.2+kde+r263-1

featurerequest: keyboard shortcuts do send commands

I really like SerialPlot.

It would be great if it was possible to send commands also via keyboard shortcuts because this is faster than using the mouse for clicking the buttons in the Commands-tab or (if another tab is selected) selecting them in the Commands menu.
For me, it would be sufficient if the first 12 commands were mapped to the function keys F1 to F12 respectively.

featurerequest: custom port

a custom port path would allow for virtual ports on alias addresses and similar advanced setups..

currently - as fare as i can see - it is only possible to select one in the list of ports.
and its not clear to me how this list is generated....

featurerequest: single bit data support

It would be nice to have individual bits in addition to unsigned/signed 8-/16-/32-bit data formats.
Since smallest addressable data is in bytes, maybe bitwise channels could be bundled in groups of 8 to resemble kind of a logic analyzer?

Crashing on Win10

Software started randomly crashing when running on Win10.
Works for a few minutes, and then crashes.
Reproduced on 4 different Windows machines.

Setup:
Software reseaves 6 data channels, coma separated, with 3 digit precision after coma in ascii format.
Data rate is 10 Hz. Two of these channels are hidden.
Rest of the channels are plotted.
Serial monitor is enabled to see data coming in. Here 2 digits after coma precision is selected.

Same machines were using the serialplot before without problems, until one day it started to work unstable on all computers. I suspect Win10 update.

SAVING DATA TO A SEPARATE FILE

Hello!
Thank you for your very nice and intuitive program. I am relatively new in programming and handling data from serial ports.
I was wondering if there is the possibility to save only some of the incoming data in a txt file different from the log file of the recording or tag them in order to extract them later from the full recording log.
For example:
I am getting from my serial port the values: 1, 2, 3, 4, 5, 5, 5, 5. I see that the value 5 is stable and I would like to save or tag it. Afterwards, my logging continues and after a while I get another stable value that I would like to save/tag and so on.
Thank you for your help.
Marco

Bug : QObject::startTimer: Timers cannot be started from another thread

(Thanks for this useful tool !)

I have some segmentation faults (it's recurrent but not systematic).

[Warning] "L’interface « org.freedesktop.DBus.Properties » n’existe pas pour l’objet à l’emplacement /org/freedesktop/NetworkManager/ActiveConnection/46"
QObject: Cannot create children for a parent that is in a different thread.
(Parent is QStatusBar(0x562e492c7a60), parent's thread is QThread(0x562e49098bd0), current thread is QThread(0x562e49277720)
[Warning] QObject::killTimer: Timers cannot be stopped from another thread
QObject::killTimer: Timers cannot be stopped from another thread
QObject::startTimer: Timers cannot be started from another thread
[Warning] QObject::~QObject: Timers cannot be stopped from another thread
QObject::startTimer: Timers cannot be started from another thread
Erreur de segmentation (core dumped)

I'm using AppImage on Linux Ubuntu

./serialplot-0.12.0-x86_64.AppImage 
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
[Debug] SerialPlot 0.12.0
[Debug] Revision 7c0005be1c54
cat /etc/issue
Ubuntu 21.10 \n \l

featurerequest: units for channels

allow units for channels.
just add a label to very channel that helps in knowing what unit the value has..

it would be very nice if the ASCII parsing could handle the automatic stripping of the units after the numbers and auto-filling them to the channels.

XY mode

Hello again,
I guess, it'll be very tasty.
With regulated afterglow, of course

USB serial port reads only one line of ASCII data

only one line of data is read per opening of port when USB COM is used.
This can be seen in text view where only one line is added when port is opened.
Closing and reopening port adds another line.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.