2017-08-31 1 views
0

Je suis coincé avec une application qui devrait recevoir des données de flux de port série (poids industriels) de cette chaîne, je dois couper la valeur de pesée seulement et l'envoyer à une base de données.Catch flux de port série à la base de données

Le seul problème que j'ai rencontré était attraper la ligne et couper la valeur de poids.

Voici ce que je fais pour attraper le flux de série dans le champ TextBoxes:

public void write_to_field(object sender, EventArgs e) 
{ 
    if (textBox1.Text.Length <= Convert.ToInt16(strLenghBox.Text)) 
    { 
      string DispString; 
      DispString = serialPort1.ReadLine(); 
      textBox1.AppendText(DispString); 
     } 
     else 
     { 
      textBox1.Text = ""; 
     } 
} 

Dans le champ TexBox J'ai flux de données continue et j'effacer la zone de texte lorsque le nombre de caractères en elle atteint tous les (strLenghBox.Text) nombre de caractères. Mais ça ne marche pas correctement puisque j'ai un décalage (je pourrais commencer à obtenir la chaîne pas depuis son début et je vais l'avoir et l'offset) et je ne peux pas attraper la valeur de pesée pour la passer à la base de données tout le temps et j'ai un décalage.

Je pense que je pourrais aller mal dans cette situation.

+0

je lance effectivement cette méthode de cette façon: private void serialPort1_DataReceived (expéditeur d'objet, System.IO.Ports.SerialDataReceivedEventArgs e) { this.Invoke (new EventHandler (write_to_field)); } –

+0

Vous pouvez consulter ces liens - http://blogs.msdn.microsoft.com/bethmassi/2007/05/05/reading-from-a-serial-port-and-saving-to-a-database et http://www.dreamincode.net/forums/topic/35775-serial-port-communication-in-c%23/ –

+0

Salut à tous. Un certain nombre de gens dans notre communauté disent parfois que chaque fois qu'ils voient des suppositions sexospécifiques au sujet des ingénieurs en logiciel, ils s'inquiètent que les gens se sentent exclus. Je me demande, pourriez-vous essayer d'éviter d'ajouter des salutations et des pronoms axés sur les hommes dans vos messages, afin de créer un environnement plus accueillant? Je vous remercie. – halfer

Répondre

3

Vous essayez d'extraire des données d'une source pouvant envoyer des données fragmentées. Afin d'assurer l'intégrité des données, vous aurez probablement besoin:

  • Une file d'attente pour empiler des données quel que soit le format du flux
  • Une méthode pour depile données jusqu'à ce qu'une valeur complète est récupérée ou la file d'attente est vide
  • une méthode pour détecter une valeur totale ont été récupérés (vous avez été mal comment les données sont séparées dans votre flux, par exemple un séparateur comme un saut de ligne)

de cette façon vous des données séparées de lecture de la détection de valeur et afficher.