Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Retrieve data from COM port using a batch file

I'm trying to automatically retrieve data from a COM port using a batch file.

I'm able to configure the com port and to send the command in other to ask my device for the info.

The problem is that I'm not able to capture the data that the device sends. I've tried with RealTerm and the device is working and sends the info back to the pc, but I really need the batch file to do it automatically, here is the code:

echo off

MODE COMxx ...

COPY retrievecommand.txt \\\\.\COMxx:

COPY \\\\.\COMxx: data.txt

Any suggestions?

like image 881
user2916826 Avatar asked Nov 11 '22 19:11

user2916826


1 Answers

Use the TYPE command in a recursive loop using the DOS GOTO command to a DOS LABEL. Use 'append output' to capture text like TYPE COM1:>>Data.txt The double > means continually concatenate (or append) to Data.txt. A single > or 'redirect output' would replace the text in Data.txt every loop (if com data present on port). Add a 2nd line that redirects to the monitor screen so you can watch activity too (i.e. TYPE COM1:>CON [CON means console or monitor screen but you can omit it as console is default anyway])

Control-Z is not needed by TYPE command. It will just dump text continually until operator does a Control-C and then a Y to break the loop. You really don't need to stop the loop unless you are done with the batch file all together. The Data.txt file will be available to other programs live and will not present a 'Sharing Violation' if you try to access it with another program like NOTEPAD.EXE while this batch file is still looping.

Also if you make a 3rd line in the batch file that says TYPE COM1:>Data1.txt [notice only one redirect], you will have a single line of instant text that will disappear with next iteration. But sometimes that is helpful if you need only one line of data. There are creative ways to extract one line of data to another text file using the DOS FIND command.

like image 84
SpookySr Avatar answered Jan 04 '23 03:01

SpookySr