0

任何人都可以帮助我解决与仪器建立 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

B.

%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有什么小知识,它都应该是正确的。我是一个新用户,如果你能提供帮助,我将不胜感激。

谢谢

萨利尔

4

1 回答 1

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();
于 2012-08-09T19:09:06.093 回答