private string ExecCommand(string command, int responseTimeout, ref CErreurAppli erreurAppli) { try { port.DiscardOutBuffer(); port.DiscardInBuffer(); port.Write(command + Crf); string input = ReadResponse(responseTimeout); if ((input.Length == 0) || (!input.EndsWith("\r\nOK\r\n"))) { erreurAppli.Set(eCodeErreur.ECHEC_LECTURE_SMS); } else { erreurAppli.Set(eCodeErreur.NO_ERROR); } return(input); } catch (Exception ex) { erreurAppli.Set(eCodeErreur.ECHEC_LECTURE_SMS, ex.Message); return(""); } }
public Boolean EnvoieReceptionSynchrone(ref CErreurAppli erreurAppli, Boolean isLecture, String pPhoneNumber, String pMessageToSend, out String sRetour) { sRetour = ""; try { lock (_thisLock) { return(isLecture ? ReadSms(ref erreurAppli) : SendSms(ref erreurAppli, pPhoneNumber, pMessageToSend, out sRetour)); } } catch (Exception ex) { erreurAppli.Set(eCodeErreur.ERROR, ex.Message); return(false); } }
private Boolean SendSms(ref CErreurAppli erreurAppli, String pPhoneNumber, String pMessageToSend, out String sRetour) { sRetour = ""; int iWaitTime = 0; try { if (port == null) { erreurAppli.Set(eCodeErreur.MODEM_NON_INITIALISE); return(false); } try { OuvrirPort(); if (port.IsOpen == false) { erreurAppli.Set(eCodeErreur.MODEM_NON_INITIALISE); return(false); } iWaitTime = 300; ExecCommand("AT", iWaitTime, ref erreurAppli); if (erreurAppli.eCode != eCodeErreur.NO_ERROR) { erreurAppli.Set(eCodeErreur.AUCUN_MODEM_CONNECTE_AU_PORT); return(false); } iWaitTime = 500; ExecCommand("AT+CMGF=1", iWaitTime, ref erreurAppli); if (erreurAppli.eCode != eCodeErreur.NO_ERROR) { erreurAppli.Set(eCodeErreur.ECHEC_MODIFICATION_FORMAT_SMS); return(false); } //Envoie de la première commande: numéro de téléphone iWaitTime = 300; ExecCommand("AT+CMGS=" + pPhoneNumber, iWaitTime, ref erreurAppli); //Envoie de la première commande: message iWaitTime = 60 * 1000; ExecCommand(pMessageToSend + (char)26, iWaitTime, ref erreurAppli); if (erreurAppli.eCode != eCodeErreur.NO_ERROR) { erreurAppli.Set(eCodeErreur.ECHEC_ENVOIE_SMS); return(false); } erreurAppli.Set(eCodeErreur.NO_ERROR); return(true); } catch (Exception ex) { erreurAppli.Set(eCodeErreur.ERROR, ex.Message); return(false); } finally { ClosePort(); } } catch (Exception ex) { erreurAppli.Set(eCodeErreur.ERROR, ex.Message); sRetour = ex.Message; return(false); } }
//private Boolean ReadSms(ref CErreurAppli erreurAppli, TraitementSMS.TraitmentSms mTraitementSMS) //{ // try // { // string input = ""; // int iWaitTime =0; // if (port == null) // { // erreurAppli.Set(eCodeErreur.MODEM_NON_INITIALISE); // return false; // } // IList<ShortMessage> messages = null; // try // { // OuvrirPort(); // if (port.IsOpen == false) // { // erreurAppli.Set(eCodeErreur.MODEM_NON_INITIALISE); // return false; // } // iWaitTime = 300; // ExecCommand("AT", iWaitTime, ref erreurAppli); // if (erreurAppli.eCode != eCodeErreur.NO_ERROR) // { // erreurAppli.Set(eCodeErreur.AUCUN_MODEM_CONNECTE_AU_PORT); // return false; // } // iWaitTime = 500; // ExecCommand("AT+CMGF=1", iWaitTime, ref erreurAppli); // if (erreurAppli.eCode != eCodeErreur.NO_ERROR) // { // erreurAppli.Set(eCodeErreur.ECHEC_MODIFICATION_FORMAT_SMS); // return false; // } // iWaitTime = 5000; // //input = ExecCommand("AT+CMGL=\"REC UNREAD\"", iWaitTime, ref erreurAppli); // input = ExecCommand("AT+CMGL=\"ALL\"", iWaitTime, ref erreurAppli); // if (erreurAppli.eCode != eCodeErreur.NO_ERROR) // { // return false; // } // ParseMessages(input); // iWaitTime = 500; // CErreurAppli erreurDelete=new CErreurAppli(); // //Traitement Enregistrement et supression SMS: // if (_mMessagesLus.Count != 0) // { // foreach (ShortMessage shortMessage in _mMessagesLus) // { // //DateTime mDateSent = Convert.ToDateTime(shortMessage.Sent,mCuture); // DateTime mDateSent = DateTime.Now; // Voir comment formter la date du modem et recupérer cette date // erreurAppli = mTraitementSMS.EnregistrerSMS(shortMessage.Sender, mDateSent, shortMessage.Message); // if (erreurAppli.m_eCode == eCodeErreur.NO_ERROR) // input = ExecCommand(String.Format("AT+CMGD={0}", shortMessage.Index), iWaitTime, // ref erreurDelete); // } // } // //Fin Traitement // // if( _mMessagesLus.Count != 0) // //{ // // foreach (ShortMessage shortMessage in _mMessagesLus) // // { // // input = ExecCommand(String.Format("AT+CMGD={0}", shortMessage.Index), iWaitTime, ref erreurDelete); // // } // //} // erreurAppli.Set(eCodeErreur.NO_ERROR); // return true; // } // catch (Exception ex) // { // erreurAppli.Set(eCodeErreur.ERROR, ex.Message); // return false; // } // finally // { // ClosePort(); // } // } // catch (Exception ex) // { // //Inscrire l'erreur dans // erreurAppli.Set(eCodeErreur.ERROR, ex.Message); // return false; // } //} private Boolean ReadSms(ref CErreurAppli erreurAppli) { try { string input = ""; int iWaitTime = 0; if (port == null) { erreurAppli.Set(eCodeErreur.MODEM_NON_INITIALISE); return(false); } IList <ShortMessage> messages = null; try { OuvrirPort(); if (port.IsOpen == false) { erreurAppli.Set(eCodeErreur.MODEM_NON_INITIALISE); return(false); } iWaitTime = 300; ExecCommand(debutCmdAt, iWaitTime, ref erreurAppli); if (erreurAppli.eCode != eCodeErreur.NO_ERROR) { erreurAppli.Set(eCodeErreur.AUCUN_MODEM_CONNECTE_AU_PORT); return(false); } iWaitTime = 500; ExecCommand(debutCmdAtCmgf, iWaitTime, ref erreurAppli); if (erreurAppli.eCode != eCodeErreur.NO_ERROR) { erreurAppli.Set(eCodeErreur.ECHEC_MODIFICATION_FORMAT_SMS); return(false); } iWaitTime = 5000; //input = ExecCommand("AT+CMGL=\"REC UNREAD\"", iWaitTime, ref erreurAppli); input = ExecCommand(debutCmdAtCmgl, iWaitTime, ref erreurAppli); if (erreurAppli.eCode != eCodeErreur.NO_ERROR) { return(false); } ParseMessages(input); iWaitTime = 500; CErreurAppli erreurDelete = new CErreurAppli(); //Traitement Enregistrement et supression SMS: if (_mMessagesLus.Count != 0) { foreach (ShortMessage shortMessage in _mMessagesLus) { //DateTime mDateSent = Convert.ToDateTime(shortMessage.Sent,mCuture); DateTime mDateSent = DateTime.Now; // Voir comment formter la date du modem et recupérer cette date //erreurAppli = mTraitementSMS.EnregistrerSMS(shortMessage.Sender, mDateSent, shortMessage.Message); if (erreurAppli.m_eCode == eCodeErreur.NO_ERROR) { input = ExecCommand(String.Format("{0}={1}", debutCmdAtCmgd, shortMessage.Index), iWaitTime, ref erreurDelete); } } } //Fin Traitement // if( _mMessagesLus.Count != 0) //{ // foreach (ShortMessage shortMessage in _mMessagesLus) // { // input = ExecCommand(String.Format("AT+CMGD={0}", shortMessage.Index), iWaitTime, ref erreurDelete); // } //} erreurAppli.Set(eCodeErreur.NO_ERROR); return(true); } catch (Exception ex) { erreurAppli.Set(eCodeErreur.ERROR, ex.Message); return(false); } finally { ClosePort(); } } catch (Exception ex) { //Inscrire l'erreur dans erreurAppli.Set(eCodeErreur.ERROR, ex.Message); return(false); } }