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]); } }
/// <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); }
/// <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); }