我正在使用AT命令编程调制解调器.当我执行时AT+CMGL="ALL",有时它不返回任何东西.在其他时候,它返回消息列表.
你能告诉我为什么吗?
我正在做一个涉及Arduino和TC35 GSM模块的业余爱好项目,一切都很顺利,但我想知道是否有一个AT命令终止语音通话(ATD +电话号码;)因为我似乎找不到任何一个我搜索过的文献.
谢谢,戴夫
我正在使用带有IComsat SIM900 GSM/GPRS屏蔽的Arduino UNO.使用以下教程:Arduino Live GPS Tracker我遇到了AT + CREG?命令,检查SIM卡是否在提供商处注册.
使用以下逻辑:在"void setup()"函数中的GSM_HTTP.INO文件中,以下行执行modem.checkNetwork();
void setup() {
Serial.begin(9600);
Serial.println("GM862 monitor");
modem.switchOn(); // switch the modem on
delay(4000); // wait for the modem to boot
modem.init(); // initialize the GSM part of Module
modem.version(); // request modem version info
while (!modem.isRegistered()) {
delay(1000);
modem.checkNetwork(); // check the network availability
}
}
Run Code Online (Sandbox Code Playgroud)
函数"checkNetwork()"是包含的库GSM862.cpp的一部分,如下所示:
void GM862::checkNetwork() {
char buf[BUF_LENGTH];
char result;
requestModem("AT+CREG?", 1000, true, buf);
result = buf[21];
if (result == '1') {
state …Run Code Online (Sandbox Code Playgroud) 我使用java使用AT命令与gsm调制解调器(西门子)通信.
我将调制解调器的编码设置为"UCS2".
当我发送电话号码时发送消息我从设备收到错误:
AT + CSCS = UCS2
OK
AT + CSMP = 17,167,0,8
OK
AT + CMGF = 1
OK
AT + CMGS ="0919xxxxxxx"
ERROR
HELP ME ,PLEEEEEEASE!:(
有谁知道从 rssi 将 GSM 网络覆盖率计算为百分比 (0 .. 100) 的公式吗?对于 8 位 AVR 微控制器 CPU 来说应该是安全的,没有硬核数学运算,如对数或除以不是 2^n 的东西(首选位移)。创建具有 32 个可能百分比值的数组是一个糟糕的解决方案。
可能的 rssi 值(0..31 是有效值):
0 -113 dBm or less
1 -111 dBm
2...30 -109... -53 dBm
31 -51 dBm or greater
99 not known or not detectable
Run Code Online (Sandbox Code Playgroud)
我想要的近似值:
RSSI %
0 0
1 3
2 6
3 10
4 13
5 16
6 19
7 23
8 26
9 29
10 32
11 36
12 39
13 42
14 …Run Code Online (Sandbox Code Playgroud) 实际上我对串口没什么了解.但我看到一个发送命令的例子:
echo -e "AT" > /dev/smd0
Run Code Online (Sandbox Code Playgroud)
什么是/ dev/smd0以及它们为什么有时用/ dev/ttyS0替换它.
我有一个脚本可以从外部爱立信F3507gw调制解调器获取信号强度,该调制解调器连接到:
ttyACM0: mobile broadband data modem
ttyACM1: mobile broadband modem
ttyACM2: GPS port
cdc-wdm0: Device management
cdc-wdm1: USIM port
Run Code Online (Sandbox Code Playgroud)
cu -l /dev/ttyACM2发送AT命令正常工作。当我不运行Ubuntu的调制解调器管理器(禁用移动宽带)时,我可以运行我的脚本而没有任何问题。但是,当使用调制解调器管理器连接Ubuntu时,有时会得到:
cu -l /dev/ttyACM2
cu: /dev/ttyACM2: Line in use
我还没有弄清楚什么时候,但是我想修复它。我的用户在拨号组中,所以没有权限问题。任何想法如何在不终止调制解调器管理器的情况下运行我的脚本?
该脚本仅使用发送AT命令echo。
我正在尝试使用命令和USC2编码发送Unicode SMS.但它不起作用,因为我得到错误.这是我的意见:
AT
OK
AT+CSCS = ?
+CSCS: ("IRA","GSM","UCS2")
AT+CSCS="UCS2"
OK
AT+CMGF=1
OK
AT+CSMP=1,167,0,8 //So this one doesnt work, let's try with 17,167,0,8
ERROR
AT+CSMP=17,167,0,8
OK
AT+CMGS="+370********"
ERROR
Run Code Online (Sandbox Code Playgroud)
或者我应该使用PDU模式来实现这一目标?
我尝试过使用较旧的调制解调器,USC2可以在那个调制解调器中工作,但不是一次使用.但我确定这个冲突的调制解调器支持USC2.
我已经购买了中兴MF667 GSM调制解调器,我使用超级终端发送AT命令,我有USSD问题,例如:
AT+CUSD=1,"*111#",15 (to check balance) but it returns only OK
AT+CUSD=1,"*111#" returns only OK
Run Code Online (Sandbox Code Playgroud)
我已经测试了另一个AT COMMADS,它的工作正常
AT+CMGL="ALL" to read SMS (WORKS)
Run Code Online (Sandbox Code Playgroud)
我怎么能解决这个问题呢?
我正在尝试发送命令以在 huawei e3131a 调制解调器上获得平衡,但无论我使用什么配置(GSM、IRA、UCS2),我总是收到“Ok”作为答案。我还尝试将操作员代码 ( #123#)更改为多种格式,例如十六进制 PDU 简单字符串,但无法获得平衡。这是我发送的命令:
AT+CUSD=1,"#123#",15。在此先感谢您的帮助。
注意:我正在使用 Putty 发送命令。