Send PuTTY Command Through Matlab Script
12 views (last 30 days)
I am attempting to open the terminal emulator PuTTY and send a command through the PuTTY terminal using a Matlab script. I am able to open PuTTY and even open a predefined, saved serial session in Matlab (called "serialsessoin" in script below), but I'm uncertain how to go about writing Matlab code to send a command through PuTTY once the terminal emulator is open. Ultimately, I'd like to open the PuTTY terminal window and send a single "enter" key through the terminal.
In my script below, a1 is a binary "1" (aka command unsuccessfully sent) or "0" (aka command successfully sent), and b1 is the output of the command. I've attempted to use Matlab's fprintf function to send PuTTY a carriage return through Matlab, but I realize that my fprintf function isn't explicitly directed to the PuTTY terminal. And while I recognize my fprintf function isn't used quite right to begin with, I run into a problem even before the fprintf function: as long as the PuTTY terminal window is open, the first line of code is never passed, so the fprintf function is never reached until I manually close the PuTTY terminal window!
So, in short, my question is this: how can I pass a command through the PuTTY terminal using a Matlab script?
Any ideas would be great. Thanks!
**************rough code below****************
[a1 b1] = system('"C:\Program Files (x86)\PuTTY\putty.exe" -load "serialsession"');
Muthu Annamalai on 18 Jul 2013
AFAIK this is not currently possible in MATLAB, i.e. to have a live terminal session - you need pipes and MATLAB doesn't offer them. You probably want to write this in C/C++ and use a MEX file to access it from MATLAB.
MATLAB can fire off a shell program pretty well, and put it in background or wait for it etc, but it can't do pipes as of today.
Your best chance is to redesign your task to do pipe/I/O stuff in lower level C/C++ like language and fireoff this program from MATLAB with appropriate parameters.