begin process at 2012 02 15 04:03:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Divers

 > 

General

 > 

Lecture du port série


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lecture du port série

mercredi 27 mai 2009 à 15:33:41 | Lecture du port série

taf06

bonjour,
je travail sur une application qui m'affiche la température ambiante par exemple, grace à un composant sur carte éléctronique relièe au PC par le port série.
Je lis sur le port série comme suit

TextBox5.Text &=

SerialPort1.ReadByte

Mais au fur et mesure que je test , je me rend compte que je n'arrive pas à afficher les chiffres à virgules, apparemment ReadByte retourne un entier et j'essaie de transformer cela en réel.
Auriez vous une idée svp!
mercredi 27 mai 2009 à 16:02:28 | Re : Lecture du port série

lesdis

Bonjour,

ReadByte lit octet par octet, vu que le codage de nombres réels est particulier et se fait sur plusieurs octet, tu ne pourras pas récupérer de nombre a virgule avec cette fonction.
Pour info : codage de réel en binaire

Tes réels sont il codés sur 4,8 ou 16 octets? (correspondant respectivement à single, double, decimal)

Si tu pouvais donner le format de la trame que tu reçoit sur ton port série, je pourrait peut être t'aider un peu plus.

Bonne Prog
mercredi 27 mai 2009 à 16:21:03 | Re : Lecture du port série

taf06

ok, je récupère des doubles
jeudi 28 mai 2009 à 11:29:17 | Re : Lecture du port série

taf06

bonjour,
je me suis penchée sur ce que tu disais à propos des codages lesdis, mais je ne trouv tjrs pas de solution! certaines transformations sont elles possibles pour obtenir un réel?
merci d'avance.
jeudi 28 mai 2009 à 13:53:40 | Re : Lecture du port série

lesdis

Bonjour,

Voici une fonction permettant de convertir un tableau d'octet en Single suivant la norme IEEE-754 :

Private Function ByteToSingle(ByVal tab() As Byte) As Single
        Dim Reel As Single = 0

        Dim signe As SByte = IIf((tab(0) >> 7) = 1, -1, 1)
        Dim exposant As Integer = (((tab(0) << 1) >> 1) * 2) + (tab(1) >> 7)
        Dim mantisse As Single = ((((tab(1) << 1) >> 1)) * 65536) + (tab(2) * 256) + tab(3)

        If mantisse = 0 And exposant = 0 Then
            Reel = 0
            Return Reel
        Else

            If mantisse = 0 Then
                If signe = 1 Then
                    Reel = Single.PositiveInfinity
                Else
                    Reel = Single.NegativeInfinity
                End If

                Return Reel
            Else

                mantisse = IIf(exposant = 0, mantisse / (2 ^ 23), (mantisse / (2 ^ 23)) + 1)

                exposant -= 127

                If exposant = 128 Then
                    Reel = Single.NaN
                    Return Reel
                Else
                    Reel = signe * (mantisse * (2 ^ exposant))
                    Return Reel
                End If


            End If
        End If
    End Function

Disponible à l'adresse suivante sur Codyx : http://www.codyx.org/snippet_byte-to-single_786.aspx

Inspiré de l'explication présente à cette page : [ Lien ]
J'espère ne pas avoir fait d'erreur.

Bonne Prog
jeudi 28 mai 2009 à 13:57:01 | Re : Lecture du port série

lesdis

Pour ce qui est des doubles, il y a quelques petites modifications a faire.

Mantisse codé sur 52 octets pour un double contre 23 pour un single
Exposant codé sur 11 octets pour un double contre 8 pour un single
Le Biais vaut 1023 pour un double contre 127 pour un single

Bonne Prog
jeudi 28 mai 2009 à 14:41:00 | Re : Lecture du port série

taf06

ok, je m'en vais tester ton code.
merci.

vendredi 29 mai 2009 à 14:56:38 | Re : Lecture du port série

taf06

slt,
j'avais un souci, mais je vois d'ou ça peut venir: comment puis-je faire pour maintenant lire les bits arrivant sur le port série un à un et les stocker dans un tableau?
jeudi 4 juin 2009 à 12:03:03 | Re : Lecture du port série

lesdis

Bonjour,

Désolé de ma réponse tardive, mais je n'avais pas vu ton dernier message.

Pour lire le buffer de ton port série, tu as plusieurs méthode existante dans l'objet serialport.

- Si tu veux lire bit par bit ton buffer, tu peux utiliser la méthode ReadByte
- Pour lire plusieurs bit et les insérer dans un tableau, tu peux utiliser la méthode Read en lui passant un tableau de byte en argument. (ne pas oublier de l'initialiser avant!)

Pour connaitre le nombre de bit présent dans le buffer, la méthode ReadToByte pourra t'aider.

Bonne Prog


Cette discussion est classée dans : lecture, port, série


Répondre à ce message

Sujets en rapport avec ce message

lecture de données à partir d'un port série et les stocker dans une base de données [ par maryouma ] bonjourje veux configurer le port série pour faire une lecture des mesures changeantes, les afficher et les stocker ces mesures dans une base de donn arréter lecture port série [ par jimluis ] Bonjour, J'ai une application en VB6 qui va récupérer les données d'un lecteur code barre pour la placer dans un textbox. Or je voudrais que quand ma Access et lecture port série [ par DarkIndra ] Bonjour à vous lecteur de mon problème,   alors voila, je suis étudiant en bts electronique, j'ai déja fait un dut informatique, et la je suis en stag lecture port série RS232 [ par jerome57440 ] bonjour,je suis étudiant actuelement en stage et je dois développez une application permettant de lire et d'écrire sur une memoire grace au port série Lecture port série avec adaptateur RS232/USB [ par nassim2b ] [^^happy17][size=100][/size]Bonjour à tous, [^^happy17] Je travaille sur un programme lecture/écriture d'un port série RS232. Le programme fonctionne contrôle du port série [ par farokoo ] SALUT , je suis un débutant en programmation vb et je suis entrain de réaliser une supervision c'est la dernière tâche dans mon projet de fin d'étude Problème d'envoi de trame sur port série. [ par slashidou ] Bonjour, Voici mon problème, j'ai codé un petit programme qui se charge de commander un robot aspirateur de type Roomba. Le but du jeu c'est d'envoye [Catégorie modifiée VB6 -> C.Net] Lecture Port COM et affichage des informations (VB,C#) [ par Orkon ] Bonjour à tous, Débutant dans la programmation orientée objets, il m'a été demandé de réaliser un logiciel récupérant les informations venant d'un po [BAR]Parametrer port série pour Ingenico EFT930B [ par alscot54 ] Bonjour Je suis à la recherche des paramètres à entrer dans le port série PC pour relier le TPE à mon logiciel Ciel Point de Vente. J'ai bien paramet ecrire d'une valeur héxadécimale sur port série [ par taf06 ] bonjour, j'avais posé une question à propos de la déclaration d'une variable en héxadécimale sous vb.net, et les réponses que j'ai eu mon fait compren


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,572 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales