我对此了解不多,所以这将是一个非常基本的问题。
我有一个漂亮的 USB 小东西,它可以模拟 COM 端口。这是一个简单的开关,我可以向其发送三种不同的信号:ON、OFF 和 GET STATUS
我已经使用名为 RealTerm 的终端程序对其进行了测试。在这里,我可以以设置的波特率和其他选项打开端口,然后将 bin 文件发送到端口。当我得到这个东西时,我还下载了三个不同的 .bin 文件——一个用于 ON,一个用于 BREAK,一个用于 GET STATUS。这就像一个魅力,端口返回相应的代码等。
现在,我想在 Java 中尝试这个(首先,然后可能是 C/C++)。所以我得到了一个名为 JSSC (v0.9) 的库,这使得这很容易。这就是我所做的:
public static void main(String[] args) {
String[] portNames = SerialPortList.getPortNames();
for(int i = 0; i < portNames.length; i++){
System.out.println(portNames[i]);
}
SerialPort serialPort = new SerialPort("COM10");
try {
serialPort.openPort();//Open serial port
serialPort.setParams(SerialPort.BAUDRATE_9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
serialPort.writeBytes("0x55 01 01 02 00 00 00 59".getBytes());
serialPort.closePort();
}
catch (SerialPortException ex) {
System.out.println(ex);
}
}
波特率、数据和停止位是正确的。当我插入设备时,system.out.prinln 列出了端口,所以看起来设备被检测到了。
现在,该设备具有以下代码字:
Make: 0x55 01 01 02 00 00 00 59
Break: 0x55 01 01 01 00 00 00 58
Check status: 0x55 01 01 00 00 00 00 57
然后我是否应该能够将这些十六进制字符串传递给 java 程序中的设备,并获取/观察结果?如果是这样,我该怎么做?只是像上面那样的 writeBytes() 或 writeString() 不会做任何事情。(当 MAKE 或 BREAK 信号起作用时,我会听到设备发出咔哒声)。
或者有没有办法将这些 .bin 文件传递到端口,就像我在 RealTerm 中所做的那样?
另外,有谁知道这些 .bin 文件可能是什么类型的文件?我从(便宜)那里买的那个人信息量不大,不想帮助解决与设备没有直接关系的问题或回答问题(当然,这是可以理解的)。
我不需要在这里深入研究微处理器编程或类似主题,因为我实际上只是在尝试完成一些基本操作。但是,一些洞察力或概述当然是必要的。