View Full Version : [C++] gestire la porta USB
ho già scritto tempo fa un software per la gestione della porta RS232 e pensavo fosse un sistema simile ma sembrerebbe non proprio così.
Da quel che ho letto si deve cercare il path del dispositivo e da questo con la CreateFile() aprire il device.
Da gestione del computer ho trovato un nome tipo
"USB\VID_0582&PID_.......",
ma non sono convinto che sia questo in quanto tentando di aprirlo la funzione CreateFile() fallisce.
Se avete esperienze in merito.
ok,
sto scoprendo che esistono diverse strade per risolvere il problema, attraverso un driver virtuale che emula la porta RS232, oppure attraverso librerie.
Dato che non so minimamente se ad esempio un emulatore può abbattere le prestazioni sulla porta USB, ma credo di si in quanto anche l'emulatore credo debba scrivere leggere al posto mio, leggevo in merito a WinUSB che si appoggia al file di sistema winusb.sys: ho scritto cavolate?
aggiungo qualche codice trovato in giro, casomai a qualcuno venisse la voglia di intromettersi in questa discussione
unsigned index;
HDEVINFO hDevInfo;
SP_DEVINFO_DATA DeviceInfoData;
TCHAR HardwareID[1024];
// List all connected USB devices
hDevInfo = SetupDiGetClassDevs(NULL, TEXT("USB"), NULL, DIGCF_PRESENT | DIGCF_ALLCLASSES);
for (index = 0; ; index++)
{
DeviceInfoData.cbSize = sizeof(DeviceInfoData);
if (!SetupDiEnumDeviceInfo(hDevInfo, index, &DeviceInfoData))
{
return false; // no match
}
SetupDiGetDeviceRegistryProperty(hDevInfo, &DeviceInfoData, SPDRP_HARDWAREID, NULL, (BYTE*)HardwareID, sizeof(HardwareID), NULL);
if (_tcsstr(HardwareID, _T("VID_1234&PID_5678"))) {
return true; // match
}
}
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.