Ejemplo n.º 1
0
        public static Memory <byte> TranslateToMemory(S7CommSetupAckDataDatagram datagram)
        {
            var result = S7AckDataDatagram.TranslateToMemory(datagram.Header);

            S7CommSetupParameterDatagram.TranslateToMemory(datagram.Parameter, result.Slice(datagram.Header.GetParameterOffset()));
            return(result);
        }
Ejemplo n.º 2
0
        public static IMemoryOwner <byte> TranslateToMemory(S7CommSetupAckDataDatagram datagram, out int memoryLength)
        {
            var result = S7AckDataDatagram.TranslateToMemory(datagram.Header, out memoryLength);
            var take   = memoryLength - datagram.Header.GetParameterOffset();

            S7CommSetupParameterDatagram.TranslateToMemory(datagram.Parameter, result.Memory.Slice(datagram.Header.GetParameterOffset(), take));
            return(result);
        }
Ejemplo n.º 3
0
        public bool Correlate(S7CommSetupDatagram o1, S7CommSetupAckDataDatagram o2)
        {
            //Test ack
            if (o1.Header.RedundancyIdentification == o2.Header.Header.RedundancyIdentification)
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 4
0
        public static S7CommSetupAckDataDatagram TranslateFromMemory(Memory <byte> data)
        {
            var result = new S7CommSetupAckDataDatagram
            {
                Header = S7AckDataDatagram.TranslateFromMemory(data),
            };

            result.Parameter = S7CommSetupParameterDatagram.TranslateFromMemory(data.Slice(result.Header.GetParameterOffset()));
            return(result);
        }
Ejemplo n.º 5
0
        public static S7CommSetupAckDataDatagram BuildFrom(SiemensPlcProtocolContext context, S7CommSetupDatagram incoming)
        {
            context.MaxAmQCalling = Math.Min(incoming.Parameter.MaxAmQCalling, context.MaxAmQCalling);
            context.MaxAmQCalled  = Math.Min(incoming.Parameter.MaxAmQCalled, context.MaxAmQCalled);
            context.PduSize       = Math.Min(incoming.Parameter.PduLength, context.PduSize);


            //TODO we need a parameter for the UnitId
            var result = new S7CommSetupAckDataDatagram
            {
                Parameter = new S7CommSetupParameterDatagram
                {
                    MaxAmQCalling = context.MaxAmQCalling,
                    MaxAmQCalled  = context.MaxAmQCalled,
                    PduLength     = context.PduSize
                }
            };

            result.Header.Header.ParamLength = 8;
            return(result);
        }