Program for interface of GSM
I am Getting serial input data
void serialEvent()
{
inchar = Serial.read();
if(inchar!='\n'){ inputstring += inchar;}
else {input_stringcomplete = true;}
}
in main loop
if (input_stringcomplete)
{
Serialstringsep();
inputstring = "";
input_stringcomplete = false;
}
void Serialstringsep()
{
if (inputstring.indexOf("+CPBR:")>=0) //inputstring.startsWith("+CPBR: ")
{
int Index1=inputstring.indexOf(' ');
int Index2=inputstring.indexOf(',');
int Index3=inputstring.indexOf('"');
int Index4=inputstring.indexOf('"',Index3+1);
String sim1=inputstring.substring(Index1+1,Index2);
String simmnum=inputstring.substring(Index3+1,Index4);
int simc = sim1.toInt();
if(simc==5){eewrite(552,String(simmnum));}
if(simc==4){eewrite(539,String(simmnum));}
if(simc==3){eewrite(526,String(simmnum));}
if(simc==2){eewrite(513,String(simmnum));}
if(simc==1){eewrite(500,String(simmnum));usetsms=true;}
}
/*********************************SIM Contact Number *************************/
if (inputstring.indexOf("+CPBS:")>=0) //(inputstring.startsWith("+CPBS: "))
{
int Index1=inputstring.indexOf(',');
int Index2=inputstring.indexOf(',', Index1+1);
String simcontact = inputstring.substring(Index1+1,Index2);
int simc = simcontact.toInt();
eewrite(649,String(simc)); // Store Total Number from SIM card
eeread(649); simnum=UID;
phonenum=true;
}
/********************************Sim Insert **********************************/
if (inputstring.indexOf("+CSMINS:")>=0) //(inputstring.startsWith("+CSMINS: "))
{
int Index1=inputstring.indexOf(',');
String simvalue = inputstring.substring(Index1+1);//+CSMINS: 0,1
int simp =simvalue.toInt();
if(simp==1){ simpresent=true; usersetsimcard();}
if(simp==0){ simpresent=false; }
}
/*******SMS UNREAD/
if (inputstring.indexOf("+CMTI:")>=0)//(inputstring.startsWith("+CMTI: "))
{
int Index1=inputstring.indexOf('"');
int Index2 = inputstring.indexOf('"', Index1+1);
int Index3 = inputstring.indexOf(',');
String smvalue = inputstring.substring(Index3+1);
gsm_smsread(smvalue);
}
/*****SMS READ/
if (inputstring.indexOf("+CMGR:")>=0) //(inputstring.startsWith("+CMGR: "))
{
int Index1 = inputstring.indexOf('"');
int Index2 = inputstring.indexOf('"', Index1+1);
int Index3 = inputstring.indexOf('"', Index2+1);
int Index4 = inputstring.indexOf('"', Index3+1);
int Index5 = inputstring.indexOf('"', Index4+1);
int Index6 = inputstring.indexOf('"', Index5+1);
int Index7 = inputstring.indexOf('"', Index6+1);
int Index8 = inputstring.indexOf('"', Index7+1);
int Index9 = inputstring.indexOf('"', Index7+1);
rxnumstr = inputstring.substring(Index3+4, Index4);
smsdate = inputstring.substring(Index7+1, Index8);
int Index10=smsdate.indexOf("/");
int Index11=smsdate.indexOf("/", Index10+1);
int Index12=smsdate.indexOf(",");
int Index13=smsdate.indexOf("+");
syear = smsdate.substring(0, Index10);
smonth = smsdate.substring(Index10+1, Index11);
sdate = smsdate.substring(Index11+1, Index12);
stime = smsdate.substring(Index12+1, Index13);
n1=1;
}
/***************************************Message *****************************************************/
if(n1==2)
{
mess=inputstring; n1=0;
char msg[8];
mess.toCharArray(msg,8);
/*******************************UNIT ON *********************************************/
if((msg[0]=='U' || msg[0]=='u')&&(msg[1]=='O' || msg[1]=='o')&&(msg[2]=='N' || msg[2]=='n'))
{
// relay on when i send the UON message
}
/*************************************************************************************/