Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

Module GSM2-Click
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#41 Message par Jérémy » jeu. 1 sept. 2016 21:22 lien vers la Data-Sheet : Cliquez ici

Il est optionnel !
Nos pensées se sont croisées, car je viens d'éplucher la fonction switch et je l'ai rajouté pour être sur .
Pareil !!

Un truc de fou ! j'ai enlever deux autres "case" pour tester les reponse 5 et 6 , ca focntionne ! ce n'est donc pas le code des réponses qui foire
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module GSM2-Click
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#42 Message par Jérémy » jeu. 1 sept. 2016 21:28 lien vers la Data-Sheet : Cliquez ici

En ecrivant ca , ca fonctione parfaitement

Code : Tout sélectionner

 if (Buffer[0]=='>')
         {
          
delay_ms(100);
          
RC1IE_bit 0;
         
          switch (
reponse) {
            
/*case  1: {
                       Creation_du_message();
                       M95_Send(Message_SMS);
                       break;
                     }
         */   
case  2: {

                       
UART1_Write_text("Le Chrono est parti !");
                       
UART1_Write(0x0D);
                       
UART1_Write(0x0A);
                       break;
                     }
            case  
3: {
                        
UART1_Write_text("La demande est annulée");
                        
UART1_Write(0x0D);
                        
UART1_Write(0x0A);
                        break;
                      }
            case  
4: {
                        
UART1_Write_text("ERREUR DE FORMAT\r\nIl faut envoyer :\r\nChrono Hxx Mxx Sxx");
                        
UART1_Write(0x0D);
                        
UART1_Write(0x0A);
                        break;
                      }
           case  
5: {
                        
UART1_Write_text("Le chrono a ete arreter !");
                        
UART1_Write(0x0D);
                        
UART1_Write(0x0A);
                        break;
                      }
            case  
6: {
                        
UART_Write_text("Ceci est mon etat");
                        
UART1_Write(0x0D);
                        
UART1_Write(0x0A);
                        break;
                      }
            default : {
                        
UART_Write_text("Ceci est mon etat");
                        
UART1_Write(0x0D);
                        
UART1_Write(0x0A);
                      }

          }
             
delay_ms(100);
             
UART1_Write(0x1A);                // Envoi CTRL + Z comme caractere de fin
             
delay_ms(100);
             
RC1IE_bit 1;
             
delay_ms(1000);
             
Attente_OK();
         } 
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module GSM2-Click
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#43 Message par Jérémy » jeu. 1 sept. 2016 21:43 lien vers la Data-Sheet : Cliquez ici

:mur: :mur: :mur: :mur: :mur: :mur: :mur: :mur:

Les emoticiones qui se tirait les cheveux étaient pas beaux !!! celui ci colle bien
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module GSM2-Click
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#44 Message par Jérémy » ven. 2 sept. 2016 09:17 lien vers la Data-Sheet : Cliquez ici

Bonjour,

franchement je vois pas ..... incompréhensible . Je vais faire une machine d'état comme dans l'exemple tant pis.

Mode décu :cry:
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module GSM2-Click
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#45 Message par Jérémy » dim. 4 sept. 2016 12:41 lien vers la Data-Sheet : Cliquez ici

Bonjour à tous,

J'avance enfin à grand pas. le programme est fonctionnel. Je peaufine quelques détails avant de me lancer dans l'optimisation !

@Paul : as tu traiter des éventuelles erreurs dans ton programme concernant le dialogue UART Module GSM<---> PIC ? si oui quelle à été ta stratégie ? reset ? boucle ?
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module GSM2-Click
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#46 Message par Jérémy » dim. 4 sept. 2016 14:50 lien vers la Data-Sheet : Cliquez ici

Je traite comme ca !

Si il y a une erreur le module GSM renvoie du texte avec forcement le mot "ERROR" dedans , souvent suivis du numeros de l'erreur du style = +CMS ERROR : 1 .

Dans ma machine d'état je détecte le mot "ERROR" et je lève le flag "Erreur".
Dans mon main je traite ce flag comme suit :

Code : Tout sélectionner

   if (Erreur)             // Si flag Erreur levé
      
{
        
Erreur 0;        // RAZ du flag
        
i=0;
        while(
Ok==0)      // Ici on envoie la commande "AT" tant que le Flag "Ok" n'est pas levé
            
{
              
i++;
              
UART1_Write_Text("AT");
              
UART1_Write(13);
              
delay_ms(1000);
              if (
i==5)        // RAZ des variables et flag
                 
{
                  
Valeur SMS_enregistre Chrono CMTI temp Fleche reponse_a_envoyer 0;
                  
Demande_Lancement Lancement ;
                 }
              if (
i>10)
                 
asm reset;
            }
        
0;
        
Ok 0;          // RAZ flag "Ok"
      
}
 


Si je le flag "Ok" se lève alors je sors .
Si le flag "Ok" se lève pas , je reboucle.
Au bout de 5 boucles je RAZ toutes mes variables et drapeau.
Au bout de 10 boucles, je reset !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module GSM2-Click
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#47 Message par Jérémy » dim. 4 sept. 2016 16:49 lien vers la Data-Sheet : Cliquez ici

Allez tant qu'a y être un 7iéme post de suite !!!!!

je cherche a connaitre l’état de mon signal pour l'indiquer dans un SMS "d'état" .
Pour ce faire je compte utilisé la commande "AT+CSQ" .
J’ai des doutes sur ma compréhension de l'extrait de la DS suivant :
Sans titre.jpg


La réponse du module GSM sera +CSQ: <rssi>,<ber>
Avec <rssi> la qualité du signal. Mais la valeur "0" correspond bien à un réseau max, donc je "capte" à fond ? jai 4 barres ?? :sifflotte:
et de 2 à 30 je capte pas terrible
et supérieur à 31 je capte presque rien ( 1 barre)

Que signifie le <ber> ? byte error en pourcentage ? est-ce mieux d'utilisé celui ci ?

Merci à vous si vous comprenez mieux et avez des infos pour moi
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module GSM2-Click
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#48 Message par Jérémy » dim. 11 sept. 2016 11:13 lien vers la Data-Sheet : Cliquez ici

Bonjour à tous,

Petit UP à ma question ci-dessus .

Sinon j'en ai encore une . Comment envoyer le caractère à par UART ?
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module GSM2-Click
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#49 Message par paulfjujo » dim. 11 sept. 2016 13:05 lien vers la Data-Sheet : Cliquez ici

bonjour Jeremy



Tools
Ascii Chart

codage ''a'" = 0xE0 ou 224


Code : Tout sélectionner


   CRLF1
();
  UART1_Write(0xE0);
  CRLF1();
  sprintf(txt,"Bonjour %c Jeremy\r\n",224) ;
   UART1_Write_Text(txt);
   CRLF1();
Aide toi, le ciel ou FantasPic t'aidera

Module GSM2-Click
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#50 Message par paulfjujo » dim. 11 sept. 2016 13:12 lien vers la Data-Sheet : Cliquez ici

Jérémy a écrit :...
Avec <rssi> la qualité du signal. Mais la valeur "0" correspond bien à un réseau max, donc je "capte" à fond ? jai 4 barres ??
et de 2 à 30 je capte pas terrible
et supérieur à 31 je capte presque rien ( 1 barre)


le RSSI varie usuellement de -30 dBm à -120 dBm selon la distance avec l'antenne émettrice

si on ne tient pas compte du signe, une valeur tres faible correspond au maxima de signal

Je ne suis pas actuellement sur mon module GSM2 pour tester ceci..
Aide toi, le ciel ou FantasPic t'aidera


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 51 invités