Microchip USB Stack HID Device isim değiştirme

Başlatan esensoy, 29 Mart 2014, 14:08:21

esensoy

Selam,
Usb stack içindeki örnek kodlar ile usb hid device ile bir devre yaptım, aygıt yöneticisinde HID uyumlu aygıt olarak görülüyor,
usb_descriptors.c içindeki
//Manufacturer string descriptor
ROM struct{BYTE bLength;BYTE bDscType;WORD string[25];}sd001={
sizeof(sd001),USB_DESCRIPTOR_STRING,
{'M','i','c','r','o','c','h','i','p',' ',
'T','e','c','h','n','o','l','o','g','y',' ','I','n','c','.'
}};

//Product string descriptor
ROM struct{BYTE bLength;BYTE bDscType;WORD string[22];}sd002={
sizeof(sd002),USB_DESCRIPTOR_STRING,
{'S','i','m','p','l','e',' ','H','I','D',' ',
'D','e','v','i','c','e',' ','D','e','m','o'
}};
değişkenlerini düzenliyorum ama bir şey değişmiyor,
İstediğim bir yazının yazması için ne yapmam lazım?
En tehlikeli an "zafer" anıdır.

Burak B

#1
HID kullanırken cihaz adına istediğin yazı yazmaz. Sadece cihaz o usb portuna ilk kez takılıyorsa işletim sistemi cihazı algılarken cihazının adı yazar. Sonrasında aygıt yöneticisinde "HID uyumlu aygıt" olarak görünür. HID kullandığın sürece bu durum geçerlidir.

Sonra yazılım ile bu cihazı sorgulayıp. Cihazın adını sanını öğrenebilir ve gösterebilirsin.
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

esensoy

Peki, ben kafama göre vid ve pid verdim, hid driver ı edit lesek ve vid pid in unique olduğunu varsayarsak dediğim gibi isim verebilirmiyiz?
En tehlikeli an "zafer" anıdır.

muhterem

İstediğiniz adı verebilirsiniz tıpkı piyasada bulunan flash disklerin yaptığı gibi. Kiminde sandisk yazar kiminde başka bir marka ama hepsi aynı sürücüyü kullanır.

İstediğiniz adı verebilirsiniz ancak firmwareden değil. Windows inf kalsöründeki inf uzantılı dosyaları inceleyin, aynı hid sürücüsünü yükleyen bir sürü farklı inf dosyası bulacaksınız. Yapmanız gereken sürücünüzü işaret eden bir dosyayı kopyalayıp düzenlemek yada yeni bir inf dosyası hazırlamak. Vendor ve product id lerin ne olduğunun bir önemi yok, önemli olan firmware deki ile inf dosyasındakinin aynı olmasıdır.

t2

muhterem bu anlattığınız şey hid aygıt için geçerli mi? kendiniz denediniz mi? emin misiniz?

muhterem

Alıntı yapılan: t2 - 29 Mart 2014, 19:05:24
muhterem bu anlattığınız şey hid aygıt için geçerli mi? kendiniz denediniz mi? emin misiniz?

Windows klasörüne girip "*.inf" diye aratırınca çıkan dosyaları incelerseniz anlayacaksınız. Aynı inf dosyasında onlarca üreticinin farklı VID numarası, farklı üretici isimleriyle aynı sürücüyü yükleyecek şekildedir. Firmware benim sınıfım şu, üreticim bu der, windows o sınıfın inf dosyasından eşleşen kaydı bulup sürücüyü yükler. Hepsi aynı sürücüyü kullanır ama hepsinin ADI, VID/PID bilgileri farklıdır.

t2

Inf dosyadan isim degisikligi,  Hid aygit icin olmuyor.

muhterem


Alıntı yapılan: t2 - 29 Mart 2014, 20:47:53
Bu dediginiz inf dosyadan isim degisikligi  Hid aygit icin olmuyor.  Uydurmayin.


Çok suçlayıcı bir laf olmuş, niçin uydurmuş oluyorum ? Windows üreticiyi ve ürün bilgilerini google amcasınamı sorup öğreniyor ?


C:\Windows\Inf\usbstor.inf dosyasını açıp; (daha önceden inf klasörünü/bu dosyayı silmiş iseniz kendiniz oluşturabilirsiniz)


