나는 simdul을 사용하여 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;
}
의 반환을 확인 나던
소프트웨어 시리얼 통신에 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
가 호출하고 호출하는 경우 수신기가 캐리어를
ATD6985952400;
NO CARRIER
을하지 않은 경우, 답을
MO RING //instant response
NO CARRIER // after some sec
을 끊고 끊으 경우
MO RING
MO CONNECTED
+COLP: "69XXXXXXXX",129,"",0,""
OK
NO CARRIER
질문은 다른 반환 f를 사용하는 방법입니다 또는이 함수에 의해 모든 경우 gprsTest.callUp(number)
, 또는 적어도 울리는 경우 true를 반환하는 방법?