IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Liaison de deux programmes


Sujet :

Arduino

  1. #1
    Membre du Club Avatar de pite0611
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 62
    Points : 40
    Points
    40
    Par défaut Liaison de deux programmes
    Bonjour,

    je travaille actuellement sur un module GSM et un module SD. Mon but est de créer un identificateur d'appels avec les numéros stockés sur la carte SD. J'ai d'abord réalisé mon identificateur d'appels avec seulement mon module GSM et mon programme que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    #include <GSM.h> // Ajout de la librarie GSM
     
    #define CODEPIN "" // Code pin du téléphone
     
    GSM gsmAccess;
    GSMVoiceCall vcs;
     
     
    char numtel[20]; // Enregistre l’appel entrant
    char numerau[] = {"0603249714"}; // Numéro autorisé
    int i;
     
    void setup() {
      // Initialise les communications serial et attend que le port s'ouvre:
      Serial.begin(9600);
      while (!Serial) {
        ; // Attente de connection du port serial. Nécessaire pour le port USB natif seulement  
      }
     
      Serial.println("Initialisation..");
     
      boolean notConnected = true; // Etat de connection
     
      // Lancement GSM shield
      while (notConnected) {
        if (gsmAccess.begin(CODEPIN) == GSM_READY) {
          notConnected = false;
        } else {
          Serial.println("Pas connecté");
          delay(1000);
        }
      }
     
      vcs.hangCall(); // Cela permet de s’assurer que le modem signale correctement les événements entrants.
     
      Serial.println("Vous pouvez appeler");
    }
     
    void loop() {
      switch (vcs.getvoiceCallStatus()) { //Vérifier l’état de l’appel 
        case IDLE_CALL: // rien ne se passe
     
          break;
     
        case RECEIVINGCALL: // quelqu'un nous appelle
     
          Serial.println("APPEL ENTRANT");
     
          vcs.retrieveCallingNumber(numtel, 20); // recuperer le numéro appellant
     
          // Afficher le numéro appelant
          Serial.print("Number:");
          Serial.println(numtel);
            for (int i = 0; i < 9; i++) {
              if (numtel[i+3] == numerau[i+1]) {
            vcs.answerCall();
            Serial.println("Numero autorise");
     
          } else {
     
            vcs.hangCall();
            Serial.println("Numero non-autorise");
          }
        }
          break;
      }
     }
    Je souhaiterai faire la meme chose mais que il lise le numéro autorisé sur mon fichier en .txt sur la carte SD au lieu qu'il soit dans le programme.
    J'ai trouvé un programme tout fait qui permet de lire ce qu'il y a écrit sur le fichier .txt depuis la crate SD mais je n'arrive pas à lier les deux et faire l'identificateur..
    Voici le porogramme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    #include <SPI.h>
    #include <SD.h>
     
    File myFile;
     
    void setup() {
     Serial.begin(9600);
     
     Serial.println("Carte SD detectee...");
     pinMode(10, OUTPUT);
     
     if (!SD.begin(4)) {
       Serial.println("Erreur de chargement.");
       return;
     }
     
     Serial.println("Numeros autorisés :");
     myFile = SD.open("numeros.txt");
     if (myFile) {
       while (myFile.available()) {
        Serial.write(myFile.read());
       }
       myFile.close();
     
     } else {
       Serial.println("Erreur de lecture du fichier.");
     }
    }
     
    void loop() {
    }
    Pourriez-vous m'apporter de l'aide ?

    Cordialement

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 778
    Points
    30 778
    Par défaut
    Première question : est-ce que chacun des programmes fonctionne correctement ?
    Deuxième question : qu'as-tu déjà essayé et quel problème rencontres-tu ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre du Club Avatar de pite0611
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 62
    Points : 40
    Points
    40
    Par défaut
    Oui les programmes fonctionnent parfaitement seuls.
    J'ai testé de récupérer ce qu'il y a écrit dans le fichier.txt et de le stocker dans une variable mais je n'y arrive pas.

  4. #4
    Membre du Club Avatar de pite0611
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 62
    Points : 40
    Points
    40
    Par défaut
    Bonjour, j'ai fini par trouver par moi-même, voici le programme (ci cela peu aider)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     #include <GSM.h> // Ajout de la librarie GSM
    #include <SPI.h>
    #include <SD.h>
     
    #define CODEPIN "" // Code pin du téléphone
    int i;
     
    File myFile;
     
    GSM gsmAccess;
    GSMVoiceCall vcs;
     
    char numtel[20]; // Enregistre l’appel entrant
     
    void setup() {
    pinMode(10, OUTPUT);
     
      // Initialise les communications serial et attend que le port s'ouvre:
      Serial.begin(9600);
      Serial.println("Carte SD detectee...");
     
      if (!SD.begin(4)) {
       Serial.println("Erreur de chargement.");
       return;
     }
     
      while (!Serial) {
        ; // Attente de connection du port serial. Nécessaire pour le port USB natif seulement  
      }
     
      Serial.println("Initialisation Sim900a..");
     
      boolean notConnected = true; // Etat de connection
     
      // Lancement GSM shield
      while (notConnected) {
        if (gsmAccess.begin(CODEPIN) == GSM_READY) {
          notConnected = false;
        } else {
          Serial.println("Pas connecté");
          delay(1000);
        }
      }
     
      vcs.hangCall(); // Cela permet de s’assurer que le modem signale correctement les événements entrants.
     
      Serial.println("Vous pouvez appeler");
    }
     
     
    void loop() {
      switch (vcs.getvoiceCallStatus()) { //Vérifier l’état de l’appel 
        case IDLE_CALL: // rien ne se passe
     
          break;
     
        case RECEIVINGCALL: // quelqu'un nous appelle
     
          Serial.println("APPEL ENTRANT");
     
          vcs.retrieveCallingNumber(numtel, 20); // recuperer le numéro appellant
     
          // Afficher le numéro appelant
          Serial.print("Number:");
          Serial.println(numtel);
     
     
    myFile = SD.open("donnees.txt", FILE_READ);                                 // Ouvrir fichier des UUID
    {
      if (myFile)
      {
        while (myFile.available())
        {
          String fileLine = myFile.readStringUntil('\n'); // Lire fichier jusqu'à nouvelle ligne
          boolean comparaison = 1;
          for (int i = 0; i < 12; i++) 
          {
          if (fileLine[i] != numtel[i]) // Si numero trouvée
          {
     
            vcs.hangCall();
            Serial.println("Numero non-autorise");
            i=13; //sortie du for
            comparaison = 0;
          }
     
          }
        }
     
        myFile.close();
      }
     
      break;
    }}}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-A] liaison entre deux tables
    Par lumbroso dans le forum VBA Access
    Réponses: 16
    Dernier message: 01/06/2006, 11h22
  2. condition liaison entre deux formulaires
    Par Davik dans le forum Access
    Réponses: 10
    Dernier message: 25/04/2006, 16h52
  3. Réponses: 11
    Dernier message: 09/09/2005, 14h51
  4. [TP] Echanger des données entre deux programmes
    Par ILIAS Raphaël dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 22/03/2005, 10h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo