因此,我正在尝试连接到将要获取模拟数据的设备(Red Pitaya)。它设置了控制设备的 scpi 命令。我可以通过labview和使用腻子来控制这些。
我正在尝试编写可以访问设备 scpi 服务器并向其发送命令以完成设备的 android 应用程序。
该设备的编程方式是,您首先必须使用 SSH 连接连接到服务器,我使用 JSch 没有问题,从那里您可以发送命令来启动 scpi 服务器并打开连接。
现在这是我正在努力解决的问题,我不明白为什么,当 SCPI 服务器启动时,它是通过设备的 Ip 和 5000 的原始端口访问的,但我似乎无法编写一段代码连接到这并执行 SCPI 命令。我不确定是连接还是我发送数据的方式。
这是代码
public class rp_command extends AsyncTask<Void,Void, Void> {
String ipAddress;
int port;
String response = "";
TextView textResponse;
rp_command(String address, int rp_port, TextView textResponse){
ipAddress = address;
port = rp_port;
this.textResponse = textResponse;
}
@Override
protected Void doInBackground(Void...arg0){
Socket socket = null;
try{
socket = new Socket(ipAddress, port);
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.writeByte(1);
out.writeUTF("DIG:PIN LED2,1");
out.flush();
} catch (UnknownHostException e){
e.printStackTrace();
response = "UnknownHostException:" + e.toString();
} catch (IOException e){
e.printStackTrace();
response = "IOException:" + e.toString();
} finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}return null;
}
@Override
protected void onPostExecute(Void result){
textResponse.setText(response);
super.onPostExecute(result);
}
}
如果有人有任何建议,将不胜感激谢谢