Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



Seriovy port

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Seriovy port

Autor: Willyo

18:54:07 22.04.2010

Ano. Ještě bych dodal, že timeout se nastavuje v milisekundách.

Citovat příspěvek

 

Re: Seriovy port

Autor: JiriValerian

18:39:02 22.04.2010

[color=#008000]Willyo Napsal:
-------------------------------------------------------
> Nebo můžeš číst po jednom bajtu a po každém čtení
> kontrolovat jestli se ten bajt načetl.. fantazii
> se meze nekladou... :)[/color]

V takovém případě bude vhodné si v případě použití synchronního režimu nastavit přes Win API funkcí [b]SetCommTimeouts[/b] nějaký krátký interval pro [b]ReadTotalTimeoutConstant[/b], protože funkce [b]ReadFile[/b] v synchronním režimu pokud není k dispozici žádný bajt čeká dokud nepřijde počet požadovaných bajtů (třeba jeden) nebo dokud neuplyne nastavený timeout.

Citovat příspěvek

 

Re: Seriovy port

Autor: Willyo

17:23:54 22.04.2010

Nebo můžeš číst po jednom bajtu a po každém čtení kontrolovat jestli se ten bajt načetl.. fantazii se meze nekladou... :)

Citovat příspěvek

 

Re: Seriovy port

Autor: alexal

14:53:20 22.04.2010

> Ve Windows to jde zjistit i u sériového portu jak jsem již uvedl pomocí Win API
> funkce ClearCommError.

Jo fakt to jde, máte pravdu.
Já to nepoužil už tak dlouho, že jsem na to zapomněl :-) obvykle to dělám jinak.

Citovat příspěvek

 

Re: Seriovy port

Autor: JiriValerian

14:41:40 22.04.2010

[color=#008000]alexal Napsal:
-------------------------------------------------------
> Tohle jde u soketů, ale u sériového portu nikoliv.[/color]

Ve [b]Windows[/b] to jde zjistit i u sériového portu jak jsem již uvedl pomocí Win API funkce [b]ClearCommError[/b].

Citovat příspěvek

 

Re: Seriovy port

Autor: JiriValerian

14:40:07 22.04.2010

[color=#008000]Vergilius1 Napsal:
-------------------------------------------------------
> Ahoj
> Se sériovým portem komunikuji přes fce CreateFile,
> ReadFile, WriteFile.
>
> Lze nejak zjistit, kolik znaku je v přijímacím
> bufferu portu, tzn. kolik znaku ma funkce ReadFile cist?
>
> Nedaři se mi nikde nic najit. Předem děkuji.[/color]

Ano lze to zjistit před voláním [b]ReadFile[/b] pomocí Win API funkce [b]ClearCommError[/b] viz ukázka
(používám to už mnoho let a funguje to bezvadně).
[size=14px][code]DWORD commErrors [color=#800000]=[/color] [color=#0000FF]0[/color][color=#800000];[/color]
COMSTAT commStat[color=#800000];[/color]
ZeroMemory[color=#800000]([/color][color=#800000]&[/color]commStat[color=#800000],[/color][color=#0000FF]sizeof[/color][color=#800000]([/color]COMSTAT[color=#800000])[/color][color=#800000])[/color][color=#800000];[/color]
[color=#0000FF]if[/color] [color=#800000]([/color]ClearCommError[color=#800000]([/color]hPort[color=#800000],[/color][color=#800000]&[/color]commErrors[color=#800000],[/color][color=#800000]&[/color]commStat[color=#800000])[/color][color=#800000])[/color] [color=#800000]{[/color]
[color=#0000FF]if[/color] [color=#800000]([/color]commStat[color=#800000].[/color]cbInQue[color=#800000])[/color] [color=#800000]{[/color]
[color=#008000]// ve vstupní frontě je ke čtení připraven počet znaků viz hodnota commStat.cbInQue[/color]
[color=#800000].[/color][color=#800000].[/color][color=#800000].[/color]

[color=#800000]}[/color][color=#800000];[/color]
[color=#800000]}[/color][color=#800000];[/color][/code][/size]
[b]PS:
Jazyk C/C++ k tomu vůbec nic neposkytuje.[/b] Do budoucna s dotazy, které se netýkají záležitostí standardu jazyka [b]C/C++[/b] a mají být řešeny pro [b]Windows[/b] tj. jako je tento případ kdy se jedná o OS specific záležitost jen pro Windows, nechoďte vůbec do [b]konference C/C++[/b], ale rovnou do příslušné konference pro cílový OS v případě [b]Windows[/b] tedy sem.

[b]Moderátor konference[/b]

Citovat příspěvek

 

Re: Seriovy port

Autor: alexal

14:11:26 22.04.2010

Tohle jde u soketů, ale u sériového portu nikoliv.

Napiš co přesně chceš dělat, určitě to nějak půjde vyřešit.

Citovat příspěvek

 

Seriovy port

Autor: Vergilius1

13:54:07 22.04.2010

Ahoj
Se sériovým portem komunikuji přes fce CreateFile, ReadFile, WriteFile.

Lze nejak zjistit, kolik znaku je v přijímacím bufferu portu, tzn. kolik znaku ma funkce ReadFile cist?

Nedaři se mi nikde nic najit. Předem děkuji.

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: