void gsm_init_report(void) { /* Second call */ if (gsm_status != STATUS_NONE) { gsm_buf_idx = 0; gsm_line_received = false; Send_AT(); gsm_status = STATUS_SEND_AT; gsm_gsm_init_report_status = FALSE; } }
// fonction de traitement des données recues sur l'UART void Traitement_reponse(int handle) { char buffer[450]; strcpy(buffer, chaine_recue); chaine_recue[0] = '\0'; printf("Recu : %s\n", buffer); // si on a recu un nouveau SMS if(locate("+CMTI:", buffer) == 1) { while((envoi_sms_en_cours == 1) || (reception_sms_en_cours)); reception_sms_en_cours = 1; printf("Nouveau SMS recu\n"); Reception_SMS(handle); } else if ((wait_prompt == 1) && (locate(">", buffer) == 1)) { printf("Suite de l'envoi du SMS\n"); wait_prompt = 0; ligne_occupee = 0; Send_Msg_part2(handle); } else if (wait_reponse == 1) { ligne_occupee = 0; if(locate(reponse_attendue, buffer) == 1) { GSM_reponse = 1; wait_reponse = 0; reponse_attendue[0] = '\0'; } else GSM_reponse = 0; // Suite des opérations... switch(fct_en_cours) { case _AT : if(GSM_reponse == 1) Send_cmgf(handle); else Send_AT(handle); break; case _CMGF : if(GSM_reponse == 1) { Send_cnmi(handle); } else Send_cmgf(handle); break; case _CNMI : if(GSM_reponse == 1) Send_cpms(handle); else Send_cnmi(handle); break; case _CPMS : if(GSM_reponse == 1) { printf("Configuration correcte du module GSM\n"); //Send_fin_config(handle); } else Send_cpms(handle); break; case _SUPPR_SMS : if(GSM_reponse == 1) reception_sms_en_cours = 0; break; case _FINCONF : break; case _RECEPTION_SMS : if(GSM_reponse == 1) { strcpy(GSM_Line, buffer); Reception_SMS_Continue(handle); } break; default : break; } } buffer[0] = '\0'; fflush(stdout); }
gboolean init(gpointer handle) { Send_AT((int)handle); return FALSE; }