Ejemplo n.º 1
0
        /// <summary>
        /// Point d'entrée principal de l'application.
        /// </summary>
        static void Main(string[] args)
        {
            //si mode debug on passe un argument a l'application
#if DEBUG
            args = new string[1] {
                "/cons"
            };
#endif
            if (args.Length > 0) //si un argument est passé à l'application
            {
                //on lance l'application en mode console
                ServiceManager serverSync = new ServiceManager();
                serverSync.Start();


                //boucle qui permet de passer des commandes a l'application pendant l'execution
                #region Attend une saisie de la commande 'quit' pour sortir
                string quit = string.Empty;
                Console.Title = "Service SMS";

                while (string.IsNullOrEmpty(quit) || !quit.Equals("quit"))
                {
                    Console.WriteLine("///////////////////////////////");
                    Console.WriteLine("taper la commande 'quit' pour quitter l'application\r\n");
                    quit = Console.ReadLine();
                    switch (quit.ToLower())
                    {
                    case "clr":
                    case "clear":
                        Console.Clear();
                        break;

                    case "test":

                        modemSMS modSMS = new modemSMS("COM11");
                        modSMS.connectToModem();
                        //modSMS.sendTramePDU("0001000b913376650111F800f6002930000000000066010b000001001b04343731314e85b65950683b590831323334353637380000126701");
                        modSMS.sendTramePDU("0021000A816057161081000015F4F29C0E0A8FC7F57919242F8FCB707AFAED06");
                        modSMS.readDeliveryReport();
                        modSMS.disconnectToModem();
                        break;

                    case "read":
                        modemSMS modSMSRead = new modemSMS("COM11");
                        modSMSRead.connectToModem();
                        modSMSRead.readPDUMessage();
                        modSMSRead.disconnectToModem();
                        break;


                    case "test vp":
                        modemSMS modSMSVP = new modemSMS("COM11");

                        TimeSpan tim = new TimeSpan(1, 0, 0, 0);

                        int intValue = modSMSVP.calculValidityPeriod(tim);
                        Console.WriteLine("INT VALUE : " + intValue);

                        TimeSpan tim2 = modSMSVP.decoderValidityPeriod(intValue);

                        Console.WriteLine("Redecodage : " + tim2.Days + ", " + tim2.Hours + ", " + tim2.Minutes);

                        break;
                    }
                    Console.WriteLine(string.Empty);
                }
                #endregion

                serverSync.Stop();
                serverSync.Dispose();
            }
            else //on lance l'application en tant que service windows
            {
                //on instancie le service
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[]
                {
                    new ServiceSMS()
                };

                //on lance le service
                ServiceBase.Run(ServicesToRun);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Se produit à fréquence régulière (toutes les 2 secondes)
        /// </summary>
        /// <param name="sender">Objet qui appelle la méthode</param>
        /// <param name="e">contient les parametres de l'evenement</param>
        void timerService_Elapsed(object sender, ElapsedEventArgs e)
        {
            try
            {
                if (!_busy)
                {
                    _busy = true;
                    // tâche de lecture des sms recus
                    if (_dateDerniereLecture.Add(_dureeEntre2Lectures) < DateTime.Now)
                    {
                        //  le process de lecture


                        //lecture des accuses reception
                        Console.WriteLine("Lecture des accuses reception");
                        getDeliveryReport();

                        //lecture des messages
                        Console.WriteLine("Lecture des messages");
                        readMessagesOnSim();

                        //on supprime tous les messages lus du modem
                        modem.connectToModem();
                        Console.WriteLine("Suppression des messages lus");
                        modem.deleteAllReadSMS();
                        modem.disconnectToModem();

                        _dateDerniereLecture = DateTime.Now;
                    }


                    // tache d'envoi des sms
                    if (_dateDerniereEnvoi.Add(_dureeEntre2Envois) < DateTime.Now)
                    {
                        //on recupere tous les message en attente d'envoi dans la base de donnees
                        MessageEnvoi[] lesSMSAEnvoyer = (from msg in dbContext.MessageEnvoi
                                                         where msg.Statut.libelleStatut == "En attente"
                                                         select msg).ToArray();

                        // S'il y a des messages à envoyer
                        if (lesSMSAEnvoyer.Length > 0)
                        {
                            //connexion au modem
                            modem.connectToModem();

                            //pour chaque message a envoyer
                            foreach (MessageEnvoi sms in lesSMSAEnvoyer)
                            {
                                //on envoie le sms
                                Console.WriteLine("Envoi d'un message"); // Pour le débuggage
                                envoyerSMS(sms);
                            }

                            modem.disconnectToModem();
                        }

                        // to do
                        _dateDerniereEnvoi = DateTime.Now;
                    }

                    _busy = false;
                }
            }
            catch (Exception ex)
            {
                //_busy = false;
                //LogHelper.Trace("timerService_Elapsed:" + ex.Message, LogHelper.EnumCategorie.Erreur);
                Console.WriteLine("Erreur timerService_Elapsed : " + ex.Message);
                Console.WriteLine(ex.StackTrace);
                Thread.Sleep(2000);
                timerService_Elapsed(sender, e);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Point d'entrée principal de l'application.
        /// </summary>
        static void Main(string[] args)
        {
            //si mode debug on passe un argument a l'application
            #if DEBUG
            args = new string[1] { "/cons" };
            #endif
            if (args.Length > 0) //si un argument est passé à l'application
            {
                //on lance l'application en mode console
                ServiceManager serverSync = new ServiceManager();
                serverSync.Start();

                //boucle qui permet de passer des commandes a l'application pendant l'execution
                #region Attend une saisie de la commande 'quit' pour sortir
                string quit = string.Empty;
                Console.Title = "Service SMS";

                while (string.IsNullOrEmpty(quit) || !quit.Equals("quit"))
                {
                    Console.WriteLine("///////////////////////////////");
                    Console.WriteLine("taper la commande 'quit' pour quitter l'application\r\n");
                    quit = Console.ReadLine();
                    switch (quit.ToLower())
                    {
                        case "clr":
                        case "clear":
                            Console.Clear();
                            break;

                        case "test":

                            modemSMS modSMS = new modemSMS("COM11");
                            modSMS.connectToModem();
                            //modSMS.sendTramePDU("0001000b913376650111F800f6002930000000000066010b000001001b04343731314e85b65950683b590831323334353637380000126701");
                            modSMS.sendTramePDU("0021000A816057161081000015F4F29C0E0A8FC7F57919242F8FCB707AFAED06");
                            modSMS.readDeliveryReport();
                            modSMS.disconnectToModem();
                            break;

                        case "read":
                            modemSMS modSMSRead = new modemSMS("COM11");
                            modSMSRead.connectToModem();
                            modSMSRead.readPDUMessage();
                            modSMSRead.disconnectToModem();
                            break;

                        case "test vp":
                            modemSMS modSMSVP = new modemSMS("COM11");

                            TimeSpan tim = new TimeSpan(1, 0, 0, 0);

                            int intValue = modSMSVP.calculValidityPeriod(tim);
                            Console.WriteLine("INT VALUE : " + intValue);

                            TimeSpan tim2 = modSMSVP.decoderValidityPeriod(intValue);

                            Console.WriteLine("Redecodage : " + tim2.Days + ", " + tim2.Hours + ", " + tim2.Minutes);

                            break;
                    }
                    Console.WriteLine(string.Empty);
                }
                #endregion

                serverSync.Stop();
                serverSync.Dispose();
            }
            else //on lance l'application en tant que service windows
            {
                //on instancie le service
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[]
                {
                            new ServiceSMS()
                };

                //on lance le service
                ServiceBase.Run(ServicesToRun);
            }
        }