Data logger hakkında yardım

Başlatan cebeci52, 29 Ağustos 2014, 00:37:13

cebeci52




Resimde görüldüğü gibi bir tasarımım var time/div ile timer aracılıgıyla zamanını ayarladıgım bir değişen gerilim degeri ölçüyorum .Problemim bu resimde görülen label a yazdırdıgım 500 ms de bir değişen gerilim(v) degerini excel'e buton on konumundayken sürekli gelen degeri yazdıracak buton of konumunda data logger duracak . Excel e yada text dosyasına nasıl kayıt ederim yardımcı olabilir misiniz?


Şu şekilde kodlar yazdım ama sadece bir kere çalışıyor istediğim buton on konumundayken sürekli label daki gerilim degerini yazsın buton off iken dursun.


private void button2_Click(object sender, EventArgs e)
        {
                       
            Microsoft.Office.Interop.Excel.ApplicationClass excelDosyam;
            Microsoft.Office.Interop.Excel.Workbook excelKitabim;
            string yol = Directory.GetCurrentDirectory();
            yol = yol + "\\veriler.xlsx";
            //ofis baglantisi olusturulur...
            excelDosyam = new Microsoft.Office.Interop.Excel.ApplicationClass();
            excelDosyam.Visible = true;
            //bir sayfa olusturur...
            excelKitabim = excelDosyam.Workbooks.Open(yol, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
            //birden fazla sayfa olusturmak icin...
            object multiSayfa = System.Reflection.Missing.Value;
            //kac adet sayfa eklenmek isteniyorsa "object count" parametresinde belirtilir...
            Microsoft.Office.Interop.Excel.Worksheet Tablo;
            Tablo = (Worksheet)excelDosyam.ActiveSheet;
            excelDosyam.Worksheets.Add(multiSayfa, Tablo, 1, multiSayfa);
            Microsoft.Office.Interop.Excel.Worksheet excelSayfam;
            //tablo secilerek aktif tabloya veri eklenir...
            excelSayfam = (Worksheet)excelDosyam.Application.Sheets[1];
            //hangiSayfaAktif ise o secili hale getirilir...
            object hangiSayfaAktif = 1;
            excelSayfam.Select(hangiSayfaAktif);
                excelSayfam.Cells[2, 1] = label1.text;
               
                     
           
        }

private void timer1_Tick(object sender, EventArgs e)
        {
            string b = "";

            char[] buff = new char[1];

            // Load element 0 with the key character.
            buff[0] = 'v';

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

            RxString = serialPort1.ReadExisting();

            for (int i = 1; i < RxString.Length; i++)
            {
                b += Convert.ToChar(RxString);

            }
            textBox1.Text = b;
            string numara = "0";
            string[] a = textBox1.Text.Split(' ');
            for (int i = 0; i < a.Length; i++)
            {
                numara += a;
            }
            textBox2.Text = numara;
            textBox3.Text = textBox2.Text.Replace(".", ",");
            double sayi = Convert.ToDouble(textBox3.Text);
           
            textBox3.Text = sayi.ToString();


            label1.Text = b + " " + "V";




            label1.Visible = true;

           
            this.chart1.Series["Volt"].Points.AddXY(countdata, sayi);
             
           
        }

barisertekin

private void tmrWriteToExcel_Tick(object sender, EventArgs e)
{
      //Excel'e Yazan Kodlar Buraya Gelecek
}

private void btnOnOff(object sender, EventArgs e)
{
       if(tmrWriteToExcel.Enable == false)
       {
           tmrWriteToExcel.Enable = true;
           btnOnOff.Text = "Off";
       }
       else
       {
           tmrWriteToExcel.Enable = false;
           btnOnOff.Text = "On";
       }
}

cebeci52

üstat timer içine yazdıgımda excel kodlarını  her timer aktif oldugunda açıyor excel dosyasını hatta yüzlerce excel sayfası açıyor denemiştim.

barisertekin

Sadece mevcut excel dosyasına satır ekleme işlemi yapmalısınız. Siz sürekli sayfa ekliyorsunuz.

bu kodlar fazla gibi :)

//birden fazla sayfa olusturmak icin...
object multiSayfa = System.Reflection.Missing.Value;

//kac adet sayfa eklenmek isteniyorsa "object count" parametresinde belirtilir...
Microsoft.Office.Interop.Excel.Worksheet Tablo;
Tablo = (Worksheet)excelDosyam.ActiveSheet;
excelDosyam.Worksheets.Add(multiSayfa, Tablo, 1, multiSayfa);