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 :
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.
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"); }
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,
Partager