/********************************************************** Sends parameters for initialization of GSM module group: 0 - parameters of group 0 - not necessary to be registered in the GSM 1 - parameters of group 1 - it is necessary to be registered **********************************************************/ void GSM::InitParam(byte group) { switch (group) { case PARAM_SET_0: // check comm line if (CLS_FREE != GetCommLineStatus()) return; SetCommLineStatus(CLS_ATCMD); // Reset to the factory settings SendATCmdWaitResp("AT&F0", 1000, 20, "OK", 5); // switch off echo SendATCmdWaitResp("ATE0", 500, 20, "OK", 5); // setup auto baud rate SendATCmdWaitResp("AT+IPR=0", 500, 20, "OK", 5); SetCommLineStatus(CLS_FREE); break; case PARAM_SET_1: // check comm line if (CLS_FREE != GetCommLineStatus()) return; SetCommLineStatus(CLS_ATCMD); // set the SMS mode to text SendATCmdWaitResp("AT+CMGF=1", 500, 20, "OK", 5); // init SMS storage InitSMSMemory(); // select phonebook memory storage SendATCmdWaitResp("AT+CPBS=\"SM\"", 1000, 20, "OK", 5); break; } }
void GSM::InitParam(byte group){ switch (group) { case PARAM_SET_0: // check comm line //if (CLS_FREE != GetCommLineStatus()) return; SetCommLineStatus(CLS_ATCMD); // Reset to the factory settings SendATCmdWaitResp("AT&F", 1000, 50, "OK", 5); // switch off echo SendATCmdWaitResp("ATE0", 500, 50, "OK", 5); // setup fixed baud rate //SendATCmdWaitResp("AT+IPR=9600", 500, 50, "OK", 5); // setup mode //SendATCmdWaitResp("AT#SELINT=1", 500, 50, "OK", 5); // Switch ON User LED - just as signalization we are here //SendATCmdWaitResp("AT#GPIO=8,1,1", 500, 50, "OK", 5); // Sets GPIO9 as an input = user button //SendATCmdWaitResp("AT#GPIO=9,0,0", 500, 50, "OK", 5); // allow audio amplifier control //SendATCmdWaitResp("AT#GPIO=5,0,2", 500, 50, "OK", 5); // Switch OFF User LED- just as signalization we are finished //SendATCmdWaitResp("AT#GPIO=8,0,1", 500, 50, "OK", 5); SetCommLineStatus(CLS_FREE); break; case PARAM_SET_1: // check comm line //if (CLS_FREE != GetCommLineStatus()) return; SetCommLineStatus(CLS_ATCMD); // Request calling line identification SendATCmdWaitResp(F("AT+CLIP=1"), 500, 50, "OK", 5); // Mobile Equipment Error Code SendATCmdWaitResp(F("AT+CMEE=0"), 500, 50, "OK", 5); // Echo canceller enabled //SendATCmdWaitResp("AT#SHFEC=1", 500, 50, "OK", 5); // Ringer tone select (0 to 32) //SendATCmdWaitResp("AT#SRS=26,0", 500, 50, "OK", 5); // Microphone gain (0 to 7) - response here sometimes takes // more than 500msec. so 1000msec. is more safety //SendATCmdWaitResp("AT#HFMICG=7", 1000, 50, "OK", 5); // set the SMS mode to text SendATCmdWaitResp(F("AT+CMGF=1"), 500, 50, "OK", 5); // Auto answer after first ring enabled // auto answer is not used //SendATCmdWaitResp("ATS0=1", 500, 50, "OK", 5); // select ringer path to handsfree //SendATCmdWaitResp("AT#SRP=1", 500, 50, "OK", 5); // select ringer sound level //SendATCmdWaitResp("AT+CRSL=2", 500, 50, "OK", 5); // we must release comm line because SetSpeakerVolume() // checks comm line if it is free SetCommLineStatus(CLS_FREE); // select speaker volume (0 to 14) //SetSpeakerVolume(9); // init SMS storage InitSMSMemory(); // select phonebook memory storage SendATCmdWaitResp(F("AT+CPBS=\"SM\""), 1000, 50, "OK", 5); SendATCmdWaitResp(F("AT+CIPSHUT"), 500, 50, "SHUT OK", 5); break; } }