Пример #1
0
        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("");
            }
        }
Пример #2
0
 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);
     }
 }
Пример #3
0
        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);
            }
        }
Пример #4
0
        //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);
            }
        }