bu iki metot ne yapar ?

Başlatan baran123, 22 Temmuz 2014, 22:37:46

baran123

Merhaba pıcle olctugum sıcaklıgı pc ye gndermeye calısıyorum calısıyor fakat c# arayüzünde bir problem var.Devreyi proteusda calıstırıyoum c#arayüzünde baglantı kurulamaladı yazıyor ama sıcaklıgı gosterıyor 2cisi devreyı durdurudugumda yanı sımulasyonu terar baslattıgımda c# arayüzünde değişim olmuyor c#arayüzünü kapatıp tekrar acmam gerekıyor bunun nasıl cozzerım ? ve su ıkı metot ne işee yarıyor

protected override void OnHandleCreated(EventArgs e)
        {
            base.OnHandleCreated(e);
            usbHidPort1.RegisterHandle(Handle);
        }
        protected override void WndProc(ref Message m)
        {
            usbHidPort1.ParseMessages(ref m);
            base.WndProc(ref m);
        }



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 UsbLibrary;

namespace USB_Termometre
{
    public partial class Main : Form
    {
        byte[] RecievedData = new byte[65];
        byte Tam = 0;
        byte Onda = 0;
        bool durum = false;
        public Main()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            this.usbHidPort1.ProductId = Int32.Parse("1111", System.Globalization.NumberStyles.HexNumber);
            this.usbHidPort1.VendorId = Int32.Parse("1111", System.Globalization.NumberStyles.HexNumber);
            usbHidPort1.CheckDevicePresent();
            if (durum)
            {
               toolStripStatusLabel1.ForeColor = Color.Green;
               toolStripStatusLabel1.Text = "USB Bağlantısı Kuruldu";
            }
            else
            {
              toolStripStatusLabel1.ForeColor = Color.Red;
              toolStripStatusLabel1.Text = "USB Bağlantısı Bekleniyor";
            }
        }
       /* private override void WndProc(ref Message m)
        {
            if (m.Msg == 0x219)
            {
                toolStripStatusLabel1.Text = "USB Bağlantısı Kuruldu";
            }
            base.WndProc(ref m);
        }*/

        protected override void OnHandleCreated(EventArgs e)
        {
            base.OnHandleCreated(e);
            usbHidPort1.RegisterHandle(Handle);
        }
        protected override void WndProc(ref Message m)
        {
            usbHidPort1.ParseMessages(ref m);
            base.WndProc(ref m);
        }
        private void usbHidPort1_OnDataRecieved(object sender, DataRecievedEventArgs args)
        {
            if (InvokeRequired)
            {
                try
                {
                    Invoke(new DataRecievedEventHandler(usbHidPort1_OnDataRecieved), new object[] { sender, args });
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }
            else
            {
                RecievedData = args.data;
                Tam = RecievedData[2];
                Onda = RecievedData[3];
                label2.Text = "Sıcaklık : " + Tam.ToString() + "," + Onda.ToString() + "°C";
            }
        }
        private void usbHidPort1_OnDataSend(object sender, EventArgs e)
        {
            
        }
        private void usbHidPort1_OnDeviceArrived(object sender, EventArgs e)
        {
            toolStripStatusLabel1.ForeColor = Color.Green;
            toolStripStatusLabel1.Text = "USB Bağlantısı Kuruldu";
        }
        private void usbHidPort1_OnDeviceRemoved(object sender, EventArgs e)
        {
            toolStripStatusLabel1.ForeColor = Color.Red;
            toolStripStatusLabel1.Text = "Bağlantı Kesildi";
            label2.Text = "Sıcaklık : --,-°C";
        }
        private void usbHidPort1_OnSpecifiedDeviceArrived(object sender, EventArgs e)
        {
            toolStripStatusLabel1.ForeColor = Color.Green;
            toolStripStatusLabel1.Text = "USB Bağlantısı Kuruldu";
            durum = true;
            if (durum)
            {
                toolStripStatusLabel1.ForeColor = Color.Green;
                toolStripStatusLabel1.Text = "USB Bağlantısı Kuruldu";
            }
            else
            {
                toolStripStatusLabel1.ForeColor = Color.Red;
                toolStripStatusLabel1.Text = "USB Bağlantısı Bekleniyor";
            }
        }  
        private void usbHidPort1_OnSpecifiedDeviceRemoved(object sender, EventArgs e)
        {
            toolStripStatusLabel1.ForeColor = Color.Red;
            toolStripStatusLabel1.Text = "USB Bağlantısı kesildi";
            label2.Text = "Sıcaklık : --,-°C";
            durum = false;
            if (durum)
            {
                toolStripStatusLabel1.ForeColor = Color.Green;
                toolStripStatusLabel1.Text = "USB Bağlantısı Kuruldu";
            }
            else
            {
                toolStripStatusLabel1.ForeColor = Color.Red;
                toolStripStatusLabel1.Text = "USB Bağlantısı Bekleniyor";
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Çıkış yapmak istediğinizden emin misiniz ?", "Uyarı", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            if (result == DialogResult.Yes)
            {
                Environment.Exit(1);
            }
        }
    }
}

ArifAhmet

Üst tarafta asıl metodu ezip kendine göre değiştirmişsin.
Yaşasın Open Source!

baran123

nasıl yani tam olarak anlayamadım biraz daha açarsanız sevinirim

ArifAhmet

Diğer dillerde varmı bilmiyorum ama C#'ta virtual ve override denen iki terim var. Örneğin Microsoft kütüphanelerinden ToString metodunu kendine göre yeniden yapılandırabilirsin. Mesela atıyorum ToString yapınca değişkenelri string değilde char tipine dönüştür gibi. Metodun başına override getirince o metodu değştirmiş yani ezmiş olursun.  http://mehmetx.com/ burada çok güzel dersler var.
Yaşasın Open Source!