Visual assist x nedir?

Başlatan zakbay, 30 Ekim 2012, 11:35:51

zakbay

Arkadaşlar merhaba AVR studio6 kullanıyorum.
Visual assist x ile avr studio arasındaki bağlantı nedir. Anladığım kadarıyla program avr studio ya eklenti olarak kuruluyor. Faydası nedir hiç kullanan var mı?

Program aşağıda
http://www.wholetomato.com/products/documentation.asp
Tek dostum çalışmak...

bocek

Visual Assist X aslen yıllar öncesinden Microsoft Visual Studio için yazılmış ve parayla satılan bir eklentidir. Benim bildiğim MS Visual Studio 6.0'dan beri (sene 1999) vardır. Temel amacı hızlı kodlamaya, kod incelemeye/analiz etmeye yardımcı olabilmektir.
Aklıma gelen özellikleri, kod tamamlama/önerme, düzenleme, çeşitli kısayollar tanımlama, hazır kod blokları tanımlama vs gibi programcıların ihtiyaç duyduğu çeşitli özellikleri sunar.
Bu eklentiyle mesela bir değişkenin üzerine sağ tıkladığınızda bu değişkene yapılan başvuruları görebilirsiniz. Aynı şekilde bir fonksiyona nerelerden çağrı yapıldığını da. 'Refactoring' denilen özellik ile mesela bir değişkenin/fonksiyonun adını değiştirmek istediğinizde proje kapsamında 'Bul/Değiştir' ile uğraşmak yerine o değişkenin/fonksiyonun geçtiği her yerde, ismini yenisiyle değiştirir (ben en çok bunu kullanırım).
Dediğim gibi MS Visual Studio için parayla satılan bir eklenti olmasına rağmen Atmel, programcılara kıyak olsun diye Atmel Studio içinde bunu ücretsiz sunmaktadır. Zaten Atmel Studio da MS Visual Studio tabanlı bir IDE'dir ki MS Visual Studio'nun da ücretli olduğunu zaten biliyoruz (Express versiyonları hariç).
Kısacası Visual Assist X iyidir, candır, beleş olduğundan baldan tatlıdır.
1 ya da 0. işte 'bit'ün mesele..

zakbay

#2
Hocam cevabınız için teşekkür ederim. İndirdim kurdum o ana kadar IDE menüsündeki VAssistX'e dikkat etmemişim :). Dediğiniz gibi bahsettiğiniz özelliklerin hepsini kullanıyorum bütün bunları visual assist'in yaptığını öğrenmiş oldum. Vassistx disable yapınca renklendirmelerde, otomatik tamamlama da devre dışı kalıyor o zaman hiç kullanışlı olmuyor.

Yazdığım programda bazı fonksiyonların + ile gösterilen code folling diye geçiyor galiba otomatik olarak oluşmuyor. Bunun çözümünü ararken visual assist ile karşılaşmıştım. 

Örnek aşağıdaki fonksiyonda parantez oluşturmuyor sadece bu değil bunun gibi bir çok fonksiyonda aynı problemle karşılaşıyorum. Derleme sorunsuz oluyor.

void Menu2Ayarla(int8_t bagla)
{
	switch(Menu2index)
	{
		case 1: AYakit2G += bagla; if(AYakit2G>60){AYakit2G=60;}else{if(AYakit2G==255){AYakit2G=0;}} break;
		case 2: ABekle2G += (bagla*10); if(ABekle2G>600){ABekle2G=600;}else{if(ABekle2G<10)ABekle2G=10;} break;
	}	
}
Tek dostum çalışmak...

bocek

Otomatik parantez oluşturmuyor derken neyi kasdettiğinizi anlamadım. Kod yazarken süslü parantez açmaya basınca kapatmasını otomatik olarak koyuyor. biz de iki parantez arasında kodumuzu yazıyoruz. Sorun nedir?
Bir de konu ile alakalı değil ama;
case 1: AYakit2G += bagla; if(AYakit2G>60){AYakit2G=60;}else{if(AYakit2G==255){AYakit2G=0;}} break;

Bu satırda önce eğer AYakit2G>60 ise demişsin, arkasından, değilse AYakit2G== 255 ise... demişsin. AYakit2G 60'tan büyükse zaten 60'a eşitliyorsun. Sonra da 60'tan büyük değil de 255'e eşitse diye sınama yapıyorsun. 60'tan büyük olmayıp 255'e eşit olabilen bir sayı mümkün müdür?
Ayrıca bu satırlarda süslü parantezlere gerek yok onu da belirteyim.
1 ya da 0. işte 'bit'ün mesele..

zakbay

#4
süslü parantez demişim düzelttim fonksiyon isimlerinin hemen yanında çıkan + işareti var code folling diye biliyorum. Bazı fonksiyonlarda var bazılarında yok.

case 1: AYakit2G += bagla; if(AYakit2G>60){AYakit2G=60;}else{if(AYakit2G==255){AYakit2G=0;}} break;


Bu kodda da yapılmak istenen şu ;

fonksiyona +1 veya -1 geliyor ona göre artırma ya da eksiltme yapıyor. Artırma yaparken 60'ı geçince 60ta tutacak.
eksiltme yaparken de 255 e düşüp düşmediği kontrol ediliyor. eğer 255 ise 0 da kalması isteniyor.

Evet saçma olmuş :) başlangıçta 0 a inmemesi isteniyordu 255 yazan yerde 0 a inip inmediği kontrol ediliyordu. Eğer 0 sa 1 de tutuluyordu. Bu haliyle amaca hizmet etmiyor.

Düzeltilmiş hali
case 1: AYakit2G += bagla; if(AYakit2G==255){AYakit2G=0;}else{if(AYakit2G>61){AYakit2G=60;}}break;

Tek dostum çalışmak...