I have written the below program to receive text messages and interpret them. I only have 4 possible messages for it to interpret. <on##.##> The last one is giving me troubles. This section of my code starts with void evaluate(). For some reason when I text it something like <on12.65> I get the following result outputted to my serial monitor.
First Char
<
Second Char
o
Third Char
n
Fourth Char
1
Fifth Char
2
Sixth Char
.
Seventh Char
5
Eighth Char
6
Ninth Char
ÿ
Obviously my code is looking to receive > on the ninth character but this stupid ÿ symbol comes across. WHY? and how to I fix it? When I type in or or it works perfectly. Also this ÿ thing stops my program from receiving any more text messages.
Thanks for your help in advance.
Jake
[b]void evaluate()
{
static char input_line [4];
inchar=SIM900.read(); //First char
Serial.println("First Char");
Serial.println(inchar);
if (inchar=='<')
{
inchar=SIM900.read(); //Second char
Serial.println("Second Char");
Serial.println(inchar);
if (inchar=='o')
{
inchar=SIM900.read(); //Third char
Serial.println("Third Char");
Serial.println(inchar);
if (inchar=='n')
{
inchar=SIM900.read(); //fourth char
Serial.println("Fourth Char");
Serial.println(inchar);
if (inchar=='>')
{
conditional=LOW;
digitalWrite(led, HIGH);
textForSMS = "Device Turned On";
sendSMS(textForSMS);
}
else if (inchar=='1' || inchar=='2' || inchar=='3' || inchar=='4' || inchar=='5'|| inchar=='6'|| inchar=='7'|| inchar=='8'|| inchar=='9'|| inchar=='0')
{
input_line [1]=inchar;
inchar=SIM900.read(); //fifth char
Serial.println("Fifth Char");
Serial.println(inchar);
if(inchar=='1' || inchar=='2' || inchar=='3' || inchar=='4' || inchar=='5'|| inchar=='6'|| inchar=='7'|| inchar=='8'|| inchar=='9'|| inchar=='0')
{
input_line [2]=inchar;
inchar=SIM900.read(); //sixth char
Serial.println("Sixth Char");
Serial.println(inchar);
if (inchar='.')
{
inchar=SIM900.read(); //seventh char
Serial.println("Seventh Char");
Serial.println(inchar);
if(inchar=='1' || inchar=='2' || inchar=='3' || inchar=='4' || inchar=='5'|| inchar=='6'|| inchar=='7'|| inchar=='8'|| inchar=='9'|| inchar=='0')
{
input_line [3]=inchar;
inchar=SIM900.read(); //eighth char
Serial.println("Eighth Char");
Serial.println(inchar);
if(inchar=='1' || inchar=='2' || inchar=='3' || inchar=='4' || inchar=='5'|| inchar=='6'|| inchar=='7'|| inchar=='8'|| inchar=='9'|| inchar=='0')
{
input_line [4]=inchar;
inchar=SIM900.read();//ninth char
Serial.println("Ninth Char");
Serial.println(inchar);
if (inchar=='>')
{
inchar=SIM900.read();//tenth
Serial.println("Tenth Char");
Serial.println(inchar);
digitalWrite(led, HIGH);
int val = (input_line [1]-'0')*1000+(input_line [2]-'0')*100+(input_line [3]-'0')*10+(input_line [4]-'0')*1;
Serial.println(val);
time(val);[/b]
}
}
}
}
}
}
}
}
void loop(void)
{
if(SIM900.available() >0) evaluate();