TCPIP连接在matlab中不起作用

时间:2012-08-09 15:22:42

标签: matlab tcp printf

在使用仪器进行tcpip连接时,任何身体都可以帮助我解决我遇到的问题。就像我使用以下内容与tcpip地址建立连接时,它可以完美地适用于任何时候。

1.测试和测量工具(matlab中的TMTOOL) 2.Zoc终端 3.teraterm。

但是当我尝试实现以下脚本时,它确实运行但是不知道有什么似乎没有将命令发送到我试图控制的摇摄和倾斜单元。

我正在尝试使用两个脚本:

一个。

obj1=tcpip('169.254.32.28',4000);
fopen(obj1);
cmd=5000;
fprintf(obj1,'pp%d',cmd)
fclose(obj1);
delete(obj1);

我正在尝试发送命令pp5000

%commands
lat=51.57668;
lon=-1.26765;
alti=500;
% Find a tcpip object.
obj1 = instrfind('Type', 'tcpip', 'RemoteHost', '169.254.32.28', 'RemotePort', 4000, 'Tag', '');

% Create the tcpip object if it does not exist
% otherwise use the object that was found.
if isempty(obj1)
    obj1 = tcpip('169.254.32.28', 4000);
else
    fclose(obj1);
    obj1 = obj1(1)
end

% Connect to instrument object, obj1.
fopen(obj1);
i=1;
tic
for i=1:10
% Communicating with instrument object, obj1.
fprintf(obj1, 'gg%f,%f,%f',lat,lon,alti);

i=i+1;
toc
end
fclose(obj1);
delete(obj1);

期望的结果:

gg51.57668,-1.26765,500

第二个脚本只是从TMTOOL im matlab

生成的自动脚本的一点点修改版本

基本上我想每半秒在所需的对象上打印一些命令。

任何人都可以提出一些替代方案或改进措施,以达到预期的效果。

我无法执行这些脚本,我认为无论我对matlab有什么小知识都应该是正确的。我是新用户,如果你能提供帮助,我将不胜感激。

由于

萨里尔

1 个答案:

答案 0 :(得分:0)

你总是可以使用Java类(套接字)来回传递数据,我就是这样做的。

文件1:

import java.net.ServerSocket
import java.io.*

server_socket = ServerSocket(4000);
client_socket = server_socket.accept;
out = PrintWriter(client_socket.getOutputStream, true);
in = BufferedReader(InputStreamReader(client_socket.getInputStream));
str = in.readLine(); % Read in data
out.println(data); % send data

文件2:

import java.io.*;
import java.net.*;
server_socket = Socket('localhost', 4000);
in = BufferedReader(InputStreamReader(server_socket.getInputStream));
out = PrintWriter(server_socket.getOutputStream,true);

以与上面相同的方式获取和发送输入。当你完成后别忘了关闭所有东西。

out.close();
in.close();
client_socket.close();
server_socket.close();
相关问题