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

C# Discussion :

Réception port série et traitement


Sujet :

C#

  1. #1
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 929
    Points : 312
    Points
    312
    Par défaut Réception port série et traitement
    Bonjour,

    je me remet au C# que j'ai abandonné depuis quelque temps. et je but sur un truc vraiment idiot car je savais le faire.

    Je communique en port série avec un Arduino. et lorsque je lui envoie une requête, il me renvoie plusieurs trames.
    Dans DataReceived en C# par contre j'ai une seule trame en général mais parfois en 2 ou 3 morceaux.

    J'ai fait quelques essaie pour récupérer ce que je veut en dans un tableaux puis je cherche à le convertir en string. Cela marche pas si mal mais je trouve sa moche. depuis quelque temps je travaille en VB et VB.net et j’avoue que cela me perturbe de ne pas pouvoir affecter un tableau dynamiquement en fonction de mes besoins avec Redim.Preserve .

    Voici ce que j’ai fait.

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
            {
                string[] ln;
                byte[] Car = new byte [80];
                int count;
                int y = 0;
                byte[] f =System.Text.Encoding.ASCII.GetBytes ("\r");
                count = serialPort1.BytesToRead;
                for (int i = 0 ; i<= count; i++)
                {
     
                    Car[y] = Convert.ToByte(serialPort1.ReadByte());
                    if (Car[y] == 10 )
                    {
                        line =System.Text.Encoding.ASCII.GetString (Car);
                        ln = line.Split('/');
                        switch (ln[0])
                        {
                            case "Get_Osci":
                                SetGet_Osci(ln);
                            break;
                        }
                        line = "";
                        Car = new byte[80];
                        y = 0;
                    }
                    else
                    y = y + 1;     
                }
            }
    Je trouve sa pas beau, qu'en pensez-vous?.

    pour le moment j'ai qu'un contrôle sur le Get_Osci il y en aurait plein d'autre.

    merci

  2. #2
    Membre régulier
    Profil pro
    profiler
    Inscrit en
    Février 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : profiler

    Informations forums :
    Inscription : Février 2008
    Messages : 84
    Points : 99
    Points
    99
    Par défaut
    Salut,

    De mémoire, il faut faire des flush de temps en temps (côté émetteur), autrement il y a une bufferisation qui se produit, ce qui pourrait expliquer pourquoi tu reçois de temps en temps.



    Pour info, connais tu NetDuino ? C'est pas mal, je possède les deux et j'ai une préférence pour le NetDuino.

  3. #3
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 929
    Points : 312
    Points
    312
    Par défaut
    Je ne connaissais pas, par contre celui que je vois sur le site n'a pas assez de possibilité car j'ai besoin de pas mal d'entrée sortie ainsi que des sorties PWM et I2c.

    L'arduino Mega pour le moment me semble pas mal mais il y a peut être plusieurs version de Netduino, je vais regarder en détail.

  4. #4
    Membre régulier
    Profil pro
    profiler
    Inscrit en
    Février 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : profiler

    Informations forums :
    Inscription : Février 2008
    Messages : 84
    Points : 99
    Points
    99
    Par défaut
    Il existe trois modèles :
    NetDuino
    NetDuinoPlus
    NetDuinoMini

    Je me suis trompé, je n'ai pas le NetDuino, mais le NetDuinoPlus.

  5. #5
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 929
    Points : 312
    Points
    312
    Par défaut
    Ha celui la est pas mal du tout car ethernet, et carte SD je vais en avoir besoin, c'est intéressant. Il manque encore des entrées sortie mais on peut peut être en rajouté, en tout cas je vais continuer sur mon arduino mais la carte m’intéresse pas mal.
    Merci de l'info

  6. #6
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    Dans la série des cartes, tu as aussi la FEZ...

    Tiny CLR

    Plusieurs cartes COMPATIBLES arduino, à programmer avec C# et le .Net Micro framework...

    Equivalent en prix à l'arduino, la FEZ (panda à cobra, en passant par Domino, rhino et mini) "enterre" l'arduino au niveau de la "puissance de calcul"...

    A essayer sans "hésitation", ni modération...

  7. #7
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 929
    Points : 312
    Points
    312
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    Dans la série des cartes, tu as aussi la FEZ...

    Tiny CLR

    Plusieurs cartes COMPATIBLES arduino, à programmer avec C# et le .Net Micro framework...

    Equivalent en prix à l'arduino, la FEZ (panda à cobra, en passant par Domino, rhino et mini) "enterre" l'arduino au niveau de la "puissance de calcul"...

    A essayer sans "hésitation", ni modération...

    Je pense que vous aller pas tarder à me convaincre.

    Au niveau de mon projet, cela va me servir à contrôler un aquarium récifal. Je veut y accéder par le net, et sauvegarder les données (Ethernet et Carte SD donc utile).

    Je veux gérer:
    en entrée:
    6 capteurs de niveaux d'eau.
    Présence secteur.
    4 entrée de comptage des pompes doseuse.
    2 fins de course pour la hauteur de la rampe.

    Sortie:
    Pompe de remonté
    Pompe réacteur à Hydroxyde
    Pompe écumeur
    Pompe réacteur à calcium
    Pompe Filtre biopellet
    Pompe Oscmolateur
    Électrovanne Osmoseur
    5 Sortie éclairage.
    Monter descente de la rampe d’éclairage (Moteur de volet roulant électrique)

    PWM:
    4 Oscillateurs avec ServoMoteur
    2 Commande de driver gradable pour LED

    Entrée analogique:
    PH
    Redox
    Température.

    Voila, j'en ai peut être oublié.

  8. #8
    Membre averti Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 929
    Points : 312
    Points
    312
    Par défaut
    Si non pour mon souci de traitement de réception de COM?

Discussions similaires

  1. problème réception port série.
    Par hppp01 dans le forum Débuter
    Réponses: 1
    Dernier message: 09/03/2012, 17h45
  2. [Débutant] c# problème réception port série windows ce 6
    Par kliel dans le forum C#
    Réponses: 2
    Dernier message: 06/03/2012, 16h39
  3. Réception port série (API javax.comm)
    Par trifly dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 10/06/2009, 09h13
  4. [Débutant] Réception sur port série
    Par Tophe59 dans le forum Langage
    Réponses: 43
    Dernier message: 28/06/2004, 11h04
  5. Réception sur le port série sous DOS avec Borland V3.0
    Par jackyjacky dans le forum Autres éditeurs
    Réponses: 24
    Dernier message: 19/03/2004, 23h18

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