Bonjour,
quelqu'un pourrait me dire qu'elle composant je pourrai utiliser sous delphi XE2 me permettant de communiquer avec le port USB.
Merci
Bonjour,
quelqu'un pourrait me dire qu'elle composant je pourrai utiliser sous delphi XE2 me permettant de communiquer avec le port USB.
Merci
question déjà posée :
http://www.developpez.net/forums/d10...b-sous-delphi/
Bonjour,
existe-il un composant delphi XE2 permettant d'établir une connexion USB ?
J'ai cherché sur le net et j'ai du mal à trouver une réponse claire à ce sujet, je ne suis pas un expert de delphi, j'ai créé quelques applications avec mais je comprend pas que embarcadero n'est pas prévu depuis le temps ce genre de composant permettant de programmer une transmission des port USB, ou quelque choses m’échappe dû à mon inexpérience de delphi.
Merci
je doute qu'un jour Delphi ne propose un composant USB, Delphi est clairement orienté application de gestion et pas vraiment programmation système.
ceci dit je cherche moi même à accéder à une imprimante USB (je veux éviter d'avoir à installer le driver)
avec la SetupAPI (SetupDiEnumDeviceInterfaces et SetupDiGetDeviceInterfaceDetail) il est possible de récupérer le DevicePath d'un périphérique USB qu'on peut alors ouvrir comme un simple fichier dont le nom est sous une forme du style : '\\?\usb#vid_04b8&pid_0202#j4fg015884#{5dd901c0-bcf4-11d1-9738-008029e6a5b3}'.
Dans mon cas c'est une imprimante ticket EPSON, mais j'ai une erreur ERROR_INVALID_HANDLE quand je tente d'écrire dessus et je ne sais pas pourquoi.
Merci Paul TOTH pour l'info que je vais examiné, pour l'instant je me suis tourné du côté de Visual C++ puisque la source que j'ai et qui fonctionne sur mon bus USB puisqu'elle est proposé par microchip chez qui je programme un microcontroleur avec lequel je souhaite faire communiqué avec un pc via l'USB.
La petite et seul difficulté est que je ne connais absolument pas Visual C++, j'arrive à repérer les routines qui récupère ma données puis l'affiche, seulement celle-ci s'affiche en ascii et pas en décimal comme je le souhaiterai
http://www.developpez.net/forums/d13...l/#post7551534
Si tu as une idée je suis preneur
manifestement ton exemple c'est du .Net
http://msdn.microsoft.com/fr-fr/libr...v=vs.110).aspx
ton équipement USB doit créer un Port Série virtuel, tu dois donc rechercher la gestion des ports série sous Delphi.
Excuse moi Paul TOTH mais j'ai pour l'instant du mal à comprendre ce que tu veux dire.
Mes nocions de programmation son encore limitées, j'ai compris comment mes data arrive et s'affiche sur vc++ j'essai donc de comprendre dans ça globalité pour éventuellement l'adapter, il me faut juste s'avoir comment afficher un chiffre décimal.
Mon objectif est de pouvoir afficher, mes différentes données du microprocesseur comme la valeurs des adc et pwm par exemple
Si j'ai bien compris le procesus, on récupère la donnée à ce niveau là
SetText(serialPort1->ReadExisting());
puis la fonction
l'affiche , ce qui fonctionne très bien , seulement il me reste soit à récupérer la valeur en tant que décimal ou la reconvertir de l'ascii en décimal
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 private: void SetText(String^ text) { //InvokeRequired required compares the thread ID of the // calling thread to the thread ID of the creating thread. // If these threads are different, it returns true. We can // use this attribute to determine if we can append text // directly to the textbox or if we must launch an a delegate // function instance to write to the textbox. //if (this->txtDataReceived->InvokeRequired) if (this->txtDataReceived1->InvokeRequired) //Laurent { //InvokeRequired returned TRUE meaning that this function // was called from a thread different than the current // thread. We must launch a deleage function. //Create an instance of the SetTextCallback delegate and // assign the delegate function to be this function. This // effectively causes this same SetText() function to be // called within the main thread instead of the second // thread. SetTextCallback^ d = gcnew SetTextCallback(this,&VCCDC::Form1::SetText); //Invoke the new delegate sending the same text to the // delegate that was passed into this function from the // other thread. this->Invoke(d,gcnew String(text)); } else { //If this function was called from the same thread that // holds the required objects then just add the text. txtDataReceived1->AppendText(text); // laurent //txtDataReceived->AppendText(text); } }
Partager