Visual C# +Arduino передача даных датчика температуры

ramon_sobaka
Offline
Зарегистрирован: 24.10.2012

Как зделать передачу з ардуино значение температуры на пк через 232 я знаю... и програма в visual C# принимает присланое... но только однин раз... как зделать в реальном времени! Когда Ардуина простоянно шльот на 232 значение датчика температуры то в провгаме или отображается самое первое или ничего не отображается. Может ктото делал чтото подобное на visual c#

Geronimo
Offline
Зарегистрирован: 06.05.2013

ramon_sobaka пишет:

Как зделать передачу з ардуино значение температуры на пк через 232 я знаю... и програма в visual C# принимает присланое... но только однин раз... как зделать в реальном времени! Когда Ардуина простоянно шльот на 232 значение датчика температуры то в провгаме или отображается самое первое или ничего не отображается. Может ктото делал чтото подобное на visual c#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace com_data
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        SerialPort mySerialPort = new SerialPort("COM4");
        string s;
       
        private void button1_Click(object sender, EventArgs e)
        {        
          
        mySerialPort.BaudRate = 9600;
        mySerialPort.Parity = Parity.None;
        mySerialPort.StopBits = StopBits.One;
        mySerialPort.DataBits = 8;
        mySerialPort.Handshake = Handshake.None;

        mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
        mySerialPort.Open();
        }

        private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
        {
            SerialPort sp = (SerialPort)sender;
            s = sp.ReadExisting();
           this.Invoke((MethodInvoker)delegate {
   	 textBox1.Text = s; // код который выполнится в UI потоке
	});
        }

        private void button3_Click(object sender, EventArgs e)
        {
            mySerialPort.Close();
        }
}

 

igormwd
Offline
Зарегистрирован: 22.03.2013

по таймеру(компонент) код приема надо размещать или в бесконечном цикле, например while