Maker Pro
Maker Pro

programming arduino

I need to send data when a condition is met from a gps module to mobile using gsm module.

I have used ports 3,4 for gps and pots 7,8 for gsm. I have used softwareserial.

I also tried 0,1 for gps and 7,8 for gsm; and vice versa.

The problem is that as soon as the condition is satisfied and msg is sent, the program gets stuck, it doesn't return back to the void loop.

So, I tried using goto statement, but am getting compile error



This is message sending function

boolean policeLights() {

digitalWrite(blue, HIGH);
cell.println("AT+CMGF=1"); // set SMS mode to text
cell.print("AT+CMGS="); // now send message...
cell.write((byte)34); // ASCII equivalent of "
cell.print(mobilenumber);
cell.write((byte)34); // ASCII equivalent of "
cell.println();
delay(500); // give the module some thinking time
cell.print("hi bobby, the king of kings... :)"); // our message to send
cell.write((byte)26); // ASCII equivalent of Ctrl-Z
cell.println();
delay(15000); // the SMS module needs time to return to OK status
do // do…while loop to send single sms..You don't want to send out multiple SMSs.... or do you?
{
delay(1);
}
while (1>0);
}

I tried using goto mand; at the end of this routine, and I tried to put the label "mand" in the beginning of the void loop function and also before, but I am getting compile errors


void loop() {

if (readGPS()) {
if (debugMode) {
debug();
}
}



I am confused how to write this goto function. Could anyone help?

Are there any other alternatives?
 
maybe your do while loop is causing an infinite loop.
your condition is 'while(1>0)' and 1 will always be greater than 0 so it just loop back to the delay?
 
maybe your do while loop is causing an infinite loop.
your condition is 'while(1>0)' and 1 will always be greater than 0 so it just loop back to the delay?

I tried removing the do while loop...

no difference at all, still getting stuck

to make it worse,now gsm is sending multiple messages instead of one.
 
Have you tried the if?

The condition is true when the condition is met from a gps module to mobile using gsm module and false after the message is send.
 
Top