folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Elektronik Kantardan Veri Çekmek



Elektronik Kantardan Veri Çekmek

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    raxtedy
    raxtedy's avatar
    Kayıt Tarihi: 18/Ocak/2010
    Erkek

    merhaba hepinize iyi günler.

    elimde Baykon un Bx2 model kantarı var.

    kantardan gelen ağırlık bilgisini seriport la çekmeye çalıştım fakat beceremedim.

    şöyle bir kodum var.

    private void buttonStart_Click(object sender, EventArgs e)
            {
                serialPort1.PortName = "COM1";
                serialPort1.BaudRate = 9600;
                serialPort1.Parity = Parity.Odd;
                serialPort1.DataBits = 7;
                serialPort1.StopBits = StopBits.One;

                serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);
                serialPort1.Open();
                if (serialPort1.IsOpen)
                {
                    buttonStart.Enabled = false;
                    buttonStop.Enabled = true;
                    textBox1.ReadOnly = false;
                }
            }

            void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
            {
               
            }

    burada start ettiğimde evente girmiyor.

    bilgisi olan arkadaşlar yardım ederlerse sevinirim.

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SharpShooter
    SharpShooter's avatar
    Banlanmış Üye
    Kayıt Tarihi: 10/Temmuz/2008
    Erkek

    zaten kodda belirttiğin eventı tetiklemesi için hiç bir şey söylememişsin.Sadece tanımlamışsın.Eğer SeriPort nesnesinde bazı olaylar gerçekleşirse(neler bilmiyorum seriport nesnesini hiç kullanmadım) otomatikman tetikleyecektir belirttiğin eventı


    - xx yerde hata var. - ya aslında kod şöyle sanıyor olabilir bla bla bla - olm kendine gel kodlar düşünmez - ...
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    raxtedy
    raxtedy's avatar
    Kayıt Tarihi: 18/Ocak/2010
    Erkek

    kodun tamamını yolluyorum;

     

    string RxString;

            public Form1()
            {
                InitializeComponent();
                //CheckForIllegalCrossThreadCalls = false;
            }

            //SerialPort s=new SerialPort();

            //Thread __Kanal;

            private void buttonStart_Click(object sender, EventArgs e)
            {

                //__Kanal = new Thread(new ThreadStart(Parcacik));
                //__Kanal.Start();

                serialPort1.PortName = "COM1";
                serialPort1.BaudRate = 9600;
                serialPort1.DataBits = 7;
                serialPort1.Parity = Parity.Odd;
                serialPort1.Handshake = Handshake.None;
                serialPort1.StopBits = StopBits.One;

                serialPort1.Close();
                serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);
                serialPort1.Open();
                if (serialPort1.IsOpen)
                {

                    buttonStart.Enabled = false;
                    buttonStop.Enabled = true;
                    textBox1.ReadOnly = false;
                }
                else
                {

                }
            }

            void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
            {
                RxString = serialPort1.ReadExisting();
                this.Invoke(new EventHandler(DisplayText));
            }

           

            private void buttonStop_Click(object sender, EventArgs e)
            {
                if (serialPort1.IsOpen)
                {
                    serialPort1.Close();
                    buttonStart.Enabled = true;
                    buttonStop.Enabled = false;
                    textBox1.ReadOnly = true;
                }
            }

            private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                if (serialPort1.IsOpen) serialPort1.Close();
            }

           

            private void DisplayText(object sender, EventArgs e)
            {
                textBox1.AppendText(RxString);
            }

            private void Form1_Load(object sender, EventArgs e)
            {

            }

            public void Parcacik()
            {
               
            }

            private void textBox1_KeyPress_1(object sender, KeyPressEventArgs e)
            {
                //__Kanal = new Thread(new ThreadStart(Parcacik));
                // If the port is closed, don't try to send a character.

                if (!serialPort1.IsOpen) return;

                // If the port is Open, declare a char[] array with one element.
                char[] buff = new char[1];

                // Load element 0 with the key character.

                buff[0] = '1'; //e.KeyChar;

                // Send the one character buffer.
                serialPort1.Write(buff,0,1);

               
                // Set the KeyPress event as handled so the character won't
                // display locally. If you want it to display, omit the next line.
                e.Handled = true;
            }

    textchanged olayını öylesine koydum .

    serialPort1.Write(buff,0,1); sorunsuz çalışıyor(sorun suz derken hata almıyorum.) . fakat  serialPort1_DataReceived  eventine giremiyorum. bildiğim kadarı ile serialport1.write() işlemi gerçekleşinde , bizim eventa girmesi lazım.
    bilgisi olan arkadaşlar yardım ederlerse sevinirim.

     

Toplam Hit: 1901 Toplam Mesaj: 3