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

Langage Delphi Discussion :

[Débutant] Réception sur port série


Sujet :

Langage Delphi

  1. #21
    Membre averti
    Profil pro
    xxxxxxxxxxx
    Inscrit en
    Juin 2004
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : xxxxxxxxxxx

    Informations forums :
    Inscription : Juin 2004
    Messages : 308
    Points : 407
    Points
    407
    Par défaut
    La déclaration des paramètres de la méthode WaitForEvent t'es donnée quand tu tapes la parenthèse ouvrante
    elle doit ressembler à ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (var ev : TComEvents ; i1, i2 : integer);
    Comme le premier paramètre est précédé de var, il faut lui passer une variable instanciée (et non une constante), voir pour plus d'explications dans l'aide la rubrique "Sémantique des paramètres"

    les 2 paramètres suivants sont des entiers ; nil n'est pas un entier.

    Pour résumer un appel du genre de ce qui suit devrait être correct
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var reception : TComEvents;
    begin
      // (...)
      Comport1.WaitForEvent(reception, 0, WaitInfinite);
    end;

  2. #22
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    En effet ca ne plante plsu à la compilation GRAND MERCI !!!

    Maintenant il plante lors de l'execution je craque !

    J'ai le message suivant 'cannot wait for event if event thread is created'

    : : :
    www.Roblaise.fr.st

  3. #23
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    Visiblement ce dernier message vient du fait que le prog est deja en attente d'un évenement. Si je ferme et réouvre le port je n'ai plus ce message mais je perd l'info qui a été envoyée entre temps
    www.Roblaise.fr.st

  4. #24
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    Si tu es pro du TcomPort ou si tu as une petite idée pour resoudre mon blem... alors...
    www.Roblaise.fr.st

  5. #25
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Tophe59
    Si tu es pro du TcomPort ou si tu as une petite idée pour resoudre mon blem... alors...
    Toujours d'actualité
    www.Roblaise.fr.st

  6. #26
    Membre averti
    Profil pro
    xxxxxxxxxxx
    Inscrit en
    Juin 2004
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : xxxxxxxxxxx

    Informations forums :
    Inscription : Juin 2004
    Messages : 308
    Points : 407
    Points
    407
    Par défaut
    Si tu es pro du TcomPort
    Désolé, je connais pas du tout.
    si tu as une petite idée
    Le message semble t'indiquer que le thread alloué à l'écoute des événements est déjà actif, alors... un execute de trop, ou un create de trop sur l'objet reception ?
    Sorry, j'ai cassé ma boule de cristal [/i]

  7. #27
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par cmen76
    Sorry, j'ai cassé ma boule de cristal [/i]
    Ca coute cher ces machin là : parce que j'ai besoin d'

    Merci quand meme
    www.Roblaise.fr.st

  8. #28
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    ca déscend vite ici
    www.Roblaise.fr.st

  9. #29
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    www.Roblaise.fr.st

  10. #30
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    Evenement port série
    www.Roblaise.fr.st

  11. #31
    Membre averti
    Profil pro
    xxxxxxxxxxx
    Inscrit en
    Juin 2004
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : xxxxxxxxxxx

    Informations forums :
    Inscription : Juin 2004
    Messages : 308
    Points : 407
    Points
    407
    Par défaut
    - as-tu essayé de lui passer reception sans le créer au préalable, ou l'inverse ?
    - il est pas documenté, ton composant ?
    - as-tu les sources du composant ?
    - si oui, as-tu tracé à l'intérieur pour voir l'origine de l'exception ?

    en tout cas, il n'a pas l'air d'être très utilisé par les participants de ce forum ; en dernier lieu, change de compo pour qqch de mieux documenté / plus stable (TPAPro ?)

  12. #32
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    non, oui, oui, non Je ne maitrise pas à ce point

    Changer de composant ok mais si c'est pour tout recoder et avoir de nouveau un probleme équivalant

    Tcomport est connu non ?
    www.Roblaise.fr.st

  13. #33
    Membre averti
    Profil pro
    xxxxxxxxxxx
    Inscrit en
    Juin 2004
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : xxxxxxxxxxx

    Informations forums :
    Inscription : Juin 2004
    Messages : 308
    Points : 407
    Points
    407
    Par défaut
    Tcomport est connu non ?
    par des connaisseurs ?

  14. #34
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    www.Roblaise.fr.st

  15. #35
    Membre averti
    Profil pro
    xxxxxxxxxxx
    Inscrit en
    Juin 2004
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : xxxxxxxxxxx

    Informations forums :
    Inscription : Juin 2004
    Messages : 308
    Points : 407
    Points
    407
    Par défaut
    boude pas !

    As-tu essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WaitForAsync(operation);

  16. #36
    Membre averti
    Profil pro
    xxxxxxxxxxx
    Inscrit en
    Juin 2004
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : xxxxxxxxxxx

    Informations forums :
    Inscription : Juin 2004
    Messages : 308
    Points : 407
    Points
    407
    Par défaut
    Je suis pas sûr d'avoir trouvé le composant que tu utilises...
    Je suis tombé sur http://ftp.kvantum.hu/pub/com/src/Cport.~pas
    est-ce la bonne url ? :

  17. #37
    Membre averti
    Profil pro
    xxxxxxxxxxx
    Inscrit en
    Juin 2004
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : xxxxxxxxxxx

    Informations forums :
    Inscription : Juin 2004
    Messages : 308
    Points : 407
    Points
    407
    Par défaut
    Je crois que j'ai finalement trouvé ton composant
    As-tu lu ceci dans la doc ?
    Waiting for events

    When Events property is not empty, a special thread is created for monitoring port events when application calls Open method. This is possible only when you use TComPort component in an application (thread) which creates message loop. Most applications have message loop (GUI, NT services). However, if you want to use TComPort component in a console application, you have to set Events property to empty before calling Open method or your application will crash. To monitor events in console application, you have to use WaitForEvent method.

    Example

    var
    ComPort: TComPort;
    Events: TComEvents;

    begin
    ComPort := TComPort.Create(nil);
    try
    ComPort.Events := []; // do not create monitoring thread
    ComPort.Open; // open port
    Events := [evCTS, evDSR, evRLSD]; // define events to wait for
    ComPort.WaitForEvents(Events, nil, WaitInfinite); // wait until at least one event happens
    if evCTS in Events then

    WriteLn('CTS Changed'); // CTS signal changed state
    ComPort.Close; // close port
    finally
    ComPort.Free;
    end;
    end;
    Alors, essaye de vider les events avant d'ouvrir le comport pour voir si ça marche mieux...

  18. #38
    Membre averti
    Profil pro
    xxxxxxxxxxx
    Inscrit en
    Juin 2004
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : xxxxxxxxxxx

    Informations forums :
    Inscription : Juin 2004
    Messages : 308
    Points : 407
    Points
    407
    Par défaut
    La doc précise, pour TComPort.ReadStrAsync
    Reads data from input buffer into string variable in asynchronous mode.

    function ReadStrAsync(var Str: String; Count: Integer; var AsyncPtr: PAsync): Integer;

    Description
    Call ReadStrAsync function to read Count bytes into Str variable. The function returns immidiately and does not wait for the operation to be completed. Call WaitForAsync function to make sure that the operation is completed. AsyncPtr parameter is PAsync record initialized by InitAsync method. The application is responsible for freeing AsyncPtr pointer with DoneAsync method after the operation is completed

    The return value is the number of bytes that are actually read.

    Note
    If the result of WaitForAsync is different than Count parameter, application must manually adjust Str parameter length using SetLength function.

    Do not call ReadStrAsync method with parameter Count set to 0.
    Prends donc le temps de parcourir la doc, si bien faite, du composant
    ciao

  19. #39
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    J'avais vu mais ca ne fonctionne pas. Je dois mal m'y prendre

    si je met ce code dans le prog principal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
              ComPort1.ReadStrAsync(Rx,1, Operation1);
              ComPort1.WaitForAsync(Operation1);
    Rx='#0' ce qui ne correspond à rien

    si je laisse continuer le prog mais avec une procédure OnRx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    begin
              ComPort1.ReadStrAsync(Rx,1, Operation1);
    end;
    Rx contient bien 'o' c a d ce que lui envois le HC11

    Donc pour regler le probleme il faut que j'attende qu'il entre dans la procedure OnRx avant de continuer d'ou l'attente d'un evenement.

    C'est là que je dois merder. J'ai testé en long en large et en travers. A chaque fois j'ai une erreur Thread ce qui veut dire qu'il doit deja etre en attente d'un évenement
    www.Roblaise.fr.st

  20. #40
    Membre averti
    Profil pro
    xxxxxxxxxxx
    Inscrit en
    Juin 2004
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : xxxxxxxxxxx

    Informations forums :
    Inscription : Juin 2004
    Messages : 308
    Points : 407
    Points
    407
    Par défaut
    Alors pourquoi pas essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    bienrecu := false;
    repeat
      application.processmessages;
    until bienrecu;
    avec dans l'événement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    readstrasync...
    bienrecu := true;

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Débutant: aide sur port série
    Par RossBay dans le forum VB.NET
    Réponses: 6
    Dernier message: 11/06/2010, 15h31
  2. Réception de caractère sur port série : problème
    Par dableuf dans le forum Delphi
    Réponses: 2
    Dernier message: 06/12/2006, 09h16
  3. [VB6]Réception de données sur port série
    Par lindecker dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 08/03/2006, 06h48
  4. Recevoir "NULL" sur port série
    Par WinY57 dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 04/03/2005, 11h37
  5. Etat de CTS sur port série
    Par Juste_Une_IlluZion dans le forum C++Builder
    Réponses: 9
    Dernier message: 12/09/2004, 10h46

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