Article View: alt.pl.comp.lang.csharp
Article #22404Re: Linia DTR w RS232
From: Robert Sadza
Date: Thu, 12 Jul 2012 07:34
Date: Thu, 12 Jul 2012 07:34
49 lines
2941 bytes
2941 bytes
W dniu 2012-07-11 16:46, Łukasz 'Maly' Ostrowski pisze:
> On Wed, 11 Jul 2012 14:31:55 +0200, Robert Sadza wrote:
>> niestety nie ponieważ zmian stanu lini DTR występuje w momencie
>> wywołania serialPort.Open()
>
> Zejdźmy głębiej w takim razie.
>
> Zgodnie z:
> http://msdn.microsoft.com/en-us/library/ms810467.aspx
> (Ctrl-F "fRtsControl")
> Flagi które tym sterują są w strukturze DCB we flagsach...
> http://msdn.microsoft.com/en-us/library/windows/desktop/aa363214(v=vs.85).aspx
> Na bitach 5-6.
>
> Ale teraz, z kolei, po przejechaniu Reflectorem przez
> źródła frameworka:
>
> private void InitializeDCB(int baudRate, Parity parity,
> int dataBits, StopBits stopBits,
> bool discardNull)
> {
> // <snip>
> this.SetDcbFlag(1, (parity == Parity.None) ? 0 : 1);
> this.SetDcbFlag(0, 1);
> this.SetDcbFlag(2, ...);
> this.SetDcbFlag(3, 0);
> this.SetDcbFlag(4, 0); // *
> this.SetDcbFlag(6, 0);
> // <snip>
>
> Flaga 5 jest ustawiona na 0, czyli na:
>
> DTR_CONTROL_DISABLE
> 0x00
> Disables the DTR line when the device is opened
> and leaves it disabled.
>
> I taki DCB idzie do SetCommState, bez możliwości
> zmiany flag bo klasycznie: Microsoft nie dał niczego
> jako protected virtual, wszystko jest internal sealed,
> więc albo czeka Cię ciężkie hackowanie albo użycie
> zewnętrznej biblioteki do RS232 albo bezpośrednie
> opakowanie wszystkiego samemu w P/Invoke.
>
Dziękuje za informacje.
Odnośnie struktury DCB używałem jej kilka lat temu pisząc oprogramowanie
w Builder c++ 6.0 i niestety ustawienie dcb.fDtrControl =
DTR_CONTROL_DISABLE nic nie zmieniało w momencie otwarcia portu
występowała zmiana stanu linii DTR.
Technical Details
Message-ID:
<4ffe7de9$0$1220$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!news-out.readnews.com!news-xxxfer.readnews.com!nx02.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<4ffd4d95$0$26701$65785112@news.neostrada.pl> <19j4e8mq5j5ev$.tys91o30q77r$.dlg@40tude.net> <4ffd7233$0$1297$65785112@news.neostrada.pl> <9d06px40mx7u$.bka1q80i5cee.dlg@40tude.net>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!news-out.readnews.com!news-xxxfer.readnews.com!nx02.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Date: Thu, 12 Jul 2012 09:34:00 +0200 From: Robert Sadza <szagi44@poczta.fm> User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20120614 Thunderbird/13.0.1 MIME-Version: 1.0 Newsgroups: alt.pl.comp.lang.csharp Subject: Re: Linia DTR w RS232 References: <4ffd4d95$0$26701$65785112@news.neostrada.pl> <19j4e8mq5j5ev$.tys91o30q77r$.dlg@40tude.net> <4ffd7233$0$1297$65785112@news.neostrada.pl> <9d06px40mx7u$.bka1q80i5cee.dlg@40tude.net> In-Reply-To: <9d06px40mx7u$.bka1q80i5cee.dlg@40tude.net> Lines: 50 Message-ID: <4ffe7de9$0$1220$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 89.171.8.54 X-Trace: 1342078441 unt-rea-b-01.news.neostrada.pl 1220 89.171.8.54:49980 X-Complaints-To: abuse@news.neostrada.pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit