space_walker
Messages postés84Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention22 juillet 2008
-
31 mai 2007 à 17:58
space_walker
Messages postés84Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention22 juillet 2008
-
2 juin 2007 à 13:01
Bonjour,
je debute en VB.NET ..
mon appli commence à tourner pas mal !.. suis super content ! :=)
dans mon appli, j'utilise un SerialPort pour communiquer avec mes cartes electroniques.
pour configurer la vitesse du port, je fais un " serialport1.baudrate = 115200 "
nickel, ca fonctionne à 115200 bps ...
Mais la, je souhaites utiliser un baudrate non standard .. n'importe quelle valeur telle que 125000 par exemple .. ou 78932 ..
je sais que c'est possible, car j'ai un petit utilitaire qui le fait ..
mais VB à priori, ne le permet pas tel quel, avec les methodes basiques disponibles :(
Aurriez vous, svp, une solution ?
merci... et felicitations a tous pour ce site .. une mine d'or pour un debutant comme moi
Space_Walker
space_walker
Messages postés84Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention22 juillet 2008 1 juin 2007 à 12:58
alors la .... pour repondre à ta question ( savoir quelle exception ca levé ), je viens de relancer mon projet ..
et la, ca semble fonctionner !!! ( je dois verifier si reelement mes données sont bien transferées avec le bon baudrate, mais ca ne me genere pas d'erreur dans mon appli !!!
t'immagine bien que hier soir, en postant mon message, ca ne fonctionnait pas !!..
juste un rallumage du PC à l'instant pour consulter le forum et relancer mon projet ..
je verifie ce soir la vitesse reelle de mes données !...
pour toi, ca ne doit pas poser de probleme un baudrate non standard ?
merci
space_walker
Messages postés84Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention22 juillet 2008 1 juin 2007 à 13:06
ah .. le probleme .. ! :
voici mon bout de code :
Private
Sub Button_Connexion_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button_Connexion.Click
' on vérifie qu'il n'y ait pas d'erreur (exemple : un port COM ne peut pas être ouvert 2 fois, si une application l'utilise déjà, celà lèvera une exception)
If Button_Connexion.Text =
"Connexion"
Then
Try
'SerialPort1.BaudRate TextBox_BaudRate.Text ' définit la vitesse en bauds du port sérieSerialPort1.BaudRate 115200
SerialPort1.DataBits = 8
' définit la longueur standard des bits de données par octetSerialPort1.Parity = Parity.None
' définit le protocole de contrôle de paritéSerialPort1.StopBits = StopBits.One
SerialPort1.PortName = ComboBox_ComPort.Text
' on ouvre le port choisis dans le comboboxSerialPort1.Open()
Button_Connexion.Text "Déconnexion"ComboBox_ComPort.Enabled
False' on désactive le comboboxTextBox_BaudRate.Enabled FalseButton_Send.Enabled
True
' on active le bouton SENDProgressBar1.Value = 0
' On initialise la ProgressBar.
Catch ex
As Exception
' on récupère l'erreur et on l'afficheMsgBox(
"Port inutilisable")
End
Try
ElseButton_Connexion.Text =
"Connexion"SerialPort1.Close()
' on ferme le portComboBox_ComPort.Enabled =
True' on réactive le comboboxTextBox_BaudRate.Enabled TrueButton_Send.Enabled
False
' on desactive le bouton SEND
End
If
End
SubEnd
Class
**********************************************************************************
si je passe la vitesse par :'SerialPort1.BaudRate = TextBox_BaudRate.Text '
alors la, ca plante si la vitesse n'est pas standard.
si je passe la vitesse par :'SerialPort1.BaudRate = 125000 '
la ca marche ( a verifier la vitesse reelle avec le scope ce soir )
space_walker
Messages postés84Date d'inscriptionmardi 3 février 2004StatutMembreDernière intervention22 juillet 2008 1 juin 2007 à 17:38
je viens de rallumer le PC ..
et la ... marche pas :(
je crois que ca a bien voulu s'initialiser la 1iere fois à 125000bps ( mais j'ai pas validé la vitesse au scope ) ..
et puis maintenant, ben ca refuse toute valeur non standard !!
j'ai verifié, iBr prend bien la valeur de mon baudrate rentré dans mon textbox.
je passe donc bien une valeur entiere.
mais surtout que maintenant, meme si je fais SerialPort1.BaudRate = 125000
ben ca marche plus .. ca me genere le message "Port inutilisable" et dans VB, j'ai un
"Une exception de première chance de type 'System.IO.IOException' s'est produite dans System.dll
"
1/ d'apres toi, le composant SerialPort accepte toute valeur de baudrate ?.. j'arrive pas à trouver la contre verité sur MSDN ..
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 1 juin 2007 à 18:45
Non l'objet SerialPort ne supporte pas des valeurs non-standard.
Le programme que tu utilises doit passer par son propre driver de port com pour ouvrir une connexion avec un baudrate non-standard, voila pour la petite histoire.
http://www.compt.ru/en/index.php "You can change communications chanel's settings easily including setting of non-standard baudrate."
car ce que je veux, c'est pouvoir utiliser tous les deviseurs entier .. tout simplement !
je comprend pas bien ce qui empecherait de faire ca !...
pour obtenir 115200bps, VB utilise un diviseur ..
pourquoi je ne pourrais pas specifier ce diviseur plustot que de specifier un baudrate !!..??