|
FOROS PROFESIONALES WINDEV, WEBDEV y WINDEV Mobile |
| | | | | |
| [WD14] Retrouver un port série |
| Iniciado por guest.a-j, 02,dic. 2009 18:37 - 6 respuestas |
| |
| | | |
|
| |
| Publicado el 02,diciembre 2009 - 18:37 |
Bonjour à tous !
Voilà, j'ai une petite interrogation.
J'ai un PC avec plusieurs port série mais un seul m'intéresse.
"L'avantage" c'est que son fabricant est différent (c'est un cable usb - série utilisant un driver FTDI ).
Comment faire pour le retrouver ?
J'ai bien penser à lister les ports séries et retrouver lequel utilise un driver de tel fabricant, mais je n'ai aucune idée comment faire en Windev...
Merci de vos lumières !
A Bientôt |
| |
| |
| | | |
|
| | |
| |
| Publicado el 09,diciembre 2009 - 10:31 |
Bonjour Difficile en utilisant que du code Windev !
Si il n'y a rien du côté de dot net, as tu regardé du côté de la base de registre ou WMI car Windev sait très bien s'interfacer avec.
Si tu en as toujours besoin je peut t'envoyer une collection de procédure où il y a quelques fonctions exploitant WMI pour les principales classe dont Win32_SerialPort dont tu peut trouver la description ici http://msdn.microsoft.com/en-us/library/aa394413%28VS.85%29.aspx Je ne suis pas sur du résultat sur ta config...
Alex a écrit dans le message de news: 396e427da6688c674ba1f2e2e3966487@news.pcsoft...
Bonjour à tous !
Voilà, j'ai une petite interrogation.
J'ai un PC avec plusieurs port série mais un seul m'intéresse.
"L'avantage" c'est que son fabricant est différent (c'est un cable usb - série utilisant un driver FTDI ).
Comment faire pour le retrouver ?
J'ai bien penser à lister les ports séries et retrouver lequel utilise un driver de tel fabricant, mais je n'ai aucune idée comment faire en Windev...
Merci de vos lumières !
A Bientôt
|
| |
| |
| | | |
|
| | |
| |
| Publicado el 09,diciembre 2009 - 14:06 |
Bonjour, Merci beaucoup d'avoir répondu au message. En cherchant un peu dans l'aide de windows et autre je n'avais pas trouvé, par contre le fournisseur du câble fourni une DLL très pratique. Je met le code si jamais ça peut intéresser quelqu'un :
Procedure FTDI_Recupère_numero_com()
ETaskhandle est un entier sans signe sur 4 octets nNumero_port_com est un entier=-1 nGnId_dll est un entiersystème =ChargeDLL("ftd2xx.dll")
SI AppelDLL32("ftd2xx.dll","FT_Open",0,&ETaskhandle) <> FT_OK ALORS Erreur("FTDI : Erreur d'ouverture") DéchargeDLL(nGnId_dll) RENVOYER -1 FIN
SI AppelDLL32("ftd2xx.dll","FT_GetComPortNumber",ETaskhandle,&nNumero_port_com) <> FT_OK ALORS Erreur("FTDI : Erreur d'aquisition du numéro de port COM") DéchargeDLL(nGnId_dll) RENVOYER -1 FIN
SI nNumero_port_com=-1 ALORS Erreur("FTDI : Pas de port COM associé") DéchargeDLL(nGnId_dll) RENVOYER -1 FIN
AppelDLL32("ftd2xx.dll","FT_Close",ETaskhandle)
DéchargeDLL(nGnId_dll)
RENVOYER nNumero_port_com
Bien entendu ça ne fonctionne qu'avec le module FTDI.
A Bientôt |
| |
| |
| | | |
|
| | |
| |
| Publicado el 21,agosto 2013 - 08:25 |
Salut Alex, je suis tombé sur ton code trés intéressant. Je dois communiquer avec un périphérique usb avec puce ftdi donc ça c'est ok. Cependant quand je branche mon périphérique et que je tente ton code ( avec la correction "FT_OK" et non FT_OK) le retour de l'apple DLL32 me renvoie 0 pour iDevice = 0 (comme ton exemple) et 2 pour iDevice>0.
Je ne comprend pas ce qui se passe. Mon périphérique est bien connecté et je suis en v17. Merci par avance |
| |
| |
| | | |
|
| | |
| |
| Publicado el 21,agosto 2013 - 10:38 |
Salut, Si, si le FT_OK etait bon, par contre il te manque la déclaration des constantes : (en fait celle donnée par le constructeur)
CONSTANT
FT_OK=0 FT_INVALID_HANDLE=1 FT_DEVICE_NOT_FOUND=2 FT_DEVICE_NOT_OPENED=3 FT_IO_ERROR=4 FT_INSUFFICIENT_RESOURCES=5 FT_INVALID_PARAMETER=6 FT_INVALID_BAUD_RATE=7 FT_DEVICE_NOT_OPENED_FOR_ERASE=8 FT_DEVICE_NOT_OPENED_FOR_WRITE=9 FT_FAILED_TO_WRITE_DEVICE=10 FT_EEPROM_READ_FAILED=11 FT_EEPROM_WRITE_FAILED=12 FT_EEPROM_ERASE_FAILED=13 FT_EEPROM_NOT_PRESENT=14 FT_EEPROM_NOT_PROGRAMMED=15 FT_INVALID_ARGS=16 FT_NOT_SUPPORTED=17 FT_OTHER_ERROR=18 FT_DEVICE_LIST_NOT_READY=19
FT_OPEN_BY_SERIAL_NUMBER =1 FT_OPEN_BY_DESCRIPTION =2 FT_OPEN_BY_LOCATION=4
FT_LIST_NUMBER_ONLY=0x80000000 FT_LIST_BY_INDEX=0x40000000 FT_LIST_ALL=0x20000000
FT_BAUD_300=300 FT_BAUD_600=600 FT_BAUD_1200=1200 FT_BAUD_2400=2400 FT_BAUD_4800=4800 FT_BAUD_9600=9600 FT_BAUD_14400=14400 FT_BAUD_19200=19200 FT_BAUD_38400=38400 FT_BAUD_57600=57600 FT_BAUD_115200=115200 FT_BAUD_230400=230400 FT_BAUD_460800=460800 FT_BAUD_921600=921600
FT_BITS_8=8 FT_BITS_7=7 FT_BITS_6=6 FT_BITS_5=5
FT_STOP_BITS_1=0 FT_STOP_BITS_1_5=1 FT_STOP_BITS_2=2
FT_PARITY_NONE=0 FT_PARITY_ODD=1 FT_PARITY_EVEN=2 FT_PARITY_MARK=3 FT_PARITY_SPACE=4
FT_FLOW_NONE =0x0000 FT_FLOW_RTS_CTS =0x0100 FT_FLOW_DTR_DSR =0x0200 FT_FLOW_XON_XOFF =0x0400
FT_PURGE_RX =1 FT_PURGE_TX =2
FT_EVENT_RXCHAR =1 FT_EVENT_MODEM_STATUS =2
FT_DEFAULT_RX_TIMEOUT =300 FT_DEFAULT_TX_TIMEOUT =300
FIN
A+ |
| |
| |
| | | |
|
| | |
| |
| Publicado el 21,agosto 2013 - 15:49 |
Rhaaaaaa ça marche !!!! tu gères. Merci énormément. Maintenant je dois m'atteler à faire l'appli pour tablette android.. Tu as déja fais ? Je dois utiliser le nouveau driver fournis par ftdi et implémenter la partie communication port com avec JAVA (car les fonction slit et sEcrit n'existe pas sur android).
Merci en tout cas. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 27,abril 2020 - 20:15 |
Bonjour Alexandre,
je suis tombé sur votre code en cherchant a manipuler la dll ftd2xx.dll.
j'ai tester votre code qui fonctionne parfaitement mais j'ai besoin d'utiliser d'autres fonctions que je n'arrive pas à faire fonctionner.
mon problème est de convertir correctement les exemples dans la doc en C vers WinDev et là j'ai beaucoup de lacunes.
Avez-vous du temps pour échanger avec vous sur le sujet svp ?
mon objectif final est d'identifier les port com des devices connectés via ftdi sur la machine par rapport à leur nom, et il peut y en avoir plusieurs de connectés en même temps.
Merci d'avance. |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|