RS 232 de QBASIC à Vb6

Résolu
nicodada Messages postés 42 Date d'inscription samedi 10 décembre 2005 Statut Membre Dernière intervention 12 juillet 2007 - 7 juil. 2006 à 15:17
Mhamed Jamil Messages postés 5 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 16 août 2006 - 16 août 2006 à 14:40
Bonjour
En fait je cherche l'équivalent de la fonction  OUT de QBASIC pour toucher l'RS 232
J'ai déja trouvé, avec mscomm32.ocx , comment ouvrir le port COM1 mais je mscomm32.ocx ne permet pas de fair la fonction la: (en QBASIC)
OUT 1019,64
Avec mscomm32.ocx on ne peut envoyer que de l'ascii mais pas gerer completement le port
merci

13 réponses

rylryl Messages postés 311 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 15 décembre 2006 1
8 juil. 2006 à 13:59
Bonjour a tous,

Nicodada > Si tu veux  piloter TXD (Plage E/S COM1 théorique &H3F8-&H3FF  (1019 = adresse base &H3F8 +3) 
directement utilise plutôt par exemple "PORT.DLL"
La syntaxe sera : TXD(0) et TXD(1).

Salut Jack.

Adamo901 > Je ne pense pas que ce soit possible d'atteindre ces vitesse, mais il est possible de reformer un Octet ou un paquet de bits directement via les lignes RTS DTR ect...(pareil en reception)
Donc il faut calculer la durée d'un bit a 100 ou 200 bauds et reformer l'octet ou le paquet de bits.
Et faire la même chose pour la reception...

A+
ryl...
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 juil. 2006 à 16:52
Salut
On peut faire beaucoup de chose avec ls MSComm32
Si tu nous dis à quoi correspondent les valeurs 1019 et 64, on pourra peut-être t'aider.
+ Lire les réponses à cette question récemment posée sur le forum : clique ici

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
0
adamo901 Messages postés 139 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 8 décembre 2008
7 juil. 2006 à 18:18
une question dans le cadre pour jack :
J'ai besoin de communiquer avec le port comm en utilisant commevitesse 200 ou 100

MSCOMM ne l'accèpte pas!!

Aves vous une solution SVP!
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 juil. 2006 à 19:05
En effet, ce sont des vitesses hors normes = matériel trop vieux ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
adamo901 Messages postés 139 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 8 décembre 2008
7 juil. 2006 à 21:53
oui, ce sont des liaions télégraphiques.

J'ai vraimenet besoin d'aide sur ce sujet
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 juil. 2006 à 01:16
Re
Si tu veux de l'aide, je le répète, dis nous à quoi servent ces chiffres 1019 et 64
0
adamo901 Messages postés 139 Date d'inscription mardi 18 janvier 2005 Statut Membre Dernière intervention 8 décembre 2008
8 juil. 2006 à 12:34
moi je veux de l'aide et ce que je veux c'est pouvoir utiliser mscomm à des vitesses autres que ce celles prédéfinies par microsoft.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 juil. 2006 à 16:30
Amado901 : Non, ce n'est pas possible avec ce composant.

Nicolada : J'espère que tu viendras lire les réponses à ta question ...
A priori, si comme le dit Rylryl, cette adresse pointe l'adresse du port Com, il suffit d'utiliser COM1 avec MSComm et ce sera pareil.
0
rylryl Messages postés 311 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 15 décembre 2006 1
8 juil. 2006 à 17:53
Re,

Jack > Je ne suis pas tout a fait de ton avis   , pas taper  pas taper!!
Je pense que c'est possible de passer a 100,200 avec MSCOMM mais en faisant une "EMULATION"
Du bloc de bits a transmettre, comme j'ai essayé de l'expliquer plus haut...

Et pour le sujet de Nicodada , je pense qu'il  veut juste contrôler l'etat de la ligne TXD (sans BAUD,STOP,PARITE)
Mais il me semble qu'avec MSCOMM il n'est pas possible de contrôler directement cette ligne... a vérifier ...

PS : Je ne veux surtout pas te froisser Jack tu fait un super boulot...!

A+
ryl...
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
9 juil. 2006 à 02:02
lol Rylryl : je suis pas du genre à frapper !
C'est moi qui te remercie de ta participation.
Honnètement, ça m'étonnerait qu'on puisse bidouiller la vitesse puisque le cadensement est géré par le circuit, mais bon, pourquoi pas, mais je n'ai jamais vu ça.

Par contre, pour bien voir ce qui se passe sur le port Com, cette source (pas toute jeune) est super bien faite
clique ici . La source utilise une DLL nommée RSCOM.dll
0
rylryl Messages postés 311 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 15 décembre 2006 1
10 juil. 2006 à 15:02
Bonjour Jack,


Super!, Merci pour ta compréhention !


Il n'est plus question d'utiliser le cadencement interne,
Mais bien de capturer a un instant "T" le début d'un envoie (ou recep)
Et de reformer le bloc de bits...


Je connais RSCOM.DLL, en fait RSCOM.DLL et PORT.DLL sont soeur :
Le créateur "Burkhard Kainka"
http://www.b-kainka.de/
Il y a sur son site toutes les infos sur les DLL, il est aussi possible de les utiliser pour:
Piloter L'IRDA, Piloter Carte son, Piloter le port MIDI ect...
(ATTENTION !! Certaines fonctions sont HS sous XP!!)


A bientôt...


ryl...
0
nicodada Messages postés 42 Date d'inscription samedi 10 décembre 2005 Statut Membre Dernière intervention 12 juillet 2007
11 juil. 2006 à 14:37
J'ai trouvé plus facilement ce que je cherché grace au port.dll
merci a tous
0
Mhamed Jamil Messages postés 5 Date d'inscription mercredi 10 mai 2006 Statut Membre Dernière intervention 16 août 2006
16 août 2006 à 14:40
Bonjour,


J’ai un code pour gèrer une carte électronique avec le port com1.


J’ai réussi à envoyer des commandes par le MsComm, mais je n’arrive pas à traduire le QBasic au VB6 pour récupérer les données d’entrées (InPut)


Voici le code en QBasic :

Open "COM2:9600,N,8,1,rs,cs0,ds0" For Random As #10


Do
    Print #10, "**" + Chr$(Val(a$)) + "#";
                 
    digital$ = Input$(1, #10)
    ad1$ = Input$(1, #10)
    ad2$ = Input$(1, #10)



    Print "Ingressi ="; Asc(digital$);
    Print "Convertitore A/D 1 ="; Asc(ad1$);
    Print "Convertitore A/D 2 ="; Asc(ad2$)
          
    SLEEP 5
Loop
End

Merci de votre aide.
0
Rejoignez-nous