|
@@ -5,7 +5,13 @@ Minitel m(53,52); //Dfinition pour le Serial du Minitel
|
|
|
|
|
|
void saisieNum(char *num);
|
|
|
void saisieTxt(char *txt);
|
|
|
-void send_AT_cmd(const char *at_cmd);
|
|
|
+void send_AT_cmd(const char *at_cmd, char *at_rep);
|
|
|
+void send_sms();
|
|
|
+void enter_pin();
|
|
|
+
|
|
|
+// CAYE PAS BIEN ET JMEN FOUT !
|
|
|
+char rep[50];
|
|
|
+
|
|
|
|
|
|
void setup()
|
|
|
{
|
|
@@ -15,28 +21,113 @@ void setup()
|
|
|
/****Simulation ON/OFF*****/
|
|
|
// pinMode(8, OUTPUT);
|
|
|
// digitalWrite(8, HIGH);
|
|
|
-
|
|
|
+ char rep[30];
|
|
|
+ char mess_ok[50];
|
|
|
m.clearScreen();
|
|
|
- /**** Saisie future du code PIN *****/
|
|
|
- m.text("[*] Set pin code ", 2, 1);
|
|
|
- send_AT_cmd("AT+CPIN=2507\r");
|
|
|
m.textMode();
|
|
|
m.textColor(WHITE);
|
|
|
m.bgColor(BLACK);
|
|
|
- m.text("[ ]", 2, 3);
|
|
|
+
|
|
|
+ m.text(" Smartphone Minitel V1 ", 1, 1);
|
|
|
+ /**** check du pin *****/
|
|
|
+ send_AT_cmd("AT+CPIN?\r", rep);
|
|
|
+ Serial.println(rep);
|
|
|
+ if (strstr(rep, "READY") == NULL) {
|
|
|
+ m.blink();
|
|
|
+ m.text("[ ] Check for pin lock... ", 2, 3);
|
|
|
+ m.text("Enter PIN code : ", 2, 4);
|
|
|
+ enter_pin();
|
|
|
+
|
|
|
+ }
|
|
|
+ m.noBlink();
|
|
|
+ m.text("[*] PIN code is good ! ", 2, 3);
|
|
|
+
|
|
|
+ m.text("[ ]", 2, 5);
|
|
|
m.blink();
|
|
|
- m.text("Waiting for Auth Network .....", 6, 3);
|
|
|
+ m.text("Waiting for Auth Network .....", 6, 5);
|
|
|
+
|
|
|
+ send_AT_cmd("AT+COPS?\r", rep);
|
|
|
+ Serial.print(rep);
|
|
|
+ char *token;
|
|
|
+ token = strtok(rep, " ");
|
|
|
+ while (token == NULL) {
|
|
|
+ delay(100);
|
|
|
+ }
|
|
|
+ sprintf(mess_ok, "You are connected to %s", token);
|
|
|
+
|
|
|
|
|
|
m.noBlink();
|
|
|
- m.text("[*]", 2, 3);
|
|
|
- m.text("You are now connected ! ", 6, 3);
|
|
|
- send_AT_cmd("AT+CGREG?\r");
|
|
|
- send_AT_cmd("AT+CMGF=1\r"); //Mode texte pour SMS
|
|
|
+ m.text("[*]", 2, 5);
|
|
|
+ m.text(mess_ok, 5, 5);
|
|
|
+ send_AT_cmd("AT+CGREG?\r\r", rep);
|
|
|
+ Serial.print(rep);
|
|
|
+
|
|
|
+ delay(1000);
|
|
|
+
|
|
|
|
|
|
}
|
|
|
|
|
|
void loop()
|
|
|
{
|
|
|
+
|
|
|
+ m.clearScreen();
|
|
|
+ m.textMode();
|
|
|
+ m.textColor(WHITE);
|
|
|
+ m.bgColor(RED);
|
|
|
+ m.text(" Smartphone Minitel V1 ", 1, 1);
|
|
|
+ m.text(" Operator : XXXXXX", 1, 23);
|
|
|
+ m.bgColor(BLACK);
|
|
|
+ m.text("1 - Send SMS", 4, 5 );
|
|
|
+ m.text("2 - Read SMS", 4, 6 );
|
|
|
+
|
|
|
+ while(1) {
|
|
|
+ if(m.available()>0) {
|
|
|
+ char key = NULL;
|
|
|
+ // Obligation de lire 2 buffer en cas de touche Menu
|
|
|
+ key = m.getKey();
|
|
|
+ switch(key) {
|
|
|
+ case '1':
|
|
|
+ send_sms();
|
|
|
+ break;
|
|
|
+
|
|
|
+ case '2':
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ delay(1000);
|
|
|
+
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+void enter_pin()
|
|
|
+{
|
|
|
+ char pin[5];
|
|
|
+ char at_pin[12];
|
|
|
+ saisieNum(pin);
|
|
|
+ sprintf(at_pin, "AT+CPIN=%s\r", pin);
|
|
|
+ Serial.print(pin);
|
|
|
+ send_AT_cmd(at_pin, rep);
|
|
|
+ Serial.print(rep);
|
|
|
+ return;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+void send_sms()
|
|
|
+{
|
|
|
+
|
|
|
+ m.clearScreen();
|
|
|
+ m.textMode();
|
|
|
+ m.textColor(WHITE);
|
|
|
+ m.bgColor(RED);
|
|
|
+ m.text(" Send SMS ", 4, 1);
|
|
|
+ m.bgColor(BLACK);
|
|
|
+ m.text("Number : +", 1, 4);
|
|
|
+ m.cursor();
|
|
|
+ m.moveCursorTo(12,4);
|
|
|
+
|
|
|
+
|
|
|
char num[20];
|
|
|
char txt[160];
|
|
|
// char *cmgs = "AT+CMGS=\"+";
|
|
@@ -46,37 +137,31 @@ void loop()
|
|
|
|
|
|
// strcpy(cmdcmgs, cmgs);
|
|
|
// Serial.print(cmdcmgs);
|
|
|
- //send_AT_cmd("AT+CGATT?\r");
|
|
|
+// send_AT_cmd("AT+CGATT?\r");
|
|
|
saisieNum(num);
|
|
|
saisieTxt(txt);
|
|
|
- //Serial.print(num);
|
|
|
+// Serial.print(num);
|
|
|
// strcat(cmdcmgs, num);
|
|
|
// Serial.print(cmdcmgs);
|
|
|
// strcat(cmdcmgs, endcmgs);
|
|
|
- sprintf(cmdcmgs, "AT+CMGS=\"+%s\"%s\n", num, txt);
|
|
|
- send_AT_cmd(cmdcmgs);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ send_AT_cmd("AT+CMGF=1\r", rep); //Mode texte pour SMS
|
|
|
+ delay(100);
|
|
|
+ sprintf(cmdcmgs, "AT+CMGS=\"+%s\"\r", num);
|
|
|
+ send_AT_cmd(cmdcmgs, rep);
|
|
|
+ send_AT_cmd(txt, rep);
|
|
|
+
|
|
|
+ delay(1000);
|
|
|
|
|
|
+ return loop();
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
void saisieNum(char *num) {
|
|
|
int strCount = 0;
|
|
|
|
|
|
- m.clearScreen();
|
|
|
- m.textMode();
|
|
|
- m.textColor(WHITE);
|
|
|
- m.bgColor(RED);
|
|
|
- m.text(" SMS Sender ", 4, 1);
|
|
|
- m.bgColor(BLACK);
|
|
|
- m.text("Number : +", 1, 4);
|
|
|
- m.cursor();
|
|
|
- m.moveCursorTo(12,4);
|
|
|
- delay(100);
|
|
|
- delay(100);
|
|
|
while(1) {
|
|
|
if(m.available()>0) {
|
|
|
char key = NULL;
|
|
@@ -120,7 +205,8 @@ void saisieTxt(char *txt) {
|
|
|
key = m.getKey();
|
|
|
if (key == '8') {
|
|
|
txt[strCount]='\x1a';
|
|
|
- txt[strCount+1]='\0';
|
|
|
+ txt[strCount+1]='\r';
|
|
|
+ txt[strCount+2]='\0';
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
@@ -136,13 +222,17 @@ void saisieTxt(char *txt) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void send_AT_cmd(const char *at_cmd)
|
|
|
+void send_AT_cmd(const char *at_cmd, char *at_rep)
|
|
|
{
|
|
|
- Serial1.println(at_cmd);
|
|
|
+ Serial1.print(at_cmd);
|
|
|
+ int strCount = 0;
|
|
|
Serial.println(at_cmd);
|
|
|
+ delay(100);
|
|
|
while(Serial1.available()>0) {
|
|
|
char reponse = Serial1.read();
|
|
|
- Serial.print(reponse);
|
|
|
+ at_rep[strCount] = reponse;
|
|
|
+ strCount++;
|
|
|
}
|
|
|
+ at_rep[strCount]='\0';
|
|
|
delay(1000);
|
|
|
}
|