所以我正在编写一个小应用程序,从串行端口(连接到支持GSM的设备)读取数据,并将其写入redis数据库 - 然后可以读取"异步&#34 34;通过另一个过程。
我对来自端口本身的抓取和解码数据感到困惑
我可以使用minicomm读取和写入端口
我使用dio_open()/dio_read
功能取得了最大的成功,但我也试过fopen()/fread()
。
我在PHP 7.1.5
。
以下是我获取数据的方式。
$a = dio_open('/dev/tty.usbserial', O_RDWR | O_NOCTTY | O_NONBLOCK);
dio_tcsetattr($a, ['baud' => 9600,'bits' => 8,'stop' => 1,'parity' => 0]);
while (true) {
$data = dio_read($fd, 1024);
if ($data) {
echo $data;
}
}
响应类似于:
��`�j�������`���Aa���B��J������JC��`��B��``����``���`�``���B��d`��`����a�`��
我知道基于文本的版本前几个�
是:
RDY
+CFUN: 1
+CPIN: READY
如果我运行mb_detect_encoding($text, mb_detect_order(), true);
,则回复为"UTF8"
有人可以就如何解码回复提供一些指导或建议吗?
谢谢。
Marnu