-
21. Data: 2009-10-07 18:42:14
Temat: Re: Który program zastąpi mi HyperTerminal pod MS Vista?
Od: "Pszemol" <P...@P...com>
"Zbych" <z...@o...pl> wrote in message news:haim6r$vka$1@news.mm.pl...
> Pszemol pisze:
>> "Zbych" <z...@o...pl> wrote in message news:hag469$27qb$1@news.mm.pl...
>>> Pszemol pisze:
>>>
>>>> Co możecie polecić?
>>>
>>> Br@y: http://braypp.googlepages.com/terminal
>>
>> Okienko wygląda ciekawie, ale z jakichś powodów nie działa wcale.
>> Gdy każę mu wyświetlić dostępne porty szeregowe to lista jest pusta...
>> Dostaję to:
>>
>> Available COM ports on system:
>
> He he. Właśnie testowałem swój program (gadający przez RSa) na viście.
> Okazało się, że funkcja QueryDosDeviceW, której używam do wylistowania
> COMów zwraca znacznie więcej urządzeń niż pod XP i bufor odbiorczy
> powinien być dłuższy. Prawdopodobnie br@y też ma zbyt krótki bufor i COMy
> się w nim "nie zmieściły".
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.
-
22. Data: 2009-10-07 23:30:27
Temat: Re: Który program zastąpi mi HyperTerminal pod MS Vista?
Od: Adam Dybkowski <a...@4...pl>
Zbych pisze:
> He he. Właśnie testowałem swój program (gadający przez RSa) na viście.
> Okazało się, że funkcja QueryDosDeviceW, której używam do wylistowania
> COMów zwraca znacznie więcej urządzeń niż pod XP i bufor odbiorczy
> powinien być dłuższy. Prawdopodobnie br@y też ma zbyt krótki bufor i
> COMy się w nim "nie zmieściły".
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ę:
http://msdn.microsoft.com/en-us/library/aa365461%28V
S.85%29.aspx
Ja w swoich programach stosuję sposób listowania urządzeń używany np. w
systemowym Menedżerze urządzeń i działa to poprawnie począwszy od
systemu Windows 95 OSR2 aż po 64-bitowy Windows 7. Używam do tego
funkcji: SetupDiGetClassDevs, SetupDiEnumDeviceInfo,
SetupDiGetDeviceRegistryProperty, SetupDiDestroyDeviceInfoList.
Dodatkowo odczytuję adres bazowy portu LPT przy pomocy zestawu:
CM_Get_DevNode_Status, CM_Get_First_Log_Conf, CM_Get_Next_Res_Des,
CM_Get_Res_Des_Data, CM_Free_Log_Conf_Handle.
No ale koniec takich szczegółów bo robi się lekko NTG.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
-
23. Data: 2009-10-08 06:46:54
Temat: Re: Który program zastąpi mi HyperTerminal pod MS Vista?
Od: Zbych <a...@o...pl>
Adam Dybkowski pisze:
> Zbych pisze:
>
>> He he. Właśnie testowałem swój program (gadający przez RSa) na viście.
>> Okazało się, że funkcja QueryDosDeviceW, której używam do wylistowania
>> COMów zwraca znacznie więcej urządzeń niż pod XP i bufor odbiorczy
>> powinien być dłuższy. Prawdopodobnie br@y też ma zbyt krótki bufor i
>> COMy się w nim "nie zmieściły".
>
> Oj niebezpieczne podejście. A nie da się najpierw zapytać systemu,
> jakiej długości bufor jest potrzebny?
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.
> Zresztą ta funkcja działa podobno tylko od Windows 2000 w górę:
> http://msdn.microsoft.com/en-us/library/aa365461%28V
S.85%29.aspx
A to mi wcale nie przeszkadza. Jak ktoś lubi pracować na systemie sprzed
10 lat to już nie mój problem.
> Ja w swoich programach stosuję sposób listowania urządzeń używany np. w
> systemowym Menedżerze urządzeń i działa to poprawnie począwszy od
> systemu Windows 95 OSR2 aż po 64-bitowy Windows 7. Używam do tego
> funkcji: SetupDiGetClassDevs, SetupDiEnumDeviceInfo,
> SetupDiGetDeviceRegistryProperty, SetupDiDestroyDeviceInfoList.
Możesz wkleić przykładowy kod listujący porty?
> Dodatkowo odczytuję adres bazowy portu LPT przy pomocy zestawu:
> CM_Get_DevNode_Status, CM_Get_First_Log_Conf, CM_Get_Next_Res_Des,
> CM_Get_Res_Des_Data, CM_Free_Log_Conf_Handle.
>
> No ale koniec takich szczegółów bo robi się lekko NTG.
Dlaczego NTG? Porty komputera są jak najbardziej w temacie grupy :-).
-
24. Data: 2009-10-08 20:57:15
Temat: Re: Który program zastąpi mi HyperTerminal pod MS Vista?
Od: Adam Dybkowski <a...@4...pl>
Zbych pisze:
>> Ja w swoich programach stosuję sposób listowania urządzeń używany np. w
>> systemowym Menedżerze urządzeń i działa to poprawnie począwszy od
>> systemu Windows 95 OSR2 aż po 64-bitowy Windows 7. Używam do tego
>> funkcji: SetupDiGetClassDevs, SetupDiEnumDeviceInfo,
>> SetupDiGetDeviceRegistryProperty, SetupDiDestroyDeviceInfoList.
>
> Możesz wkleić przykładowy kod listujący porty?
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.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
-
25. Data: 2009-10-08 22:25:30
Temat: Re: Który program zastąpi mi HyperTerminal pod MS Vista?
Od: Jerry1111 <j...@w...pl.pl.wp>
Adam Dybkowski wrote:
> 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 ;-)
--
Jerry1111
-
26. Data: 2009-10-09 05:03:49
Temat: Re: Który program zastąpi mi HyperTerminal pod MS Vista?
Od: "Ciemny" <m...@a...na.stronie.www.lhs.pl>
Użytkownik "B.Adamczyk" <b...@p...onet.pl> napisał w wiadomości
news:haidjp$fag$1@nemesis.news.neostrada.pl...
>> Co możecie polecić? Co Wy używacie pod MS Vista?
>
>
> Może: HyperTerminal Private Edition 7.0 ??
Jak ktoś jest przyzwyczajony do starego HyperTerminala z czasów
poprzednich Windows to jest chyba najlepszy program.
W sumie to jest to samo co było :)
Pozdr. TC
-
27. Data: 2009-10-09 18:04:49
Temat: Re: Który program zastąpi mi HyperTerminal pod MS Vista?
Od: "Piotr D." <p...@n...lubie.reklam.cn>
Pszemol wrote:
> W związku z przesiadką na Vistę szukam dobrego programu
> terminala tekstowego RS232 który oprócz funkcjonalności
> starego poczciwego Hyperterminala będzie miał dodatkowo
> obsługę portu RS485 czyli będzie mógł włączać nadajnik
> (TX_ON) sterując odpowiednio linią RTS portu RS232...
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