Leaderboard


Popular Content

Showing most liked content on 23-06-2018 in all areas

  1. 1 like
    WMI'a falan girmeye gerek kalmadı. Zaten kullandığım System.IO ile o işi hallettim. using System.IO.Ports; SerialPort serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One); serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler); string[] ports = SerialPort.GetPortNames(); foreach (string port in ports) { try { serialPort1.PortName = port; serialPort1.Open(); textBox1.Text += port + "\r\n"; } catch (Exception ex) { } serialPort1.Close(); } private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e) { Console.WriteLine("Data Received"); } Tabi pratikte bu yemedi çünkü o porttan bir şey gelebilmesi için portu bir süre açık bırakmak gerekiyor. Bunun için foreach'i falan kenara bırakıp sonunda bir timer olan yeni bir loop hazırladım. Yani fonksiyon seri portu seçiyor, açıyor ve sonra timer'ı ateşliyor, Timer sona erince de o portu kapatıp bir sonrakine geçiyor. Tabi bu şekilde çalışıyor ama sistemdeki seri port sayısına bağlı olarak, olayın süresi uzuyor. Çünkü tek bir port objesi var ve port sayısına göre her bir port için bu obje tek tek açılıp bir süre dinleyip sonra kapatıyor. Şimdi bunu paralel şekilde çalışacak şekilde yeniden düzenlem lazım. Yoksa sistemde 20 com port varsa ve bekleme(portu dinleme) süresini 1sn ayarladıysam, bütün portları dinlemesi 20 sn sürüyor. Yani her bir port için yeni bir obje oluşturacak yeni bir foksiyon oluşturmam lazım.
  2. 1 like
    2011'de aldığım Dell laptop'a sadece SSD taktım, canavar gibi Ubuntu ile çalışıyor. Üstelik üst bir model de değildi. Olayın bu kısmı da var. @pentamanhayırlı olsun hocam.
  3. 1 like
    Steljes NS3 hocam, daha önce @hakancez hocam sayesinde tanıştığım bir marka.
  4. 1 like
    H3VR'ı yapan eleman yeni kontrolcüyü anlatmış, genel olarak epey beğenmiş diyebilirim: https://youtu.be/QeusBy6fUR0?t=14m
  5. 1 like
    Gençler şimdi şöyle bir sorunum var; Visual Studio ile bir küçük program yapmaya çalışıyorum. Programın olayı belli aralıkla bir veriyi bilgisayarın seri portundan başka bir cihaza göndermesi. Sıkıntı burada değil, bu kısmı yapabiliyorum ama portu elle seçmem gerekiyor, ben istiyorum ki kendi otomatik olarak bağlansın. Yani program çalıştığında bilgisayardaki mevcut serial portları listelesin, bu portlar içinde başka bir program tarafından kullanılanları elesin, geri kalan kullanılabilir portlardan da her birine kısa bir sorgulama mesajı göndersin, bu sorgulama mesajı gönderdiği portlardan herhangi birinde o porta bir cihaz bağlı cihaz istediği yanıtı verirse bu portu "veri iletiminde kullanılacak port" olarak işaretlesin. Yani bir çeşit "hand shaking" olayları. Bunun da bir kısmını yapabiliyorum ama bir türlü şu komut gönderme, bekleme, cevabı okuyup karşılaştırma işini beceremedim. private string[] ports = SerialPort.GetPortNames(); private void Form1_Load(object sender, EventArgs e) { serialPort1.BaudRate = 9600; foreach (string port in ports) { textBox1.Text += port + "\r\n"; ///Bilgisayarda bulunan mevcut serial portlar } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// foreach (string port in ports) { try { serialPort1.PortName = port; serialPort1.Open(); textBox1.Text += port + "\r\n"; ///Mevcut portların içerisinde "açılabilir" olanlar. Açılabiliyorsa zaten başka bir program tarafından kullanılmıyor olmuş oluyor. } catch (Exception ex) { } serialPort1.Close(); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Daha anlaşılabilir olsun diye böldüm, yoksa bu iki bölümü birleştirebilir yada ilk kısmı atabilirim. Şu şekilde sırasıyla her bir "kullanılabilir" porta özel mesajımı da gönderebiliyorum ama gerisini bir türlü getiremiyorum. { serialPort1.Open(); serialPort1.Write("Hello"); serialPort1.Close(); } Bilgisayara seri portundan bağlı cihaz "Hello" mesajını görünce cevap olarak "hi" diyor ve veri alma moduna geçiyor, orada bir sıkıntı yok ama gel gör ki programın çalıştığı bilgisayar bu "hi" cevabını nasıl görüp o da veri gönderme moduna geçecek?
  6. 1 like
    Kesinlikle pahalı ama işletim sisteminin tam destek verdiği 8-10 senelik sürelere bakınca Windows tabanlı herhangi bir laptop çok daha pahalıya geliyor.