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

Composants VCL Delphi Discussion :

ComPort Bidirectionnel


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 149
    Par défaut ComPort Bidirectionnel
    Hello

    Je dois envoyer des codes à une eprom et cette dernière me renvoie des valeurs correspondants aux codes demandés.

    J'ai un prob avec le code suivant

    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
    procedure TForm1.BtnOpenCOMClick(Sender: TObject);
    begin
      ComPort.Close;
      ComPort.Port:='com1';
      ComPort.Open;
    end;
     
    procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
    var
      car_entree : String;
      nb_cara    : Integer;
    begin
      Comport.ReadStr(car_entree,Count);
      ListBox1.Items.Add(car_entree);
    end;
    procedure TForm1.BtnSendParamClick(Sender: TObject);
    var
        chaine : string;
    begin
       chaine := debut+EdtParam.Text;   //debut est une cst
       comport.WriteStr(chaine);
       ComPort.SetRTS(True);     //Set Request To Send
        ComPort.SetDTR(True);     //Set Data Terminal Ready (PC pret à recevoir)
        ComPort.SetRTS(False);
    end;
    J'aimerais juste afficher les résultats dans une ListBox

    Merci

  2. #2
    Membre émérite
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Par défaut
    C'est quoi ton problème ?
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 149
    Par défaut
    Je ne reçois aucun caractère, l'évenement OnRxChar ne reçoir rien

    Est-ce un problème de ligne ou autre ?

  4. #4
    Membre émérite
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Par défaut
    Citation Envoyé par Vodkha
    Est-ce un problème de ligne ?
    Il semblerait
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  5. #5
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Il ya plusieurs méthodes pour communiquer avec une eprom, tout dépend de ton interface électronique et du type d'eprom utiliisé. Apparemment, tu n'utilises pas les trames rs232 pour effectuer la communication, c'est donc de l'accès direct... Est-ce que c'est toi qui a conçu le montage ?

    Je pourrais te conseiller d'utiliser ZLPortIO plutôt que TComPort car selon moi, ZLPortIO est plus approprié pour de l'accès direct, tandis que TComport est plus approprié pour une communication RS232.

    http://www.developpez.net/forums/viewtopic.php?t=133052

    à+

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 149
    Par défaut
    Il faut que j'utilise le Port COM et pour ce qui est du montage oui c'est moi qui l'aie développé.

    Mais quelle ligne dois-je utiliser ?

  7. #7
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Citation Envoyé par Vodkha
    Il faut que j'utilise le Port COM et pour ce qui est du montage oui c'est moi qui l'aie développé.

    Mais quelle ligne dois-je utiliser ?
    Toi seul peut le savoir ! Puisque c'est toi qui a mis au point le montage, toi seul connais sont principe de fonctionement. Tu es également le seul à connaître le type d'eprom utilisé et donc le protocol de communication... Sans le plan de l'interface électronique, ni la référence de l'eprom, nous ne pouvons rien faire à part de répondre au hasard. Bref, tu ne nous as pas donné les informations nécessaires pour pouvoir te répondre, comprend-tu ?

    J'en profite pour te donner le code de ma démo (sanne du port COM1) :
    http://sub0.developpez.com/delphi/scan_com.zip
    (il faut extraire l'archive sur le disque pour que la démo fonctionne).

    ps: Attention, le niveau logique des portes du port COM est inversé.
    à+

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 149
    Par défaut
    Le protocôle je le connais je dois envoyer 20x 'e' puis 'Par' et l'E^2PROM(texas) me retourne des infos qui se trouve dans des registres.

    Quand je mets l'oscillo sur tx ok bon data et sur rx aussi mais le soft ne fait rien alors je ne vois pas quoi faire ?

    merci

  9. #9
    Membre émérite
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Par défaut
    Tu as bien croisé les RX et TX de ta connexion ?
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  10. #10
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Rien compris à ton explication, pourtant je suis plutôt calé en électronique...

    Simplement, quelle est la référence de l'eprom et comment tu l'as branché au port ?

    (ça m'a l'air d'être un sacré bricolage ton histoire... )

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 149
    Par défaut
    Tout ce qui touche à E^2prom est sous-traité par une autre personne, moi je dois envoyer des paramètres à l'eeprom pour la lire et écrire. Et cela par le Port COM tu comprends ? et moi quand j'envoie les paramètres ok mais est la réception je ne vois pas comment configuré le port voilà

  12. #12
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Nous voilà bien avancé !

    C'est toi qui ai développé le circuit mais c'est une autre personne qui s'occupe de l'eprom, et c'est toi qui est chargé de développé le programme mais tu ne sais pas comment tout ça fonctionne à part qu'il faut envoyer 20x "e", ect... Et ben dis donc, je te souhaite bien du courage, à+

    comport.ReadStr

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 149
    Par défaut
    Mais le eeprom ne joue aucun rôle je dois faire une communication bidirectionnelle avec le PORT SERIE

    Quand j'envoie une commande par le port série je dois ensuite écouter celui-ci voilà mon prob que ce soir une eeprom motorola microchip texas on s'en f..

  14. #14
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    As tu essayé avec comport.ReadStr pour écouter le port ?

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 149
    Par défaut
    Si tu avais regardé mon code tu n'aurais pas posé la question :-)

    Oui je l'ai fait

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 45
    Par défaut
    Question con : Tu as teste ton cable ?

  17. #17
    Membre Expert Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Par défaut
    une autre question con
    tu as mis une point d'arret a l'evenement de comport?
    quel est la langeur estimé des données renvoyer par l'eprom?
    je vois que tuutlise les autre broche pour valisé votre envoit , eux aussi sont bien branché?
    tu as vu le type de transmission (xoff, xon....)?????

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 149
    Par défaut
    oui le cable fonctionne bien : testé avec oscillo !

    Mais tu parles de point d'arret tu peux m'en dire un peu plus ?

    Et pour la quantité de données reçues elle varie mais le max 32K (taille EPROM)

    Merci de ton aide

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 31
    Par défaut
    Dans ton code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       ComPort.SetRTS(True);     //Set Request To Send 
        ComPort.SetDTR(True);     //Set Data Terminal Ready (PC pret à recevoir) 
        ComPort.SetRTS(False);
    Vu la vitesse du programme, ne coupes-tu pas ton request to send trop vite et par la même empêches-tu l'EEPROM d'envoyer ses données ou génères-tu une impulsion sur la broche RTS (est-elle de largeur suffisante?) pour commander l'envoi

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2004
    Messages : 149
    Par défaut
    non je n'ai pas généré d'impulsion sur RTS.

    Dois-je le mettre à True et faire un sleep(10) ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. open avec comport
    Par Goldocrack dans le forum C++Builder
    Réponses: 6
    Dernier message: 15/04/2009, 08h12
  2. [HttpClient] comportement bizarre, saute des catch()...
    Par iubito dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 04/02/2004, 15h25
  3. [Sybase] Comportement bizarre d'une table
    Par sdozias dans le forum Sybase
    Réponses: 4
    Dernier message: 03/02/2004, 10h39
  4. [Free Pascal] Comportement de Exec
    Par néo333 dans le forum Free Pascal
    Réponses: 3
    Dernier message: 01/11/2003, 17h46
  5. Réponses: 2
    Dernier message: 22/09/2003, 11h23

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