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 :

Recevoir données port série


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    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
    Points : 69
    Points
    69
    Par défaut Recevoir données port série
    Hello je dois recevoir des données sur le port série. Ces données doivent être affiché dans un Memo ligne par ligne. 1 ligne = 8 octets

    Seulement je dois affichés des lignes tant que le port série arrive à lire des données.

    Au départ je lisait avec ReadStr jusqu'à ce qu'il n'y ai plu de caractère et je l'ai traitait ensuite. voici mon code

    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
     
    function TFrmChip.connexion (commande : String): String;
    begin
      if ComPort.InputCount <> 0 then
      begin
        count := ComPort.InputCount ;
        Comport.ReadStr(car_entree,Count);    // lecture des caractères
        tot := tot + car_entree;
        Result := tot;                      // retourne la réponse
      end
    end;
     
    procedure TFrmChip.btntraClick(Sender: TObject);
    begin
      reponse := asciitohex(connexion(commande));
      while Length(reponse) <> 0 do
      begin
        temp := copy(reponse,1,16);
        Memo1.Lines.Add(temp);
        Delete(reponse,1,16);
       end;
    end;
    Cette facon me pose un problème parce mon Memo ne m'affiche que 500 lignes sur les 2500.


    Ma question : Comment faire pour lire sur le port série 8 octets les afficher et traiter les suivant ?.Donc sans attendre la fin.

    Merci pour votre soluce

  2. #2
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    Je me semble que personne ne t'oblige a lire ComPort.InputCount octets, n'est-ce pas ?

    Donc, si ComPort.InputCount>=8 alors lis les 8 premier octets Comport.ReadStr(car_entree, 8).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function TFrmChip.connexion (commande : String): String;
    begin
      if ComPort.InputCount >= 8 then
      begin
        Comport.ReadStr(car_entree, 8);    // lecture des caractères
        tot := tot + car_entree;
        Result := tot;                      // retourne la réponse
      end
    end;
    Ca fonctionne ?

  3. #3
    Membre averti Avatar de Soulama
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 619
    Points : 416
    Points
    416
    Par défaut
    Salut,
    faut voir si les donneés qui viennent du Port on un StartString et un
    StopString. si c le cas, ta besoin de lire les donneés en Packet, c plus facile pour toi.
    A+

  4. #4
    Membre du Club
    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
    Points : 69
    Points
    69
    Par défaut
    neilbgr, ta soluce me donne déjà du mieux mais j'ai un prob avec la chaine suivante il faudrait que je puisse supprimer les 8 carac précédents

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

Discussions similaires

  1. Lecture données port série
    Par lio59 dans le forum VB.NET
    Réponses: 26
    Dernier message: 24/08/2011, 01h37
  2. Enregistrer données port série dans un fichier ?
    Par nestea57 dans le forum Général Python
    Réponses: 3
    Dernier message: 10/02/2011, 09h26
  3. traitement temp réel de données port série
    Par lezebulon dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 29/07/2010, 13h13
  4. Interface bloquée suite envoi données port série
    Par levalp dans le forum Windows Forms
    Réponses: 10
    Dernier message: 07/12/2007, 16h06
  5. Réponses: 13
    Dernier message: 24/05/2006, 11h27

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