SerialPort_DataReceived event i ile dll den gelen veriyi alma

Başlatan fryrmnd, 24 Aralık 2012, 00:25:52

fryrmnd

Selamün aleyküm arkadaşlar.
Seriportu kullanarak bir dll oluşturup bunu başka bir uygulamada kullanmak istiyorum. Konuya pek hakim olmadığım için işin içinden çıkamadım.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.IO;
using System.IO.Ports;

namespace dll_deneme
{
    public class Class1
    {
        static SerialPort seriPort1=new SerialPort("COM1");
        string rs232_data;

        public Class1()
        {       
            seriPort1.BaudRate = 115200;
            seriPort1.DataBits = 8;
            seriPort1.Parity = Parity.None;
            seriPort1.Handshake = Handshake.None;
            seriPort1.StopBits = StopBits.One;
            seriPort1.ReadBufferSize = 4096;
            seriPort1.WriteBufferSize = 2048;
            seriPort1.WriteTimeout = -1;
            seriPort1.ReadTimeout = -1;

            seriPort1.DataReceived += new SerialDataReceivedEventHandler(sp_data);
        }

        public void sp_data(object sender, SerialDataReceivedEventArgs e)
        {
            rs232_data = seriPort1.ReadLine();  //bu kısımlarda saçmaladım
            object[] seridizim = new object[1];   //sanırım. ReadLine dönüşü
            seridizim[0]= rs232_data; //string.  Object türüne atama yapmışım.
           
            this.BeginInvoke(new Func<string,Int32>(getserialdata),seridizim);
        }       

        public void BeginInvoke(Func<string, Int32> serialportdata,object[] p)
        {

        }

        public Int32 getserialdata(string data)
        {
            Int32 serialdata=0;
            serialdata=Convert.ToInt32(rs232_data);
            return serialdata;
        }

        public void seriportopen()
        {
            if (seriPort1.IsOpen == false)
                seriPort1.Open();
        }

        public void seriportclose()
        {
            seriPort1.Close();
        }
    }
}


Google dan delegate ler ile yapılabilceğinden bahsetmiş ama pek yatmadı. Acaba nasıl oalabilceği hakkında fikri olan var mı?
Teşekkürler.

ziyaretci

Bende yeni başladım C# a ama diyebileceğim tek şey, programında buton göremedim hiç, değişkenlerle işlem  yapmak  için buton şart

fryrmnd

Hocam form application değil. Class library (dll) yazmak istedim. Yazdığımı başka bir uygulamada kullanmak istedim.

ziyaretci

Özür dilerim , yataktan yeni kalkmanın gazabına uğradım, başlığı yeni okudum :)