bobdxcool
Member level 5
![Member level 5](/styles/images/ranks/dlevel5.gif)
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
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
I am confused how to write this goto function. Could anyone help?
Are there any other alternatives?
I have included the do while in order for the gsm module to send a single message.
If I remove it the gsm module sends multiple messages, but again the program gets stuck when the messages are sent out.
I tried using void policelights and adding a return command at the end of the function, but this did not work.
So, I tried using goto , but it has some compile errors as I am not able to configure the goto syntax.
How, do I get out of the function after the msg is sent and back to void loop ? pls help.
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
Code:
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
Code:
void loop() {
if (readGPS()) {
if (debugMode) {
debug();
}
}
I am confused how to write this goto function. Could anyone help?
Are there any other alternatives?
I have included the do while in order for the gsm module to send a single message.
If I remove it the gsm module sends multiple messages, but again the program gets stuck when the messages are sent out.
I tried using void policelights and adding a return command at the end of the function, but this did not work.
So, I tried using goto , but it has some compile errors as I am not able to configure the goto syntax.
How, do I get out of the function after the msg is sent and back to void loop ? pls help.
Last edited: