public void Return32BitHeaderChecksumAsByte(byte[] expected)
        {
            var result = CRCHelper.Compute32BitHeaderAsArray((int)HeaderType.ZFILE, 0, 0, 0, 0, CRC32Calculator);

            for (int i = 0; i < expected.Length; i++)
            {
                Assert.True(result[i] == expected[i]);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Build 32 bit binary header.
        ///
        /// A "32 bit CRC" Binary header is similar to a Binary Header, except the
        /// ZBIN(A) character is replaced by a ZBIN32(C) character, and four
        /// characters of CRC are sent.
        /// 0 or more binary data subpackets with 32 bit CRC will follow depending
        /// on the frame type.
        /// * ZDLE C TYPE F3/P0 F2/P1 F1/P2 F0/P3 CRC-1 CRC-2 CRC-3 CRC-4
        /// </summary>
        /// <param name="type"></param>
        /// <param name="p0"></param>
        /// <param name="p1"></param>
        /// <param name="p2"></param>
        /// <param name="p3"></param>
        /// <returns></returns>
        public static string Build32BitBinHeader(HeaderType type, ZFILEConversionOption f0, ZFILEManagementOption f1, ZFILETransportOption f2, ZFILEExtendedOptions f3, CRC32 crcCalculator)
        {
            var sb = new StringBuilder();

            sb.Append(Bin32BitHeader);
            sb.Append(((char)(int)type).ToString());
            sb.Append(((char)f3).ToString());
            sb.Append(((char)f2).ToString());
            sb.Append(((char)f1).ToString());
            sb.Append(((char)f0).ToString());

            var crc = CRCHelper.Compute32BitHeaderAsArray((int)type, (int)f3, (int)f2, (int)f1, (int)f0, crcCalculator);

            foreach (char c in crc)
            {
                sb.Append(c);
            }

            var command = sb.ToString();

            return(command);
        }
Esempio n. 3
0
        /// <summary>
        /// Build 32 bit data header
        /// </summary>
        /// <param name="type"></param>
        /// <param name="p0"></param>
        /// <param name="p1"></param>
        /// <param name="p2"></param>
        /// <param name="p3"></param>
        /// <returns></returns>
        public static string Build32BitDataHeader(HeaderType type, int p0, int p1, int p2, int p3, CRC32 crcCalculator)
        {
            var sb = new StringBuilder();

            sb.Append(Bin32BitHeader);
            sb.Append((char)ControlBytes.ZDLE);
            sb.Append('J');
            sb.Append(((char)p0).ToString());
            sb.Append(((char)p1).ToString());
            sb.Append(((char)p2).ToString());
            sb.Append(((char)p3).ToString());

            var crc = CRCHelper.Compute32BitHeaderAsArray((int)type, p0, p1, p2, p3, crcCalculator);

            foreach (char c in crc)
            {
                sb.Append(c);
            }

            var command = sb.ToString();

            return(command);
        }