avatar_Celal Kızılırmak

C#

Başlatan Celal Kızılırmak, 29 Nisan 2018, 22:00:59

Celal Kızılırmak

Hocalarım ve arkadaşlar c# ile bluetooth üzerinden röle kontrol yaptım herşey tamam ancak olası bir durum yani bluetooth ve pic in enerjisi kesildiğinde bunu nasıl anlarım c# kodu veya pic basic kodu ile yardımcı olabilecek varmı.Araştırma yaptım ama kayda değer birşey bulamadım.

furkan41

eğer bluetooth bağlantısı kesilmiş ise devrede voltaj yok veya arıza var demektir. onun icinde 500 milisaniye de bir bluetooh ile c# programına data gönderirsin buda devrenin calışır olduğunu söyler yani ben böyle birşey düşündüm belki başka bir yöntemde olabilir.

Celal Kızılırmak

Furkan bey dediğiniz gibi yapmıştım sürekli picten bilgi gönderdim ve c# sürekli okudum ancak dediğiniz gibi yapmaya çalıştım ama olmuyor.

Burak

#3
Doğrusu şu şekilde olmalı .. 500 ms çok küçük bir süre , öncelikle onu 2000 ms yapalım .. ve serialport1.write komutu ile ona(PIC'e) bir karakter gönderelim .. bu karakteri alan mikroişlemci , bize "OK\n" göndersin ... Bizde bu komutu serialport1.readline ile dinleyelim . serialPort1.ReadTimeout = 1000 şeklinde de bir cevap gelmesi için timeout süresi koyalım ;. Eğer program try catch döngüsünde catch exception hatası veriyorsa bu durumda cihazımızda enerji kesilmiştir .. Bütün bu işleri , bir timer'a yaptırmaktada fayda var (2000 ms'de bir )..


Burak
Ω Gens Una Sumus Ω

Celal Kızılırmak

Burak hocam aklımda bir yeşil ışık yaktınız denemelere başlıyacağım sonuçları yazarım.

Burak

#5

Bir Timer komponenti oluşturun , onu 2000 ms'lik bir intervale ayarlayıp default olarak true olarak seçin ve çalışmaya başlasın ..


private void timer1_Tick(object sender, EventArgs e)
{
    try
    {
        serialPort1.ReadTimeout = 1000;
        serialPort1.DiscardInBuffer();
        serialPort1.Write("!");
        String Rcv = serialPort1.ReadLine();
        if(Rcv!="OK")
        {
            //Herhangi bir label değişkenine sorun olmadığını yazdırabilirsin
        }


    }
    catch
    {
        MessageBox.Show("Bağlantı Hatası");
    }
}
Ω Gens Una Sumus Ω

Celal Kızılırmak

Burak hocam verdiğiniz kodları harfiyen yaptım yanlız program verdiğimiz milisaniyede kasıyor tekrar devam ediyor sürekli böyle ve veriyi okuyamıyorm. Gerekli dökümanları akşam paylaşırım.

Burak

Debug ederek görmen gerek durumu bu kod teorik olarak çalışması gerek ... Ayrıca timeout süresi kadar windows formunu kilitlemesi doğal , ya seri port event'leri ile yapacaksın yada bu şekilde kullanmaya devam edeceksin .. Ayrıca, PIC tarafından gönderilen string HSEROUT["OK",10] biçiminde olması gerek .. Ben C dili üzerinden düşündüğüm için New Line karakterini '\n' şeklinde string'e eklemiştim , ama PicBasic syntax'ı adına doğrusu New Line karakterine tekabül eden decimal 10 değerlikli sayıdır .. O noktada bir problem yaşıyor da olabilirsin .. Kontrolleri MCU tarafı içinde sağlayıp döküman paylaşımını bu yönde yapman faydalı olabilir .


Burak
Ω Gens Una Sumus Ω

Powered by EzPortal