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

C++Builder Discussion :

erreur d'execution avec l'utilisation TCOMPORT


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Points : 22
    Points
    22
    Par défaut erreur d'execution avec l'utilisation TCOMPORT
    coucou à tous
    Je communique avec un matériel via un port série.
    La communication est de type asynchrone.
    Et tous ce qu'il.faut c'est envoyer une trame et attendre une trame de confirmation de réception.
    j'ai installé le composant TComport, qui c'est bien passé
    la compilation est correcte
    mais lors que j'exécute mon programme une fenêtre window s'affiche...

    "violation d'acces dans le modul BORLNDMM.DLL"

    pourriez vous me dire ce qui va pas dans mon code SVP

    TAsync PAsync;
    void *buffer;
    TComEvents Ev;

    ComPort1->Port="COM1";
    ComPort1->Open();
    ComPort1->Events = TComEvents(); /* effacer tous les évenements */
    ComPort1->Connected = true;

    InitAsync(&PAsync);
    ComPort1->WriteStrAsync("129 6 3 1 41 9",&PAsync);
    ComPort1->WaitForAsync(&PAsync);
    DoneAsync(&PAsync);

    Ev << evRxChar;
    ComPort1->WaitForEvent(Ev,0,500);
    ComPort1->ReadAsync(buffer, sizeof(buffer), &PAsync);

    ComPort1->ClearBuffer (false, true);
    ComPort1->Connected = false;
    ComPort1->Close();

  2. #2
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut
    Salut,
    si tu fais une exécution en mode pas à pas, sais-tu où l'erreur se produit ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Points : 22
    Points
    22
    Par défaut
    en pas à pas l'erreur de produit des que je fait appel à mon code d'écrit au dessus.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Points : 22
    Points
    22
    Par défaut
    pour être plus précis, l'erreur ce fait lors de l'appel de la fonction "WriteStrAsync"

  5. #5
    Membre averti
    Avatar de joellel
    Profil pro
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Points : 338
    Points
    338
    Par défaut
    Tu fais des accès à une pointeur sur structure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ComPort1->Port
    ...
    As tu alloué de la place pour ComPort1?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Points : 22
    Points
    22
    Par défaut
    ComPort1 est le composant que j'ai placer sur le formulaire
    je suppose qu'il est déja alloué...
    en fait j'ai découvert Borland y a pas longtemp,
    y a peut être un détail dont je n'ai pas fait attention????

  7. #7
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut
    Il est possible que les paramètres de PAsync soit erroné. Je n'ai jamais travaillé sur une communication asynchrone, j'utilisé la commande WriteStr(AnsiStringtexte);.
    Désolé, mais peut être en vérifiant bien tous les paramètres et en rentrant dans la fonction WriteStrAsync avec F7, peux tu trouver les paramètres faussés ou manquant.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Points : 22
    Points
    22
    Par défaut
    hélas, je ne peut pas rentrer dans la fonction.
    mais j'ai peut au mois vérifier les paramètre.
    "PAsync" semble provoquer le problème car j'ai fait une expérience ou je me contente de lire le port.
    il y a le même problème qu'en écriture et le seul facteur comment semble être cette argument.

  9. #9
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    thony76 probleme Tcomport
    tu peu faire une recherche sur le FORUM, avec le mot "TCOMPORT", sur la page d'acceuil recherche, il y a des poste qui pourront d'aider
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  10. #10
    Membre du Club Avatar de vantoff
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 85
    Points : 67
    Points
    67
    Par défaut
    fait tout simplement ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      char Buffer[255];
                ComPort1->Write(Buffer,11);// 11= nombre caractère de ta trame

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 67
    Points : 22
    Points
    22
    Par défaut
    j'ai déja essayer
    je n'ai pas de problème de DLL
    mais il ne se passe rien
    je suis en mode asynchro, je croyais qu'il fallait utiliser
    WriteStrAsync()

Discussions similaires

  1. Erreur d'execution avec les composants tJasperOutput et tJasperOutputExec
    Par hagen_71 dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 13/10/2014, 15h50
  2. gcc: erreur d'execution avec -O2
    Par divide dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 10/10/2009, 13h11
  3. erreur d'execution avec kettle
    Par leithyfa dans le forum kettle/PDI
    Réponses: 6
    Dernier message: 04/08/2009, 19h38
  4. Erreur d'execution avec des Spacers.
    Par Somato dans le forum Débuter
    Réponses: 1
    Dernier message: 07/07/2008, 15h16
  5. Erreur à l'execution avec des dll
    Par Jim_Nastiq dans le forum Visual C++
    Réponses: 2
    Dernier message: 02/03/2007, 15h15

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