Ouvrir des ports Com avec Getsettings

basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008 - 15 mai 2007 à 22:37
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008 - 17 mai 2007 à 19:15
bonjour,

finalement pour ouvrir plusieurs ports com à partir d'une combobox, j'ai fait appel à savesettings et getsettings.
alors j'ouvre une page pour choisir les ports com à partir de combobox, et j'affecte à Mscomm1.commport le combo1.listindex + 2
et
Mscomm2.commport le combo2.listindex + 2

le problème quand je change les ports com de ma page de config, la connextion est toujours établies avec les anciens paramètre qouique sur ma page de config, les nouveaux paramètres sont belle et bien sauvegardé, est ce que je dois fermer toutes les connexions à chaque fois que je modifie mes paramètres afin de relancer de nouvelles connexions?

Merci pour votre aide d'avance!

11 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
15 mai 2007 à 22:43
Oui, fermeture obligatoire avant de modifier le port du MSComm

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
16 mai 2007 à 00:58
mais cela ne fonctionne pas ça me ressort que les ports ne sont pas ouverts, voici ce que j'ai mis dans load_form de ma page de config:

Form1.MSComm1.PortOpen = False
Form1.MSComm2.PortOpen = False

bizare non?
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
16 mai 2007 à 22:48
Pour changer la config d'un port déjà ouvert, il faut :

- Arreter toute procedure ou fonction succeptible d'acceder au port aussi en lecture qu'en écriture
- Le fermer
- Modifier la config
- Le réouvrir pour  pouvoir  de nouveau l'utiliser
-  (Re)Lancer les fonctions ou procédures utilisant ce port

Il est évident que si tu ferme le port mais que tu continu d'y acceder pour lire ou ecrire, tu auras un message te disant que le port est fermé

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
17 mai 2007 à 00:26
le problème c'est que j'ai dans un timer de 10ms une routine d'écriture sur un port com.

Et pourtant, je suis aller trop loin et j'ai crée un bouton ou je ferme tous les ports Com et toujours le meme message reaparait c'est dingue non?
0

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

Posez votre question
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
17 mai 2007 à 00:28
l'erreur est la suivante:

le peripherique n'est pas ouvert!!!!!!!!!!!!!!!!
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
17 mai 2007 à 09:03
avant de fermer tes ports, commence par arreter le timer.

Ensuite essaye de trouver la ligne de code qui est à l'origine du message d'erreur.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
17 mai 2007 à 15:02
la ligne originaire du problème est celle où je demande à mon port com de s'arreter;

Mscomm2.portopen = false

je vais voir cette  variante d'arrêter le timer mais je ne sais pas comme s y prendre. Veux tu me montrer le chemin stp casy?
 
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
17 mai 2007 à 15:13
Timer1.Enabled = False

si ton timer s'appele Timer1 bien entendu

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
17 mai 2007 à 17:53
même avec

Timer1.Enabled = False

le problème persiste à ce niveau:

Form1.MSComm2.PortOpen = False

l'erreur est toujours:

le péripherique n'est pas ouvert !!!
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
17 mai 2007 à 18:08
On tourne en rond depuis le debut là, es-tu sur que tes ports sont ouverts lorsque tu execute ces instructions ?????

Sinon pour etre tranquille tu met ce code :
If MSComm1.PortOpen True Then MSComm1.PortOpen FalseIf MSComm2.PortOpen True Then MSComm2.PortOpen False

 
---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
17 mai 2007 à 19:15
je suis sur que mes ports sont ouverts ma preuve c'est quand je lance mon applic j'ai mis un bouton qui me lance hyperterminal et je vois mon information passe preuve que tous mes ports sont ouverts (il y en a deux).
j'ai pensé à :If MSComm1.PortOpen True Then MSComm1.PortOpen FalseIf MSComm2.PortOpen True Then MSComm2.PortOpen False

avec ça le message d'erreur pointe une des deux lignes comme qui le port com est déjà ouvert la je deviens vraiment fou, avec l'ancien code le perepherique est fermé et avec celui la le port est ouvert.

je ne comprend plus rien.....:!!!!!!
0
Rejoignez-nous