🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.comp.lang.csharp
Article #22403

Re: Linia DTR w RS232

#22403
From: Łukasz 'Maly' Ostrowski
Date: Wed, 11 Jul 2012 14:46
46 lines
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-mail
References: <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