android 'atinout'不将AT命令响应存储到文件

zqdjd7g9  于 2022-12-02  发布在  Android
关注(0)|答案(1)|浏览(119)

我试图将atinout的输出保存到一个文件中,我可以在stdout上得到输出,但不是在一个文件中,也就是说,我的文件是空的。
atinout input.txt /dev/ttyUSB1 output.txt不适合我。
我认为这是因为我的控制台不会从命令中出来,除非我按Ctrl + C。也就是说,我的光标在OK之后保持闪烁,直到我按Ctrl + C。

$atinout input.txt /dev/ttyUSB1 -   
AT+CSQ
+CSQ: 27,99
OK

^C

对于AT,它会一直打印ATOK,直到我按Ctrl + C。

$echo AT | atinout - /dev/ttyUSB1 -
AAAT
OK

AAT
OK

AAT
OK

KAAT
OK

OAAT
OK

^C

可能是什么问题?我如何将AT命令输出保存到一个文件中,而不是只显示在stdout上?任何建议都将不胜感激!

nbysray5

nbysray51#

atinout处理URCs的能力有点有限。它只会返回+CME ERROR和+CMS ERROR代码。
您需要编辑源代码并将“+”大小写更改为:

switch (response[0]) {
case '+':
    if (STARTS_WITH(&response[1], "CME ERROR:")) {
        return true;
    }
    if (STARTS_WITH(&response[1], "CMS ERROR:")) {
        return true;
    }
    //Add CSQ URC
    if (STARTS_WITH(&response[1], "CSQ:")) {
        return true;
    }
    return false;

但是,如果OK响应在URC之前出现,则将输出URC。

相关问题