Rob
Rob

Reputation: 151

PuTTY command line automate serial commands from file

I am trying to connect to a serial port and send a series of commands from a file.

Firstly I have mananged to connect via the following:

PuTTY.exe -serial COM3 -sercfg 57600,8,n,1,N

E.g. I have a file called commands.txt with a series of serial commands I wished to be sent.

I tried the following however it failed to work:

PuTTY.exe -serial COM3 -sercfg 57600,8,n,1,N -m commands.txt

Any help is greatly appreciated.

Upvotes: 7

Views: 38257

Answers (2)

Jeremy
Jeremy

Reputation: 631

Another solution which I have used to regularly send commands to a device uses a combination of PuTTY and Autohotkey.

For the initial setup, configure a PuTTY session and save it. In my case I named is Oasis.

The following Autohotkey function can send a command to the already open PuTTY session. If PuTTY is not open it will start the saved session. oasis_putty_name() is the name of the PuTTY window once it's open, it will depend on the COM port selected. location_putty() is the location of the PuTTY executable. Both of these can be hard coded but I wanted to keep the variables separate from the functions.

; Oasis Check --------------------------------------------------
oasis_check(){
putty_name := oasis_putty_name()

; Start PuTTY if it's not already running
IfWinNotExist, %putty_name%
{
    putty := location_putty()
    Run %putty% -load Oasis

    Sleep,1000
}

; Format Time Stamp
FormatTime, TimeString,,yyyy-MM-dd HH-mm-ss

; Record Oasis Values
ControlSend, , %TimeString%{ENTER}, %putty_name%
Sleep, 2000
ControlSend, , all?{ENTER}, %putty_name%
}

The frequency of execution can be controlled with another Autohotkey script or, as in my case, with the Windows Task Manager.

Upvotes: 1

SachaDee
SachaDee

Reputation: 9545

Try like this :

for /f "delims=" %%a in ('type commands.txt') do PuTTY.exe -serial COM3 -sercfg 57600,8,n,1,N -m %%a

Upvotes: 4

Related Questions