Article View: alt.pl.comp.lang.csharp
Article #22403Re: Linia DTR w RS232
From: Łukasz 'Maly' Ostrowski
Date: Wed, 11 Jul 2012 14:46
Date: Wed, 11 Jul 2012 14:46
46 lines
2564 bytes
2564 bytes
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.
--
Pozdrawiam,
Łukasz 'Maly' Ostrowski. http://l3v.pl/
Technical Details
Message-ID:
<9d06px40mx7u$.bka1q80i5cee.dlg@40tude.net>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!postnews.google.com!news1.google.com!border1.nntp.dca.giganews.com!border4.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!nx02.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!news.dialog.net.pl!not-for-mailReferences:
<4ffd4d95$0$26701$65785112@news.neostrada.pl> <19j4e8mq5j5ev$.tys91o30q77r$.dlg@40tude.net> <4ffd7233$0$1297$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!postnews.google.com!news1.google.com!border1.nntp.dca.giganews.com!border4.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!nx02.iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!news.dialog.net.pl!not-for-mail From: Łukasz 'Maly' Ostrowski <maly@USUNnemo.pl> Newsgroups: alt.pl.comp.lang.csharp Subject: Re: Linia DTR w RS232 Date: Wed, 11 Jul 2012 16:46:50 +0200 Organization: Acme Lines: 46 Message-ID: <9d06px40mx7u$.bka1q80i5cee.dlg@40tude.net> References: <4ffd4d95$0$26701$65785112@news.neostrada.pl> <19j4e8mq5j5ev$.tys91o30q77r$.dlg@40tude.net> <4ffd7233$0$1297$65785112@news.neostrada.pl> NNTP-Posting-Host: static-78-9-71-129.ssp.dialog.net.pl Mime-Version: 1.0 X-Trace: news.dialog.net.pl 1342018035 22937 78.9.71.129 (11 Jul 2012 14:47:15 GMT) X-Complaints-To: abuse@dialog.net.pl NNTP-Posting-Date: Wed, 11 Jul 2012 14:47:15 +0000 (UTC) User-Agent: 40tude_Dialog/2.0.15.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit