EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

Serial terminal (VT100) with automatic save specified data

Started by Stef December 7, 2018
For a test setup, I have created a small UI using the serial port
connected to a VT100 capable terminal (Tera Term).
I use the VT100 commands to create a "nice" (for certain values of nice)
looking output. This works OK.

But now I periodically (every few seconds) have an amount of data that
needs to be stored on the PC. A CVS like output with a 100 lines or so.
I can just spit this out after the menu, surrounded by some division lines
and copy paste out of the terminal, or dig through the log file (with
thousands of VT100 commmands between the data). But there must be an
easier way.

Do you know of a way (in Tera Term or other terminal) to automatically
save this data? Using some kind of modem protocol for instance?

Preferrably the data does not even show up on the screen and may be
even the file name could be set by the serial data.


-- 
Stef    (remove caps, dashes and .invalid from e-mail address to reply by mail)

He who foresees calamities suffers them twice over.
Stef <stef33d@yahooI-N-V-A-L-I-D.com.invalid> writes:

> Do you know of a way (in Tera Term or other terminal) to automatically > save this data? Using some kind of modem protocol for instance? > > Preferrably the data does not even show up on the screen and may be > even the file name could be set by the serial data.
Terminal programs typically support downloads via zmodem which is a protocol that allows automatic downloads and you can set the filename in your system. I haven't used tera term in a few years but I'd assume file transfers like that are supported. Of course, you'd have to implement zmodem in your system.
On 2018-12-07, Stef <stef33d@yahooI-N-V-A-L-I-D.com.invalid> wrote:
> > But now I periodically (every few seconds) have an amount of data that > needs to be stored on the PC. A CVS like output with a 100 lines or so. > I can just spit this out after the menu, surrounded by some division lines > and copy paste out of the terminal, or dig through the log file (with > thousands of VT100 commmands between the data). But there must be an > easier way.
The likes of X/Y/Zmodem have already been mentioned, don't know what your specifc terminal emulator would support. Xmodem is easiest to implement with the proviso that you don't have exact control over file size, for text data that is unlikely to be a serious issue though. The other option that comes to mind would be local terminal printing, many terminal emulators can save this to a file automatically, I know PuTTY can for example. That's trivially easy to implement for ANSI terminals such as the VT100, one control code to switch to the printer, output the text and another to switch back to screen output. -- Andrew Smallshaw andrews@sdf.org
vineri, 7 decembrie 2018, 14:20:42 UTC+2, Stef a scris:
> For a test setup, I have created a small UI using the serial port > connected to a VT100 capable terminal (Tera Term). > I use the VT100 commands to create a "nice" (for certain values of nice) > looking output. This works OK. > > But now I periodically (every few seconds) have an amount of data that > needs to be stored on the PC. A CVS like output with a 100 lines or so. > I can just spit this out after the menu, surrounded by some division lines > and copy paste out of the terminal, or dig through the log file (with > thousands of VT100 commmands between the data). But there must be an > easier way. > > Do you know of a way (in Tera Term or other terminal) to automatically > save this data? Using some kind of modem protocol for instance? > > Preferrably the data does not even show up on the screen and may be > even the file name could be set by the serial data. > > > -- > Stef (remove caps, dashes and .invalid from e-mail address to reply by mail) > > He who foresees calamities suffers them twice over.
The easier way would have been a real software for the PC. But you invested in a no-pc-software solution and you dig now for a work-around. Maybe a python script or something like that to extract your real data from the log file full of VT100 commands? But this is also a kind of pc software...
On 2018-12-07 Anssi Saari wrote in comp.arch.embedded:
> Stef <stef33d@yahooI-N-V-A-L-I-D.com.invalid> writes: > >> Do you know of a way (in Tera Term or other terminal) to automatically >> save this data? Using some kind of modem protocol for instance? >> >> Preferrably the data does not even show up on the screen and may be >> even the file name could be set by the serial data. > > Terminal programs typically support downloads via zmodem which is a > protocol that allows automatic downloads and you can set the filename in > your system. I haven't used tera term in a few years but I'd assume file > transfers like that are supported. Of course, you'd have to implement > zmodem in your system.
Zmodem looks indeed capable of what I want to do and is supported by Tera Term. But implementing it is not that easy it seems. I'll have to see if it's worth the trouble for this test setup. Thanks. -- Stef (remove caps, dashes and .invalid from e-mail address to reply by mail) And it should be the law: If you use the word `paradigm' without knowing what the dictionary says it means, you go to jail. No exceptions. -- David Jones
On 2018-12-07 Andrew Smallshaw wrote in comp.arch.embedded:
> On 2018-12-07, Stef <stef33d@yahooI-N-V-A-L-I-D.com.invalid> wrote: >> >> But now I periodically (every few seconds) have an amount of data that >> needs to be stored on the PC. A CVS like output with a 100 lines or so. >> I can just spit this out after the menu, surrounded by some division lines >> and copy paste out of the terminal, or dig through the log file (with >> thousands of VT100 commmands between the data). But there must be an >> easier way. > > The likes of X/Y/Zmodem have already been mentioned, don't know > what your specifc terminal emulator would support. Xmodem is > easiest to implement with the proviso that you don't have exact > control over file size, for text data that is unlikely to be a > serious issue though.
Does X modem als allows the sender to set the filename?
> The other option that comes to mind would be local terminal printing, > many terminal emulators can save this to a file automatically, I > know PuTTY can for example. That's trivially easy to implement > for ANSI terminals such as the VT100, one control code to switch > to the printer, output the text and another to switch back to screen > output.
Interesting, just a simple <ESC>[5i to start and <ESC>[4i to stop? Certainly worth looking in to. Thanks. -- Stef (remove caps, dashes and .invalid from e-mail address to reply by mail) Receiving a million dollars tax free will make you feel better than being flat broke and having a stomach ache. -- Dolph Sharp, "I'm O.K., You're Not So Hot"
On 2018-12-07 raimond.dragomir@gmail.com wrote in comp.arch.embedded:
> vineri, 7 decembrie 2018, 14:20:42 UTC+2, Stef a scris: >> For a test setup, I have created a small UI using the serial port >> connected to a VT100 capable terminal (Tera Term). >> I use the VT100 commands to create a "nice" (for certain values of nice) >> looking output. This works OK. >> >> But now I periodically (every few seconds) have an amount of data that >> needs to be stored on the PC. A CVS like output with a 100 lines or so. >> I can just spit this out after the menu, surrounded by some division lines >> and copy paste out of the terminal, or dig through the log file (with >> thousands of VT100 commmands between the data). But there must be an >> easier way. >> >> Do you know of a way (in Tera Term or other terminal) to automatically >> save this data? Using some kind of modem protocol for instance? >> >> Preferrably the data does not even show up on the screen and may be >> even the file name could be set by the serial data. >> He who foresees calamities suffers them twice over. > > The easier way would have been a real software for the PC. > But you invested in a no-pc-software solution and you dig now > for a work-around. > Maybe a python script or something like that to extract > your real data from the log file full of VT100 commands? > But this is also a kind of pc software...
How would this be easier? It requires developing a PC application. Remember this is just for testing. The final device will just have a start button and a few indicator lights. But during testing having some intermediate results is required. And yes, I can just search the logs for the data. I was just hoping there is an easier solution for this temorary 'problem'. -- Stef (remove caps, dashes and .invalid from e-mail address to reply by mail) (null cookie; hope that's ok)
On 2018-12-07 Stef wrote in comp.arch.embedded:
> On 2018-12-07 Andrew Smallshaw wrote in comp.arch.embedded: > >> The other option that comes to mind would be local terminal printing, >> many terminal emulators can save this to a file automatically, I >> know PuTTY can for example. That's trivially easy to implement >> for ANSI terminals such as the VT100, one control code to switch >> to the printer, output the text and another to switch back to screen >> output. > > Interesting, just a simple <ESC>[5i to start and <ESC>[4i to stop? > Certainly worth looking in to. Thanks.
Did some testing. Interesting, but not quite there yet. Tera Term asks where it should print to and you can only select an actual printer. Same for PuTTY, select a printer and output goes there. The PuTTY log can only log 'all' or 'printable characters', the latter meaning the non-printing chars and escape sequences are omitted from the log. Have not found an option yet to only log/print to file what is between the <ESC>[5i and <ESC>[4i. -- Stef (remove caps, dashes and .invalid from e-mail address to reply by mail) Once, I read that a man be never stronger than when he truly realizes how weak he is. -- Jim Starlin, "Captain Marvel #31"
Stef <stef33d@yahooi-n-v-a-l-i-d.com.invalid> wrote:
> Does X modem als allows the sender to set the filename?
Some extensions to Xmodem did, as does Ymodem. Theo
> Do you know of a way (in Tera Term or other terminal) to automatically > save this data? Using some kind of modem protocol for instance?
It sounds like you've received some good suggestions. A possibly extreme solution would be to alter Tera Term. The source code is available somewhere. I've made small modifications to it to suit my needs over the years. JJS

The 2024 Embedded Online Conference