Пример #1
0
        private FPData CommonPeekHead(byte[] bytes)
        {
            if (bytes.Length == 12)
            {
                FPData data = this._pkg.PeekHead(bytes);

                if (!this.CheckHead(data))
                {
                    return(null);
                }

                if (this._pkg.IsOneWay(data))
                {
                    data.SetPkgLen(12 + data.GetSS() + data.GetPsize());
                }

                if (this._pkg.IsTwoWay(data))
                {
                    data.SetPkgLen(16 + data.GetSS() + data.GetPsize());
                }

                if (this._pkg.IsAnswer(data))
                {
                    data.SetPkgLen(16 + data.GetPsize());
                }

                data.Bytes = this._pkg.GetByteArrayRange(bytes, 0, bytes.Length - 1);
                return(data);
            }

            return(null);
        }
Пример #2
0
        private FPData CryptoPeekHead(byte[] bytes)
        {
            if (bytes != null && bytes.Length >= 4)
            {
                FPData data = new FPData();
                data.SetPkgLen((int)BitConverter.ToUInt32(this._pkg.GetByteArrayRange(bytes, 0, 3), 0));
                data.Bytes = this._pkg.GetByteArrayRange(bytes, 4, bytes.Length - 1);

                if (data.GetPkgLen() > 8 * 1024 * 1024)
                {
                    return(null);
                }

                return(data);
            }

            return(null);
        }