flyingrock66
Messages postés6Date d'inscriptiondimanche 24 septembre 2006StatutMembreDernière intervention28 décembre 2006
-
28 déc. 2006 à 14:54
flyingrock66
Messages postés6Date d'inscriptiondimanche 24 septembre 2006StatutMembreDernière intervention28 décembre 2006
-
28 déc. 2006 à 19:42
Bonjour,
Certains programmes utilisés par les radioamateurs se servent de la broche CTS des ports séries pour récupérer des trames issues d'une interface reliée à un recepteur.
Savez vous comment est géré cette lecture sur la broche CTS ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 28 déc. 2006 à 15:25
En vb6, il te faut rajouter le controle MS Comm à ton projet.
Ensuite il faut que tu fasse une boucle pour venir scruter régulièrement la propriété CTSHolding de ton controle, mémoriser chaque état (bits) pour les regrouper ensuite en mots de 8 bits.
En gros, il faut que tu te tappe la désérialisation des données à la main.
Plutot étrange d'utiliser la ligne CTS pour communiquer, pourquoi ne pas prendre la ligne RX qui est prevue pour cela.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 28 déc. 2006 à 17:00
1200bauds ça fait en gros 0.8ms par bit.
Tu ne peux pas utiliser le controle Timer. Mais avec une boucle faut voir ce que ça donne.
Sinon faut passer par un Timer système, en utilisant les api windows
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
flyingrock66
Messages postés6Date d'inscriptiondimanche 24 septembre 2006StatutMembreDernière intervention28 décembre 2006 28 déc. 2006 à 16:34
Merci pour la réponse, je pense que l'utilisation de la broche CTS est plus pratique dans ce cas car elle n'impose pas la reception des bits par octets.
Le projet qui m'interesse prévoit la reception d'une trame de 120 bits minimum, il n'y a pas de bit de start ni d'arret "entourant" un mot.
La vitesse de transmission est de 1200 bauds/s n'est ce pas trop rapide pour VB ?
Francis
Vous n’avez pas trouvé la réponse que vous recherchez ?
flyingrock66
Messages postés6Date d'inscriptiondimanche 24 septembre 2006StatutMembreDernière intervention28 décembre 2006 28 déc. 2006 à 18:06
Bonsoir,
Je viens de trouver ça http://support.microsoft.com/kb/172338 , la résolution annoncée dans les meilleurs des cas et de 10 ms, n'y at-il pas plus rapide ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 28 déc. 2006 à 18:49
Il faudrait éplucher ce document, mais ces résultats ne sont pas réalistes.
Time, controle Timer, ... ont une résolution de 20ms environ (18.2ms exactement)
GetTickCount à une résolution de 1ms puis que cette api te renvoie le nombre de ms depuis l'allumage de la machine.
QueryPerformanceCounter a une résolution dépendant de la machine mais généralement largement inférieure à la µs. Sur mon Pc, de ce que j'ai pu estimer, je tourne aux environ de la dizaine de ns ( 0.00001ms).
Malheuresement, QueryPerformanceCounter n'est pas disponibles sur tous les PC même les modernes. Sur ceux pour lesquels cett api marche, la résolution est donnée par la formule 1/freq, avec freq : la fréquence renvoiyée par l'api QueryPerformanceFrequency
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
flyingrock66
Messages postés6Date d'inscriptiondimanche 24 septembre 2006StatutMembreDernière intervention28 décembre 2006 28 déc. 2006 à 18:59
Je ne comprends pas quand tu dis "Malheuresement, QueryPerformanceCounter n'est pas disponibles sur tous les PC même les modernes" ce n'est qu'une question de code ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 28 déc. 2006 à 19:09
Non, pour que cette api marche, il est necessaire que soit implanté dans le système (processeur, chipset, ou carte mère, je sais pas où exactement), des compteurs Hautes performances. Ca dépend du matériel, ce n'est pas une question de code.