%100 Açık kaynak kodlu, Mavis USB I/O sınıfının kullanımı:
VS içinden projenizi açıp, Mavis tarafından tedarik edeceğiniz USB_DIO ve DioModule sınıfını projenize eklendiğinizde Solution Explorer içinde soldakine benzer bir görüntü olması lazım.
USB_DIO, HID USB fonksiyonlarının olduğu bir kütüphanedir. Genel USB giriş çıkış fonksiyonlarının tamamını destekler.
DIOModule ise, genel USB fonksiyon setinin Mavis tarafından geliştirilmiş giriş çıkış modülüne uyarlanmış halidir. Byte se Bit seviyesinde okuma yazma yapabilen ve modülün giriş çıkış işlemlerine olanak sağlayan yapıları içerir.
Bu aşamadan sonra, normal C# sınıf kullanımı gibi DIOModule kullanımı yapılabilir.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Windows.Forms; using System.IO; namespace VYP { public partial class frmMain : Form { public DIOModule dioModule = new DIOModule();
bu tanımlama ile dioModule isminde global bir değişkenimiz oldu.
Bir trigger yardımıyla sürekli okuma
private void tmrDIO_Tick(object sender, EventArgs e) { if ((dioModule.connected) && (dioModule.Active)) { byte inputDIO; dioModule.ReadDio(out inputDIO, false); if (dioModule.DIChanged()) { if (inputDIO == dioModule.triggerSignal) { //RunAll(); // Put Here your trigger code... } } } }
DIOModule kullanarak belirli bir çıkış değerini set etme
if ((dioModule.Active) && (dioModule.connected)) { dioModule.WriteDio(1, false); // Led leri yakıyoruz... }
DIOModule kullanarak girişteki değeri okuma
if ((dioModule.Active) && (dioModule.connected)) { byte inputDIO; dioModule.ReadDio(out inputDIO, false); // okunan değer inputDIO değişkenine alındı }
dioModule Pin bazında erişim imkanı da sunmaktadır. Indexer yapısıyla desteklenmiş bu kullanım moduna göre
dioModule.SetPin(2);
dioModule.SetPin(4);
gibi yapı kullanılabilir. Bunun yerine daha gelişmiş olan;
dioModule.Pins[2] = 1;
dioModule.Pins[4] = 0;
gibi, indexer yapısı da tercih edilebilir.
Belirli bir pin değerini okumak için;
dioModule.GetPin(2);
yapısı
veya
byte b = dioModule.Pins[2]; indexer yapısı tercih edilebilir.
Belirli bir pin değerini sıfırlamak için
dioModule.ClearPin(2);
yapısı kullanılabilir. Bu yapıya göre, diğer çıkış değerlerinin ne olduğuna bakılmaksızın 2 nolu pin sıfıra çekilecektir.
Mavis, dioModule için gelişmiş fonksiyon setine sahiptir. Daha fazla bilgi için bizimle irtibata geçiniz…