我想编写代码,使用 gsm 调制解调器接听电话,并在接听电话后检测呼叫者的按键情况。我可以使用移动调制解调器接听电话,但对于边缘调制解调器,它显示“无运营商”并且呼叫者听到忙音。另外,我想接收来自 gsm 调制解调器的呼叫并检测呼叫者手机上按下的按键。我正在使用 C#。我只需要 AT 命令。
我需要向调制解调器发送 AT 命令。我使用的是三星 Galaxy S3 I9300 设备,该设备已 root。
我所做的步骤是:
abd shell
su
echo -e "AT\r"
Run Code Online (Sandbox Code Playgroud)
但我不确定如何读取上述命令给出的响应。我尝试按如下方式重定向命令:
echo -e "AT\r" > /dev/smd0,但是当我执行 cat 时,/dev/smd0我没有看到任何响应,我只看到“AT”。似乎我打算执行的命令被解释为字符串,并且我看到该字符串而不是该操作的结果。
请建议我做错了什么。
目前我正在开发一个应用程序,我已经与 OBD II ELM 327 适配器建立了连接,并且可以从 OBD II 读取数据。例如,我使用 OBD 命令“ 01 0C ”来获取车辆的转速。
我想检索实时数据,例如车辆的速度或转速。这就是我被困住的地方。我没有得到 - “我如何能够持续从车辆获取此类实时数据?
我知道,OBD II 正在响应我的每一个 AT 或 OBD 命令。我的想法是,如果我重复向 OBD II 适配器发送任何命令,它每次都会发送回数据。
谁能告诉我,如何连续发送单个命令,例如“01 0C”?我应该使用哪种方法从车辆获取真实数据?
请有人指导我解决这个问题。任何指导都会有很大的帮助。
谢谢。
我已将华为 USB UMTS 调制解调器 (E220) 连接到我的 Linux 机器,即 RaspberryPi。现在我有 2 个 ttyUSB 端口可用于与它通信,我使用 ttyUSB0 建立移动互联网连接和 ttyUSB1 用于其他任务,如发送和接收 SMS、检查状态和错误代码、进行调制解调器配置等。 定期(2 秒) ) 我在端口 ttyUSB1 上收到这个 AT 命令:
^DSFLOWRPT:n,n,n,n,n,n,n
Run Code Online (Sandbox Code Playgroud)
我完全理解(链接:感谢来自 http://mybroadband.co.za 的用户ginggs)。我也不太经常收到^BOOT命令,如下所示:
^BOOT:12659389,0,0,0,58
Run Code Online (Sandbox Code Playgroud)
有人可以解释 ^BOOT 中的这些数字是什么意思吗?我可以让 ^DSFLOWRPT 和 ^BOOT 中的通知/警告少/多一些(类似于“错误开/关”)?
[编辑]
添加了用于理解 ^DSFLOWRPT 命令的链接。
我面临与命令相关的问题AT+CUSD。在某些 Gsm 调制解调器上,此命令需要三个参数,而在其他调制解调器上,它只需要两个参数。此外,这些参数的值不同。
我想知道,如何配置Gsm调制解调器,以便该命令可以在大多数Gsm调制解调器上以统一的方式执行。
例如:在诺基亚 c6-01上,只有这样才能成功执行 cusd 命令:
AT+CUSD=1,"*123#",15
Run Code Online (Sandbox Code Playgroud)
而在索尼爱立信 K750 上:
AT+CUSD=1,"*123#"
Run Code Online (Sandbox Code Playgroud)
如果我给出第三个参数,它会出错。
我有一个使用 post 方法接受 json 数据的网站。当我尝试从 POSTMAN 休息客户端发送请求时,它工作正常。当我尝试使用 AT 命令进行相同操作时,它失败了。
这是我尝试过的 AT 序列
AT
AT+CREG?
AT+CGATT?
AT+CIPSHUT
AT+CIPSTATUS
AT+CIPMUX=0
AT+CGDCONT=1,"IP","airtelgprs.com"
AT+CSTT="airtelgprs.com"
AT+CIICR
AT+CIFSR
AT+CIPSTATUS
AT+CIPSTART= "TCP","obdsam.herokuapp.com","80"
AT+CIPSEND
>
POST /newtasks HTTP/1.1 (Ctrl+M + Ctrl+J)
HOST: obdsam.herokuapp.com" (Ctrl+M + Ctrl+J)
Accept: application/json (Ctrl+M + Ctrl+J)
Content-Type: application/json (Ctrl+M + Ctrl+J)
{"RPM":"41","ECT":"20"} (Ctrl+M + Ctrl+J)
(ctrl+j)(ctrl+z)
Run Code Online (Sandbox Code Playgroud)
可能是什么问题?
这是串行终端的回复
我正在做这里建议的事情:通过 ADB Android 发送 AT 命令
所以在我扎根我的三星 S5 之后,我用这个命令找到了我的调制解调器:getprop rild.libargs我得到了这个结果:-d /dev/smd0
然后我在我的 adb shell 中输入: echo -c "AT\r\n" > /dev/smd0
但什么都没有返回。
我不明白,有什么想法吗?
我还尝试了其他命令,例如:AT+CREG or AT+COPS=?,仍然没有。
我正在尝试使用来自华为调制解调器的 AT 命令发送短信。但有时在使用 AT+CMGS 时 会返回 +CMS ERROR:302
这是我的代码
var SerialPort = require('serialport');
var port = new SerialPort("/dev/ttyUSB0", {
baudRate: 9600,
dataBits: 8,
parity: 'none'
});
console.log('port is now open');
port.on("open", function () {
console.log('Serial communication open');
port.write("AT");
port.write('\r');
port.on('data', function(data) {
console.log("Received data: " + data);
});
gsm_message_sending(port, "test", "+94758034032");
});
function gsm_message_sending(serial, message ,phone_no) {
serial.write("AT+CMGF=1");
serial.write('\r');
serial.write("AT+CMGS=\"" + phone_no + "\"");
serial.write('\r');
serial.write(message);
serial.write(Buffer([0x1A]));
serial.write('^z');
}
Run Code Online (Sandbox Code Playgroud)
我需要帮助找出导致此错误的原因..谢谢
我曾经在我的 Android 设备上使用“强制网络连接”到 LTE
at+cops=0,,,7
Run Code Online (Sandbox Code Playgroud)
5G NR有AT指令吗?
我使用 AT 命令与 ESP8266 的 Ai-Thinker A9G 芯片进行通信,作为 GPS 跟踪器单元的一部分。一开始工作正常,然后在成功发送 7 或 8 后 HTTPS 请求开始失败。然而,发出 HTTP 请求仍然没问题。
当 HTTP 请求工作正常时,什么可能导致 HTTPS 请求在前 7 个或 8 个之后失败?
细节...
当设备启动时,我使用以下方法建立 GPRS 连接:
AT+CGREG=1
> OK
AT+CGATT=1
> +CGATT:1
> OK
AT+CGDCONT=1,"IP","data.uk" // APN for 1pmobile
> OK
AT+CGACT=1,1
> OK
AT+CGACT?
> +CGACT: 1, 1
> OK
Run Code Online (Sandbox Code Playgroud)
然后每 N 分钟发布一次位置,如下:
AT+HTTPPOST="https://<URL>","application/x-www-form-urlencoded","arg1=val1&arg2=val2&..."
Run Code Online (Sandbox Code Playgroud)
前 7 或 8 次有效,之后所有 HTTPS 请求都会失败,并显示以下消息(完全按照从 A9G 芯片发送的方式复制,包括固件的拼写错误):
+CME ERROR: parameters are invalid
failure, pelase check your network or …Run Code Online (Sandbox Code Playgroud)