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# Discussion :

gestion de l'envoie de données par USB


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 39
    Points : 27
    Points
    27
    Par défaut gestion de l'envoie de données par USB
    Bonjour,
    Je suis en train de développer un code où je dois faire l'envoie de données par USB sur un micro-contrôleur. J'utilise la librairie "UsbLibrary".
    Pour venir à mon problème je veux dans une forme envoyé à la suite deux trames USB. J'utilise pour cela le bout de 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    byte[] PVT = new byte[12];
     
                                this.usb.ProductId = Int32.Parse("C626", System.Globalization.NumberStyles.HexNumber);
                                this.usb.VendorId = Int32.Parse("046D", System.Globalization.NumberStyles.HexNumber);
                                this.usb.CheckDevicePresent();
     
                                PVT[0] = (byte)0;
                                PVT[1] = (byte)11; // indentité du moteur
                                if ((angleDessus < 0) || (vitAngDessus < 0))
                                { // condition pour le signe 
                                    PVT[2] = (byte)1;
                                    angleDessus = Math.Abs(angleDessus);
                                    vitAngDessus = Math.Abs(vitAngDessus);
                                }
                                else
                                {
                                    PVT[2] = (byte)0;
                                }
                                PVT[3] = Convert.ToByte(angleDessus % 255);
                                if (angleDessus >= 255)
                                    PVT[4] = Convert.ToByte(Convert.ToInt32(angleDessus / 255));
                                else
                                    PVT[4] = Convert.ToByte(0);
                                PVT[5] = Convert.ToByte(vitAngDessus % 255);
                                if (vitAngDessus >= 255)
                                    PVT[6] = Convert.ToByte(Convert.ToInt32(vitAngDessus / 255));
                                else
                                    PVT[6] = Convert.ToByte(0);
     
                                if (this.usb.SpecifiedDevice != null)
                                {
                                    this.usb.SpecifiedDevice.SendData(PVT);
                                    //MessageBox.Show("Mes données sont envoyées.");
                                }
                                else {
                                    MessageBox.Show("Y a rien duCon");
                                }
                                this.usb.Dispose();
     
                           // System.Threading.Thread.Sleep(Convert.ToInt32(angleDessus/vitAngDessus) * 1000);
     
                                PVT[0] = (byte)0;
                                PVT[1] = (byte)12; // indentité du moteur
                                if ((angleDessous < 0) || (vitAngDessous < 0))
                                { // condition pour le signe 
                                    PVT[2] = (byte)1;
                                    angleDessus = Math.Abs(angleDessous);
                                    vitAngDessus = Math.Abs(vitAngDessous);
                                }
                                else
                                {
                                    PVT[2] = (byte)0;
                                }
                                PVT[3] = Convert.ToByte(angleDessous % 255);
                                if (angleDessus >= 255)
                                    PVT[4] = Convert.ToByte(Convert.ToInt32(angleDessous / 255));
                                else
                                    PVT[4] = Convert.ToByte(0);
                                PVT[5] = Convert.ToByte(vitAngDessous % 255);
                                if (vitAngDessus >= 255)
                                    PVT[6] = Convert.ToByte(Convert.ToInt32(vitAngDessous / 255));
                                else
                                    PVT[6] = Convert.ToByte(0);
     
                                this.usb.ProductId = Int32.Parse("C626", System.Globalization.NumberStyles.HexNumber);
                                this.usb.VendorId = Int32.Parse("046D", System.Globalization.NumberStyles.HexNumber);
                                this.usb.CheckDevicePresent();
                                if (this.usb.SpecifiedDevice != null){
                                    this.usb.SpecifiedDevice.SendData(PVT);
                                    //MessageBox.Show("Mes données sont envoyées.");
                                }
                                else{
                                    MessageBox.Show("Y a rien duCon");
                                }
    Lorsque que j'enlève les commentaires messageBox juste après l'envoie j'ai mes trames qui sont envoyées sinon rien n'est envoyé ni dans le premier ou le deuxième cas.
    Je pense que c'est du au fait que je clique pour les événements et tout est envoyé ....
    Quelqu'un pourrait il m'aider???? Toutes aides sera la bienvenue :-)
    MERCI,

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 39
    Points : 27
    Points
    27
    Par défaut
    Bonjour,

    Bon pour essayer de résoudre mon problème je suis passé par une méthode barbare certes mais qui logiquement devait fonctionner. J'avais remarqué que lorsque je cliquer sur mon même buttons l'autre moteur tourné .... Mais du coup, j'ai retenté l'expérience en mettant une condition sur le même bouton "button1.ClckPerform()"... Mais bon ça ne fonctionne pas ... N'y aurait il pas un moyen de faire passer un événement dans cette fonction ... ? Si oui lequel ?

    Merci

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 39
    Points : 27
    Points
    27
    Par défaut
    Bon j'ai trouvé comment faire après mainte recherches et essaie... Je poste ceci juste au cas où pour ceux qui aurait rencontré le même problème.
    Il suffit d'ajouter à la form des timers et de faire les envoies USB.
    Le nombre de timers doit être égale au nombres de trames USB envoyées. C'est à dire, si j'ai deux signaux USB différents, il faut que je crée de timers et que je les lie .
    Voili Voilou,
    ++
    dronix.
    P.S:Si vous voulez que j'explique en détails envoyé un msg sur cette discussion

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

Discussions similaires

  1. envoie de donnée par mail via vba
    Par swissmade dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/08/2007, 11h43
  2. C# envoie de données par bus CAN/RS232
    Par xaviooo dans le forum C#
    Réponses: 6
    Dernier message: 09/03/2007, 10h05
  3. [Mail] envoie des données par mail
    Par leclone dans le forum Langage
    Réponses: 2
    Dernier message: 31/01/2007, 10h15
  4. Envoie de données par gsm
    Par strate01234 dans le forum Java ME
    Réponses: 1
    Dernier message: 30/01/2007, 21h23
  5. [VB6]Envoi de données par connexion WiFi
    Par Valeriegerard dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 05/05/2006, 18h18

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