Coś mu też ten "RTS on TX" też nie działa... Po wybraniu na siłę COM1 jestem w stanie wysłać znaki ale nie odbieram.
Coś mu też ten "RTS on TX" też nie działa... Po wybraniu na siłę COM1 jestem w stanie wysłać znaki ale nie odbieram.
Zbych pisze:
Oj niebezpieczne podejście. A nie da się najpierw zapytać systemu, jakiej długości bufor jest potrzebny?
Zresztą ta funkcja działa podobno tylko od Windows 2000 w górę:
No ale koniec takich szczegółów bo robi się lekko NTG.
Adam Dybkowski pisze:
Podejście jest bezpieczne, bo podajesz jak długi masz bufor. System nie pomaże ci pamięci. A co do sprawdzenia jak długi bufor jest potrzebny, to w msdn nie znalazłem żadnych podpowiedzi.
A to mi wcale nie przeszkadza. Jak ktoś lubi pracować na systemie sprzed 10 lat to już nie mój problem.
Możesz wkleić przykładowy kod listujący porty?
Dlaczego NTG? Porty komputera są jak najbardziej w temacie grupy :-).
Zbych pisze:
Pierwszy z brzegu przykład (nie z ISP Programmera):
void enum_ports_nt(void) { GUID lptcom = {0x4d36e978, 0xe325, 0x11ce, {0xbf,0xc1,0x08,0x00,0x2b,0xe1,0x03,0x18}}; HDEVINFO h; BOOLEAN res; char dev_name[256]; SP_DEVINFO_DATA devinfo_data; DWORD i;
h = SetupDiGetClassDevs(&lptcom, NULL, 0, DIGCF_PRESENT | DIGCF_PROFILE); if (h == INVALID_HANDLE_VALUE) { err("SetupDiGetClassDevs"); return; }
i = 0; do { devinfo_data.cbSize = sizeof(SP_DEVINFO_DATA); res = SetupDiEnumDeviceInfo(h, i, &devinfo_data); if (res) { if (SetupDiGetDeviceRegistryProperty(h, &devinfo_data, SPDRP_FRIENDLYNAME, NULL, dev_name, sizeof(dev_name), NULL)) printf("%s\n", dev_name); //print_io_information(&devinfo_data.DevInst, 0); i++; } } while (res);
SetupDiDestroyDeviceInfoList(h); }
void err(const char *fun) { LPVOID buf; DWORD errcode = GetLastError();
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, errcode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &buf, 0, NULL); printf("Blad %d w funkcji %s(): %s\n", errcode, fun, buf); LocalFree(buf); }
Pocięło linie na kawałki ale da się zrozumieć po skopiowaniu do edytora. Sorry reszta grupy za nieprzydatnego dla większości elektroników posta.
Skad Ci to przyszlo do glowy??
Co prawda ja z lenistwa .net uzywam, ale dobrze miec takie male snippety, wiec to jest uzyteczne (no bo jakie urzadzenie teraz nie gada z komputerem? Jeszcze troche i multiwibratory beda z PIcami/Atmelkami).
Skopiowane do prywatnej kolekcji ;-)
A taki prosty (od razu pisze że nie sprawdzony bo nie mam żadnego kompa z Vistą pod ręką) pomysł - skopiować Hyperterminal z jakiegoś kompa z XP'ekiem, może zadziała pod Vistą?
pozdrawiam
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.