示例#1
0
            public CS101Slave(SerialPort port, LinkLayerParameters parameters)
            {
                this.port           = port;
                linkLayerParameters = parameters;

                transceiver = new SerialTransceiverFT12(port, linkLayerParameters, DebugLog);

                initialized = false;

                fileServer = new FileServer(this, GetAvailableFiles(), DebugLog);
            }
示例#2
0
        public CS101MasterUnbalanced(SerialPort port, LinkLayerParameters llParameters)
        {
            this.linkLayerParameters = llParameters;
            this.transceiver         = new SerialTransceiverFT12(port, linkLayerParameters, DebugLog);

            linkLayer = new LinkLayer(buffer, linkLayerParameters, transceiver, DebugLog);
            linkLayer.LinkLayerMode = LinkLayerMode.UNBALANCED;

            linkLayerUnbalanced = new PrimaryLinkLayerUnbalanced(linkLayer, this, DebugLog);
            linkLayer.SetPrimaryLinkLayer(linkLayerUnbalanced);

            this.fileClient = null;
        }
示例#3
0
            /// <summary>
            /// Initializes a new instance of the <see cref="lib60870.CS101.CS101Slave"/> class.
            /// </summary>
            /// <param name="serialStream">A stream instance (e.g. TcpClientVirtualSerialPort or TcpServerVirtualSerialPort.</param>
            /// <param name="parameters">link layer parameters</param>
            public CS101Slave(Stream serialStream, LinkLayerParameters parameters = null)
            {
                linkLayerParameters = parameters;

                if (linkLayerParameters == null)
                {
                    linkLayerParameters = new LinkLayerParameters();
                }

                transceiver = new SerialTransceiverFT12(serialStream, linkLayerParameters, DebugLog);

                initialized = false;

                fileServer = new FileServer(this, GetAvailableFiles(), DebugLog);
            }
示例#4
0
        public CS101MasterBalanced(SerialPort port, LinkLayerParameters llParameters)
        {
            this.port = port;
            this.linkLayerParameters = llParameters;
            this.transceiver         = new SerialTransceiverFT12(port, linkLayerParameters, DebugLog);

            linkLayer = new LinkLayer(buffer, linkLayerParameters, transceiver, DebugLog);

            primaryLinkLayer = new PrimaryLinkLayerBalanced(linkLayer, GetUserData, DebugLog);

            linkLayer.SetPrimaryLinkLayer(primaryLinkLayer);
            linkLayer.SetSecondaryLinkLayer(new SecondaryLinkLayerBalanced(linkLayer, 0, HandleApplicationLayer, DebugLog));

            this.fileClient = null;
        }
示例#5
0
        public CS101Master(SerialPort port, LinkLayerMode mode, LinkLayerParameters llParams = null, ApplicationLayerParameters alParams = null)
        {
            if (llParams == null)
            {
                this.linkLayerParameters = new LinkLayerParameters();
            }
            else
            {
                this.linkLayerParameters = llParams;
            }

            if (alParams == null)
            {
                this.appLayerParameters = new ApplicationLayerParameters();
            }
            else
            {
                this.appLayerParameters = alParams;
            }


            this.transceiver = new SerialTransceiverFT12(port, linkLayerParameters, DebugLog);

            linkLayer = new LinkLayer(buffer, linkLayerParameters, transceiver, DebugLog);
            linkLayer.LinkLayerMode = mode;

            if (mode == LinkLayerMode.BALANCED)
            {
                linkLayer.DIR = true;

                primaryLinkLayer = new PrimaryLinkLayerBalanced(linkLayer, GetUserData, DebugLog);

                linkLayer.SetPrimaryLinkLayer(primaryLinkLayer);
                secondaryLinkLayer = new SecondaryLinkLayerBalanced(linkLayer, 0, HandleApplicationLayer, DebugLog);
                linkLayer.SetSecondaryLinkLayer(secondaryLinkLayer);

                userDataQueue = new Queue <BufferFrame>();
            }
            else
            {
                linkLayerUnbalanced = new PrimaryLinkLayerUnbalanced(linkLayer, this, DebugLog);
                linkLayer.SetPrimaryLinkLayer(linkLayerUnbalanced);
            }

            this.port = port;

            this.fileClient = null;
        }