我在树莓派上连接了一个at-modem,并且有一个与调制解调器通信的应用程序充当呼叫管理器。我的应用程序具有两个主要功能:
大多数时候,它都可以正常工作。但是我有多个问题:
问题1和3对我来说不是问题,但是我也列出了这些问题,因为我不知道它们是否与我的主要问题有关。
我的应用程序是用Java编写的,并使用jSerialComm进行通信。但是,我首先使用了rxtx,它在上述问题上没有什么不同。我唯一注意到的是即使使用jSerialComm,应用程序对我而言什么都不做,使用rxtx的cpu负载也只有10%。
我使用与minicom相连的串行端口参数。下面的代码。
this.port = SerialPort.getCommPort("/dev/ttyACM0");
this.port.openPort();
this.port.setComPortTimeouts(SerialPort.TIMEOUT_READ_SEMI_BLOCKING | SerialPort.TIMEOUT_WRITE_BLOCKING, 0, 0);
this.port.setComPortParameters(115200, 8, SerialPort.ONE_STOP_BIT, SerialPort.NO_PARITY);
this.port.setFlowControl(SerialPort.FLOW_CONTROL_RTS_ENABLED | SerialPort.FLOW_CONTROL_CTS_ENABLED);
this.in = port.getInputStream();
this.out = port.getOutputStream();
我用来初始化调制解调器的命令:
ATE1
AT+GCI=42
AT+FCLASS=8
AT+VCID=1
并接受语音呼叫并进入接收和发送模式:
AT+VSM=1
AT+VLS=1
AT+VTR
我将命令转换为ISO-8859-1,并在发送命令之前附加\ r \ n。我也遵循手册的建议,在调制解调器发送回复消息和下一条命令之间的等待时间超过100毫秒。
编辑:我分析了我从调制解调器获得的输出数据的原始转储,并且经过短暂的沉默(1-2秒)后,数据输出包含: “检测到数字线”。同样,该手册将其列为可能的响应代码(通常,并非特定于任何内容),而没有进行解释。
手册: https://www.manualslib.com/manual/1140976/Conexant-Cx93010.html
Amazon链接到我购买的调制解调器: https://www.amazon.de/gp/product/B016MXLCEQ/