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,