[Manufacturer] Altına


%Muhterem.Mfg%=Muhterem,NTamd64


satırını ekleyin. Ve aşağıdaki satırları boş bir kısıma ekleyin.


[Muhterem.NTamd64]
%USB\VID_04C8&PID_5555.DeviceDesc%=USBSTOR_BULK, USB\VID_04C8&PID_5555

;Non-Localizable
Muhterem.Mfg = "Muhteremin Şirketi"
;Localizable
USB\VID_04C8&PID_5555.DeviceDesc = "Muhteremin USB Depolama Aygıtı"


Sisteminiz 32 bit ise yukarıdaki NTamd64 leri NTx86 yapın. Aygıt yazılımdaki VID bilgisini 04C8 ve PID bilgisini 5555 yapın yada yukarıdakileri aygıt yazılımındaki gibi değiştirin. Aygıt yazılımında problem yoksa yukarıdaki metinler bilgisayarda görüntülenir. Projeyi tamamlayıp usb.org dan vendor ID alıp, ürünüzü kaydettirdiğinizde windowsta yukarıdaki satırları ekleyerek bu dosyayı günceller, böylelikle tüm makinelerde adınız görünür. Eğer vendor ID almazsanız üretici olarak "Muhteremin Şirketi" yerine şu anda gördüğünüz "Compatible USB storage device" ve ürün olarakta "Muhteremin USB Depolama Aygıtı" yerine "USB Mass Storage Device" görüntülenir, bunlar güncelleme yapılmadığı zamanlarda kullanılacak varsayılan üretici ve ürün bilgisidir.

t2

Bir hid aygıt ayarlayıp deneyin. mesela farenizin aygıt yöneticisinden hebelup aygıt olarak görünmesini sağlayıp  ekran görüntüsünü buraya ekleyin.  Böylece uydurmadığınıza destekli attığınıza inanalım. Başka aygıtlarda olur. HID de olmuyor. benim iddiam bu. UYdurmayın. HID diyorum hid. anladiniz?

muhterem

Yazmayı unutmuşum, ekleyeyim;


;Non-Localizable bu metni tüm diller için tercüme etmeden olduğu gibi kullan demektir


;Localizable ise bu metni kullanıcı diline tercüme et demektir.

t2

#10
input.inf dosyadan olabilir. HID için

muhterem

Alıntı yapılan: t2 - 29 Mart 2014, 23:46:12
Bir hid aygıt ayarlayıp deneyin. mesela farenizin aygıt yöneticisinden hebelup aygıt olarak görünmesini sağlayıp  ekran görüntüsünü buraya ekleyin.  Böylece uydurmadığınıza destekli attığınıza inanalım. Başka aygıtlarda olur. HID de olmuyor. benim iddiam bu. UYdurmayın. HID diyorum hid. anladiniz?


Hocam daha ne yazayım, yukarıda yazdıklarım yeterince net değilmi ?


Tekrar sorayım isterseniz Windows üreticiyi ve ürün bilgilerini google amcasınamı sorup öğreniyor ?

mesaj birleştirme:: 29 Mart 2014, 23:52:59

Alıntı yapılan: t2 - 29 Mart 2014, 23:50:57
Hid aygıtta olmaz. uydurmayın.


Windows üreticiyi ve ürün bilgilerini google amcasınamı sorup öğreniyor ?

t2

aygıt kendini sınıfını tanıtıyor oradan öğreniyor. 

muhterem

Alıntı yapılan: t2 - 29 Mart 2014, 23:50:57
input.inf dosyadan olabilir. HID için


Mesajlarınızı değiştiriyorsunuz !


input.inf giriş aygıtları içindir, usb depolama sınıfı ile ne alakası var ? İlk mesajdaki koda bir daha bakın isterseniz.

t2

#14
Ben baştan beri HID diyorum siz başka şey anlatıyorsunuz.
Alıntı Yapmuhterem bu anlattığınız şey hid aygıt için geçerli mi? kendiniz denediniz mi? emin misiniz?


mesaj birleştirme:: 30 Mart 2014, 00:07:04


İlk soruyu soran arkadaş da HIDi sormuş zaten.
Alıntı YapUsb stack içindeki örnek kodlar ile usb hid device ile bir devre yaptım,