Ale*_*lex 15 linux modem serial-port
在 Linux (Ubuntu) 中,我试图将 AT 命令发送到/dev/ttyACM0. 我试着这样做:
sudo socat - /dev/ttyACM0
Run Code Online (Sandbox Code Playgroud)
但是在输入任何内容时,我只会得到一行重复此命令的行(我希望是OK)。
当我做
sudo minicom modem1
Run Code Online (Sandbox Code Playgroud)
它似乎工作。我输入 anAT并得到一个OK. 我输入一些废话,我得到一个ERROR.
似乎modem1minicom 以某种方式配置为在/dev/ttyACM0.
如何使用 socat 发送 AT 命令?我需要配置一些东西吗?也许我可以使用modem1minicom 的配置(我不知道如何找到/查看此配置)?
给定的socat命令是否正确?我应该玩一些选择吗?通过该-v选项,我看到以下内容:
AT
> 2013/10/23 17:10:28.917413 length=3 from=0 to=2
AT
< 2013/10/23 17:10:28.921598 length=3 from=0 to=2
AT
AT
ksjdhfjdgfhjkdfh
> 2013/10/23 17:10:30.244923 length=17 from=3 to=19
ksjdhfjdgfhjkdfh
< 2013/10/23 17:10:30.251383 length=29 from=3 to=31
ksjdhfjdgfhjk\b \bd\b \bf\b \bh\b \b
ksjdhfjdgfhj
Run Code Online (Sandbox Code Playgroud)
设备本身具有以下 dmesg 输出:
[5983726.808063] usb 2-1: USB disconnect, device number 3
[5983730.800021] usb 2-1: new full-speed USB device number 4 using uhci_hcd
[5983730.920014] usb 2-1: device descriptor read/64, error -71
[5983733.629524] usb 2-1: New USB device found, idVendor=0572, idProduct=1329
[5983733.629533] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[5983733.629539] usb 2-1: Product: USB Modem
[5983733.629544] usb 2-1: Manufacturer: Conexant
[5983733.629549] usb 2-1: SerialNumber: 24680246
[5983733.632673] cdc_acm 2-1:1.0: ttyACM0: USB ACM device
Run Code Online (Sandbox Code Playgroud)
并且 tty 配置如下:
speed 57600 baud; line = 0;
eof = ^A; min = 1; time = 0;
-brkint -icrnl -imaxbel
-opost -onlcr
-isig -icanon -echo -echoe
Run Code Online (Sandbox Code Playgroud)
Aar*_*son 13
尝试 socat - /dev/ttyUSB2,crnl
这告诉 socat 发送回车和换行。
澄清 - 这可以追溯到电动打字机的黑暗时代,在那里你必须告诉它将马车回滚到页面上的位置 0 - 因此,回车- 以及告诉它将纸张向上移动一行.
在 Linux 中向调制解调器发送 AT 命令的最佳方法是使用程序atinout,该程序的唯一目的是从命令行向调制解调器发送 AT 命令。
您可以使用它来测试调制解调器是否已启动并正在运行,备份电话簿:
$ atinout - /dev/ttyACM0 ten_first_phonebook_entries.txt <<EOF
at+cscs="UTF-8"
at+cpbs="SM"; +cpbr=1,10
at+cpbs="ME"; +cpbr=1,10
EOF
$
Run Code Online (Sandbox Code Playgroud)
或任何其他您使用 AT 命令的东西。
我发现这篇 Chromium 项目帖子显示了您想要的内容。它的标题是:调试蜂窝调制解调器。
该页面摘录
使用 AT 命令集直接与调制解调器通信
大多数调制解调器支持 AT 命令来控制调制解调器并查询信息。在启用了开发者模式的 Chromium 操作系统设备上,您可以使用 socat 命令与调制解调器通信。您需要安装了测试映像的 Chromium OS 设备(或者如果您熟悉开发服务器,则可以使用 gmerge socat)。例如:
- 键入 CTRL+ALT+T 进入 Crosh shell。
- 输入 shell 进入 bash shell。
- 确定要使用哪个 USB 设备: ls /dev/ttyACM* /dev/ttyUSB*
- 如果调制解调器管理器正在运行,请停止它: sudo stop modemmanager
- 键入 sudo socat - /dev/ttyACM1,crnl 或 sudo socat - /dev/ttyUSB0 与调制解调器通信。
- 确保使用以下命令启用调制解调器:“AT+CFUN=1”
例如:
Run Code Online (Sandbox Code Playgroud)crosh> shell chronos@localhost ~ $ sudo stop modemmanager chronos@localhost ~ $ ls /dev/ttyACM* /dev/ttyUSB* /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 chronos@localhost ~ $ socat - /dev/ttyUSB1 ATZ OK AT+CFUN=1 OK ATI Manufacturer: Qualcomm Incorporated Model: ...... Revision:.... ESN: 0x80d... +GCAP: +CIS707A, .... chronos@localhost ~ $根据调制解调器的不同,您可以尝试不同的 AT 命令,例如“AT+CGMI”、“AT+CGSN”等。