当前位置:编程学习 > C#/ASP.NET >>

Serial通信的例子(二)

答案:public override long Position { get { return 0; } set { } }

        public void SetTimeouts(int ReadIntervalTimeout, int ReadTotalTimeoutMultiplier, int ReadTotalTimeoutConstant,
                                int WriteTotalTimeoutMultiplier, int WriteTotalTimeoutConstant) {
            SerialTimeouts Timeouts = new SerialTimeouts(ReadIntervalTimeout, ReadTotalTimeoutMultiplier, ReadTotalTimeoutConstant,
                                         WriteTotalTimeoutMultiplier, WriteTotalTimeoutConstant);
            unsafe { SetCommTimeouts(m_hFile, &Timeouts); }
        }

        public enum Parity {None, Odd, Even, Mark, Space};
        public enum StopBits {One, OneAndHalf, Two};
        public enum FlowControl {None, XOnXOff, Hardware};

        [StructLayout(LayoutKind.Sequential)]
        public struct DCB {
            public int DCBlength;
            public uint BaudRate;
            public uint Flags;
            public uint fBinary { get { return Flags&0x0001; }
                                  set { Flags = Flags & ~1U | value; } }
            public uint fParity { get { return (Flags>>1)&1; }
                                  set { Flags = Flags & ~(1U << 1) | (value << 1); } }
            public uint fOutxCtsFlow { get { return (Flags>>2)&1; }
                                  set { Flags = Flags & ~(1U << 2) | (value << 2); } }
            public uint fOutxDsrFlow { get { return (Flags>>3)&1; }
                                  set { Flags = Flags & ~(1U << 3) | (value << 3); } }
            public uint fDtrControl { get { return (Flags>>4)&3; }
                                  set { Flags = Flags & ~(3U << 4) | (value << 4); } }
            public uint fDsrSensitivity { get { return (Flags>>6)&1; }
                                  set { Flags = Flags & ~(1U << 6) | (value << 6); } }
            public uint fTXContinueOnXoff { get { return (Flags>>7)&1; }
                                  set { Flags = Flags & ~(1U << 7) | (value << 7); } }
            public uint fOutX { get { return (Flags>>8)&1; }
                                  set { Flags = Flags & ~(1U << 8) | (value << 8); } }
            public uint fInX { get { return (Flags>>9)&1; }
                                  set { Flags = Flags & ~(1U << 9) | (value << 9); } }
            public uint fErrorChar { get { return (Flags>>10)&1; }
                                  set { Flags = Flags & ~(1U << 10) | (value << 10); } }
            public uint fNull { get { return (Flags>>11)&1; }
                                  set { Flags = Flags & ~(1U << 11) | (value << 11); } }
            public uint fRtsControl { get { return (Flags>>12)&3; }
                                  set { Flags = Flags & ~(3U << 12) | (value << 12); } }
            public uint fAbortOnError { get { return (Flags>>13)&1; }
                                  set { Flags = Flags & ~(1U << 13) | (value << 13); } }
            public ushort wReserved;
            public ushort XonLim;
            public ushort XoffLim;
            public byte ByteSize;
            public byte Parity;
            public byte StopBits;
            public sbyte XonChar;
            public sbyte XoffChar;
    &

上一个:用 C# 编写一个停放在任务栏上的图标程序
下一个:Visual C#如何使用Active X组件

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,