IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Acces et lecture Port serie avec Windows Seven


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Décembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 9
    Par défaut Acces et lecture Port serie avec Windows Seven
    Bonjour A Tous,

    Je suis en ancien developpeur VB6. Apres quelques années d'absence dans le monde VB, je me suis à nouveau mis dans le programmation pdt les WE.

    Aujourd'hui je me suis mis à jour avec Wın Seven et VB.Net 2008 version Express.

    Afin de commencer tout doucement, j'ai essayer de faire un petit programme pour communiquer avec les ports serie de mon PC.

    WIn seven etant nouveau pour moi, et VB.net ayant pas mal évolué depuis VB6 je souhaite connaitre dans les grandes lignes les éléments auxquels je doit faire attention.
    Car aujourd'hui mon simple petit programme de check des ports serie ne fonctionne pas. Il me dit qu'aucuns ports serie n'est dispo? Est ce que cela provient de seven ou du mon programme?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Public Class FrmMain
    Dim WithEvents x As System.IO.Ports.SerialPort
     
    Private Sub CmdConnection_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdConnection.Click
     
    x = New System.IO.Ports.SerialPort
    Dim NbrPorts = My.Computer.Ports.SerialPortNames.Count
     
    'tu compte le nombre de port et affiche leurs nom dans un combobox 
    Try
    For i As Integer = 0 To NbrPorts
     
    ComboBox1.Items.Add(My.Computer.Ports.SerialPortNames(i))
    Next
     
    catch ex as exception
    'message à afficher si ton pc ne dispose d'aucun port serie
    MsgBox("there is no port on your computer",MsgBoxStyle.Exclamation)
    End Try
     
    End Sub
    End Class
    Merci d'avance pour vos conseils

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    bienvenue sur le forum et bienvenue sur la plateforme .net


    si aucun port n'est dispo ca correspond à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If My.Computer.Ports.SerialPortNames.Count = 0
    ton try catch ne teste pas s'il n'y a aucun port il teste les erreur dans ton code


    et il y a bien une erreur dans ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim NbrPorts = My.Computer.Ports.SerialPortNames.Count
    For i As Integer = 0 To NbrPorts
    si count vaut 3 ca veut dire 0,1 et 2
    et ta boucle fait de 0 à 3 donc 3 plante
    t'ailleurs en cas d'exception, il faut regarder le message d'erreur qui doit te dire que tu essayes d'accéder à un index inexistant sur le tableau


    solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i As Integer = 0 To NbrPorts -1
    ou pour ne pas encombrer le code avec des lignes inutiles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For i As Integer = 0 To My.Computer.Ports.SerialPortNames.Count -1
    ou encore pour mieux partir dans la philosophie .net
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For each portName as string  in My.Computer.Ports.SerialPortNames
    (comme tu peux le voir ci dessus ce forum a une balise code pour la mise en forme, bouton # dans l'écriture des messages)


    pour les débutants y a une mine d'or
    http://plasserre.developpez.com/cours/vb-net/
    c'est un peu long à lire mais ca gagne du temps finalement, on perd moins de temps à taper des "conneries"
    car en effet vb6 et vb.net sont très différents au niveau des méthodologies de codage (POO oblige ...)
    et puis si y a des points que tu saisies pas trop n'hésites pas à poser des questions ou à consulter les faq et tutos référencés sur ce site (voir en haut de page pour les liens)


    d'ailleurs en utilisation avancée on pourrait même réduire ta sub à une seule ligne avec un truc dans le genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    moncombobox.items.addrange((from s as string in My.Computer.Ports.SerialPortNames select s).toarray)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre habitué
    Inscrit en
    Décembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 9
    Par défaut
    OK je viens de corriger les erreurs de code. Merci effectivement des erreurs de base à la programmation ()

    Ceci étant mon programme me dit toujours que je n'ai pas de port?
    J'ai bien vérifié avec le deboggage et effectivement il me comte 0 port.

    Trés bizzard

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    je viens de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox(My.Computer.Ports.SerialPortNames.Count)
    sur windows 7 compilé avec vs2008
    et ca m'affiche 1 donc c'est que y a pas de soucis je pense
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Je viens aussi de tester sous seven et j'ai bien mes 2 ports en reponse.
    Penses a verifier que les ports sont bien actives dans le bios.

  6. #6
    Membre habitué
    Inscrit en
    Décembre 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 9
    Par défaut
    OK merci à Tous.
    Le code fonctionne bien avec un autre PC.
    Je viens de me rendre compte que je ne peux pas activer mon Port serie.
    Le PC est nouveau est donc n'utilise pas ce port.
    J'ai essayer de l'activer, mais il me demande cette fois-ci de lui allouer des plages memoire manuellement. Je ne souhaite pas faire cette manipulation.

    Nous sommes en train de développer en // une carte electronique qui simule un port COM avec un port USB.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Lecture d'un port serie avec SerialPort
    Par Hybride76 dans le forum VB.NET
    Réponses: 10
    Dernier message: 18/07/2012, 14h23
  2. Réponses: 3
    Dernier message: 08/04/2009, 14h48
  3. lecture port serie tcomport
    Par STEPH42160 dans le forum C++Builder
    Réponses: 30
    Dernier message: 22/02/2007, 00h19
  4. Communication port serie avec un microcontrolleur
    Par crazydede8 dans le forum C
    Réponses: 4
    Dernier message: 29/07/2006, 14h49
  5. Réponses: 4
    Dernier message: 23/07/2003, 13h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo