Select Sidearea

Populate the sidearea with useful widgets. It’s simple to add images, categories, latest post, social media icon links, tag clouds, and more.

hello@youremail.com
+1234567890

Kvaser- t Programlamaya Giriş: Kanalları Başlatma

Vetes Mühendislik > Kvaser- t Programlamaya Giriş: Kanalları Başlatma

Kvaser-t programlamaya giriş eğitiminin ikinci bölümüne hoşgeldiniz.

 

Başlayacağız ve sonraki videolara geçerken aynı t scriptini yineleyeceğiz.

 

Başlangıç bloğunu oluşturarak başlayın. Bunu boş bırakacağız, ardından stop bloğunu da boş bırakacağız. Şimdi bu cihazın ilk iki kanalını başlatacağız. Bit hızını ayarlayarak başlayacağız. Yani canSetBitrate ilk kanalı canBITRATE_500K olarak ayarlayacağız ve ikinci kanal da aynısını yapacak. Şimdi her iki kanal için bit hızını ayarladığımıza göre canBusOn fonksiyonunu kullanarak onları açacağız. Pekala, bu cihaz açıldığında her iki kanalı da 500k olarak ayarlayacak ve ikisini de açacaktır.

 

Şimdi, durduğumuzda her iki kanalı da kapattığımızdan emin olmak istiyoruz, böylece hata almayız. Tamamdır. Şimdi cihaz kapandığında her iki kanalı da kapatacak ve herhangi bir hata almayacağız. Sonuçta kanal 1’de herhangi bir ID’ye sahip bir CAN mesajı almak istiyoruz. Ardından da aynı mesajı kanal 2’deki CAN’a yazmak.  Ayrıca herhangi bir kimlikte bir mesaj aldığımızda, bu mesajı alıp kanal 1’e yazmak istiyoruz. Öyleyse bir kanca oluşturalım – bir on CanMessage kancası.

 

Pekala, büyüktür (>) ve küçüktür (<) sembolleri arasında hedeflemek istediğimiz kanal olacak. Yani bu kanal CAN ID any, yani yıldız işaretleri diyor ki: hey, hangi CanMessage’a sahip olursak olalım, herhangi bir ID alırsak, o zaman bu fonksiyon bloğunu burada çağırmak istiyoruz. Yani CAN kanal 1’de herhangi bir ID’ye sahip bir CanMessage aldığımızda, kanal 1, kanal 2’ye canWrite yapmak istiyoruz – özür dilerim, bu mesaj ve aldığımız mesaj bu.

 

Bunun bir yapı olduğunu görebilirsiniz. Bu konuya biraz sonra gireceğiz. Yani, nokta ID koyduk, bu mesajın ID’si olacak. bunu burada bir printf deyiminde kullanacağız. Yani printf bize bu bloğa ulaşıp ulaşmadığımızı belirlemede yardımcı olacak.

 

Şimdi devam edelim ve buraya basit bir printf mesajı yazalım. “Kimliği 0x%x olan bir CAN mesajı aldık” diyor. Pekala, bu bir kaçış dizisi. Yüzde işaretini kullandığımızda bir değişken ekleyebiliriz ya da şöyle diyebiliriz: hey, burada görmek istediğiniz ID bu. Şimdi, X bu değişkenin onaltılık karakter olarak yazdırılmasını istediğimizi ve ondalık için %d kullanacağımızı söylüyor. Bunu bir saniye içinde yapacağız. Böylece %d kanalında hex this.ID ID’li CAN mesajını aldık, this.id, this.channel +1 insan tarafından okunabilir bir bağlama yerleştirmek için yine de CAN kanalı 1’de aldığımızı söylüyor.

 

Şimdi aynı şeyi yapalım, sadece kopyalayıp yapıştıracağım.CAN kanalı 1 veya CAN kanalı 2’de herhangi bir mesaj aldığımızda aynı şeyi yapacağız. Yani CAN kanalı 2’de herhangi bir CAN mesajı aldığımızda bunu CAN kanalı 1’e yazmak istiyoruz ve işte ilk t kodumuz. Şimdi devam edelim ve bu betiği kaydedelim. Ve derleyelim. Şimdi derlediğinizde kaydedilmemiş bir projemiz olduğunu göreceksiniz, bu nedenle derlediğimizde bizi yeni bir proje oluşturmaya zorlayacaktır. Bu yüzden devam edeceğiz ve bu projeyi kaydedeceğiz. Ve bir hatamız var, bakalım neyi yanlış yapmışız. Satır 14 beklenmedik, iki nokta üst üste (:) , noktalı virgül (;) bekleniyor. İşte oldu. Yani, bir hata yaptım, derleyici bana sorunun nerede olduğunu söylüyor, içeri girip düzeltebilirim, yeniden derleyebilirim ve iyiyiz.