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

 Delphi Discussion :

Envoyer commandes AT via un port USB


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Points : 17
    Points
    17
    Par défaut Envoyer commandes AT via un port USB
    Bonjour,

    j'ai besoin de développer sous Delphi 7 une application capable d'envoyer (et recevoir) des commandes AT vers un GSM connecté sur un port USB.

    Le problème étant que je n'ai jamais communiqué avec aucun port que ce soit (ni série, ni USB) et que je ne trouve rien dans l'aide ou sur Google, je m'en remets à vos connaissances afin d'obtenir le nom d'éventuels composants et quelques bribes de code qui pourraient me sortir de cette impasse.

    Merci d'avance...

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 037
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    as-tu essayé de fouiller du coté des projets JEDI , je pense en particulier à la JWApi qui m'a bien aidé pour l'ejection de clé USB ?
    Je n'ai pas suivi non plus de prés , juste contribué, au composant proposé par "Ero Sennin" ( qui ne m'en voudras pas si j'écorche son pseudo )
    dans la partie API du forum
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Points : 17
    Points
    17
    Par défaut ...
    Bonjour SergioMaster et merci de ta réponse...

    J'avais effectivement vu le topic de Ero Sennin sur le site, mais cela m'a paru assez compliqué étant donné que je n'ai jamais créé de composant

    C'est pourquoi je m'étais orienté vers le composant TComPort qui apparement serait en mesure de gérer les ports USB. Seulement je n'arrive toujours à aucun résultat ! Je ne visualise que COM1 et COM2 mais pas de port USB

    J'avoue perdre patience sur ce projet...

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 037
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    je sais que cela peut paraitre idiot mais ...
    un truc m'est revenu hier lors d'une discussion avec JP.NUAGE , il y a un bail j'avais développé un programme (ABAL/PROLOGUE ce qui montre l'âge canonique) devant communiqué avec un tiroir caisse via port //

    as-tu essayé quelque chose du genre (j'ai traduit en Delphi)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    AssignFile(Lpt2,'USB1');
    Writeln(Lpt2,CommandeAT.text);
    bien sur c'est normalement avec un port imprimante que je faisait cela , je ne sais pas si le port USB s'appelle ainsi
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Points : 17
    Points
    17
    Par défaut ...
    Comment dois-je déclarer "Lpt2" dans ton exemple ?

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 037
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    désolé

    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Points : 17
    Points
    17
    Par défaut ...
    Merci SergioMaster

    Par contre j'ai fait le test mais ça ne fonctionne pas ("Erreur ES/103")

    Etant donné qu'il y a plusieurs port USB sur la machine, je me suis dit qu'il fallait peut-être simplement trouver le bon en remplacant USB1 par USB2,etc... Mais visiblement rien n'y fait

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 037
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    ce n'était qu'une idée comme ça , je n'ai rien pour tester et je ne connait pas le nom du port ... va falloir chercher chez Microsoft . je te fais signe si je trouve une piste

    une autre astuce ? à voir
    - Allez dans les propriétés de l'imprimante :
    1) Partager l'imprimante en utilisant un nom court pour simplifier les choses.
    2) Aller dans le menu "Avancé"-->Processeur d'impression, et selectionner TEXT au lieu de RAW
    3) Appliquer la commande DOS suivante
    NET USE LPT1: \\"NOM DE L'ORDINATEUR"\"NOM DE PARTAGE DE L'IMPRIMANTE" /PERSISTENT:YES
    et du coup travailler sur le port LPT1:



    [edit] une petite recherche me donne un lien interessant en fin d'article
    http://www.autoitscript.com/forum/lo...hp?t33712.html

    [re edit]
    numéro du port USB001 (du moins c'est ce qu'il s'affiche lors d'une impression vers une imprimante USB)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Points : 17
    Points
    17
    Par défaut ...
    Salut SergioMaster,

    ça y est ça fonctionne ! Par l'intermédiaire du composant TComPort je suis parvenu à accéder au port USB. Il suffisait d'installer les drivers du cable USB (Nokia) et plusieurs port COM viennent s'ajouter à la liste.

    Je pense envoyer une commande AT vers les ports afin de détecter automatiquement celui qui correspond au modem du GSM connecté...

    Merci de ton soutien, et désolé du dérangement

  10. #10
    Membre confirmé
    Avatar de JP.NUAGE
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 81
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 769
    Points : 542
    Points
    542
    Par défaut
    mleprete

    Alors là je suis intéressé au plus haut point. Nous sommes deux sur le forum à vouloir gérer un port COM3 via un port USB. Dans le panneau de configuration je vois bien le port COM3 affecté à l'appareil ayant un cable USB (TPE) mais impossible d'écrire dessus.

    Nous prenons toute info

    Merci d'avance
    Ce qui se conçoit bien s'énonce clairement
    Et les mots pour le dire viennent aisément (Boileau)

  11. #11
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 037
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par mlepretre Voir le message
    les drivers du cable USB (Nokia)
    là , moi aussi, j'aimerais une explication, si maintenant il faut des drivers pour les cables où va t-on
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  12. #12
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Points : 17
    Points
    17
    Par défaut ...
    Bonjour Messieurs,

    ravi de voir que mon projet vous intéresse

    Effectivement chez Nokia les drivers de cables existent (http://www.nokia.fr/A4364251)

    Alors je vais vous expliquer de quelle façon j'ai procédé, sachant que cela fonctionne sur Sony-Ericsson, Nokia, Samsung (pas encore essayé les autres constructeurs mais je pense que ça ne pose aucun soucis).

    Tout d'abord on installe les drivers du mobile (ou du cable chez Nokia ;-)

    Ensuite on connecte le mobile au PC mais pas en mode "transfert de données" ! En mode "PCSuite" chez Nokia, ou mode "Téléphone" chez Sony-Ericsson...

    Au niveau de l'appli Delphi j'utilise donc TComPort avec les propriétés suivantes :
    - BaudRate = br115200
    - Buffer = InputSize:4096, OutputSize:2048
    - DataBits = dbEight
    - Events = [evRxChar,evTxEmpty]
    - FlowControl = par défaut
    - Parity = prNone
    - StopBits = sbOneStopBit
    - SyncMethod = smWindowSync

    Toujours pour le composant TComPort je crée la procédure suivante sur l'évênement OnRxChar :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    procedure TMain.ComPort1RxChar(Sender: TObject; Count: Integer);
    var
      Chaine : String;
    begin
      //interception_reponse_GSM
      ComPort1.ReadStr(Chaine,Count);
    end;

    Je crée sur ma forme les composants Edit1 et Button1 qui serviront à envoyer ma commande AT personnalisée. Et sur l'évênement Button1.OnClick :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure TMain.Button1Click(Sender: TObject);
    begin
      //envoi_commande_vers_GSM
      ComPort1.WriteStr(Edit1.Text+Chr(13));
    end;
    J'utilise aussi pour voir les réponses du GSM le composant TComTerminal relié à Comport1 sur la propriété ComPort.


    On sélectionne le port COM lié au port USB (COM3 dans ton cas JP.NUAGE) et connected:=True sur TComPort.

    Une fois l'appli lancée je tape une commande du style AT+GMM et je clique sur Button1... Miracle il me renvoi le modèle du GSM dans la fenêtre du terminal...

    C'est tout mais j'ai mis un temps fou pour trouver ! lol

    J'espère que mon explication est relativement claire ?

    A bientôt, n'hésitez pas si vous avez des questions

  13. #13
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Points : 17
    Points
    17
    Par défaut ...
    Petite rectification, l'évênement ComPort1.OnRxChar n'est pas utile pour la visu dans le terminal, il sert simplement à récupérer les infos pour exploitation ;-)

  14. #14
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Points : 17
    Points
    17
    Par défaut ...
    Nous sommes si bien parti sur le sujet avec ce très cher JP.NUAGE que je vais en remettre une couche : quelqu'un peut-il me donner le code exact de la commande AT capable de m'expédier un sms depuis ce fichu GSM ?

    J'ai tenté quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure TMain.ButtonSmsClick(Sender: TObject);
    begin
      //envoi_sms
      ComPort1.WriteStr('AT+CMGS="+33XXXXXXXXX"'+Chr(10)+'"Hello"'+Chr(26)+Chr(13));
    end;
    (avec XXXX = numéro de tel du destinataire) mais ça ne fonctionne pas

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

Discussions similaires

  1. Envoyer des données via un port USB
    Par bouraouimed dans le forum Administration système
    Réponses: 3
    Dernier message: 20/06/2011, 19h17
  2. Utiliser livebox via le port USB
    Par xclam dans le forum Matériel
    Réponses: 1
    Dernier message: 12/03/2007, 22h02
  3. Réponses: 2
    Dernier message: 20/06/2006, 17h16
  4. [USB]envoyer une trame sur le port USB
    Par ced38100 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 03/11/2005, 12h54
  5. Récupérer des données via le port usb
    Par matmuth dans le forum C++Builder
    Réponses: 12
    Dernier message: 11/05/2005, 16h34

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