私はsim800lを使ってarduino UNOとAT commandsで通話しています。このlibraryを使用することにより、gprsTest.callUp(number)
の機能を呼び出すことができます。問題は、数字が間違っていたりクレジットがなくてもtrue
を返すことです。SIM800lライブラリを編集して確実に通話を確立する方法
この部分のコードはGPRS_Shield_Arduino.cpp libraryからはっきりとわかります。それはATDnumberhere;
bool GPRS::callUp(char *number)
{
//char cmd[24];
if(!sim900_check_with_cmd("AT+COLP=1\r\n","OK\r\n",CMD)) {
return false;
}
delay(1000);
//HACERR quitar SPRINTF para ahorar memoria ???
//sprintf(cmd,"ATD%s;\r\n", number);
//sim900_send_cmd(cmd);
sim900_send_cmd("ATD");
sim900_send_cmd(number);
sim900_send_cmd(";\r\n");
return true;
}
のリターンをチェックdoesntの
ソフトウェアのシリアル通信のATDnumberhere;
のリターンがある:なしクレジット
`MO CONNECTED //instant response
+COLP: "003069XXXXXXXX",129,"",0,"" // after 3 sec
OK`
がない場合
数は ERROR
間違っている場合電話で無回答の場合
MO RING //instant response, it is ringing
NO ANSWER // after some sec
それは、呼び出し元の答えと
MO RING
MO CONNECTED
+COLP: "69XXXXXXXX",129,"",0,""
OK
NO CARRIER
をハングアップされている場合は、受信機がキャリア
ATD6985952400;
NO CARRIER
をしていない場合は、呼び出し元と
MO RING //instant response
NO CARRIER // after some sec
をハングアップされている場合質問は異なる返品fを使用する方法ですまたはすべての場合この関数gprsTest.callUp(number)
によって、または少なくともそれが鳴っている場合trueを返す方法?