/// <param name="ecblocks1">L</param> /// <param name="ecblocks2">M</param> /// <param name="ecblocks3">Q</param> /// <param name="ecblocks4">H</param> internal QRCodeVersion(int versionNum, int totalCodewords, ErrorCorrectionBlocks ecblocksL, ErrorCorrectionBlocks ecblocksM, ErrorCorrectionBlocks ecblocksQ, ErrorCorrectionBlocks ecblocksH) : this() { this.VersionNum = versionNum; this.TotalCodewords = totalCodewords; this.m_ECBlocks = new ErrorCorrectionBlocks[] { ecblocksL, ecblocksM, ecblocksQ, ecblocksH }; this.DimensionForVersion = 17 + versionNum * 4; }
internal QRCodeVersion(int versionNum, int totalCodewords, ErrorCorrectionBlocks ecblocksL, ErrorCorrectionBlocks ecblocksM, ErrorCorrectionBlocks ecblocksQ, ErrorCorrectionBlocks ecblocksH) : this() { VersionNum = versionNum; TotalCodewords = totalCodewords; ECBlocks = new ErrorCorrectionBlocks[] { ecblocksL, ecblocksM, ecblocksQ, ecblocksH }; DimensionForVersion = 17 + (versionNum * 4); }
/// <param name="ecblocks1">L</param> /// <param name="ecblocks2">M</param> /// <param name="ecblocks3">Q</param> /// <param name="ecblocks4">H</param> internal QRCodeVersion(int versionNum, int totalCodewords, ErrorCorrectionBlocks ecblocksL, ErrorCorrectionBlocks ecblocksM, ErrorCorrectionBlocks ecblocksQ, ErrorCorrectionBlocks ecblocksH) : this() { this.VersionNum = versionNum; this.TotalCodewords = totalCodewords; this.m_ECBlocks = new ErrorCorrectionBlocks[]{ecblocksL, ecblocksM, ecblocksQ, ecblocksH}; this.DimensionForVersion = 17 + versionNum * 4; }
public static VersionTableTestProperties GetVersionInfo(int versionNum, ErrorCorrectionLevel level) { Version version = VersionTable.GetVersionByNum(versionNum); int totalNumCodewords = version.TotalCodewords; ErrorCorrectionBlocks ecBlocks = version.GetECBlocksByLevel(level); int numECCodewords = ecBlocks.NumErrorCorrectionCodewards; string ecBlockString = ErrorCorrectionBlocksToString(ecBlocks); return(new VersionTableTestProperties(versionNum, totalNumCodewords, level, numECCodewords, ecBlockString)); }
private static string ErrorCorrectionBlocksToString(ErrorCorrectionBlocks ecBlocks) { ErrorCorrectionBlock[] ecBlock = ecBlocks.GetECBlocks(); string returnValue = ""; foreach (ErrorCorrectionBlock ecb in ecBlock) { returnValue = string.Join(s_Separator, returnValue, ecb.NumErrorCorrectionBlock, ecb.NumDataCodewords); } return(returnValue); }
private static VersionControlStruct FillVCStruct(int versionNum, ErrorCorrectionLevel level) { if (versionNum is < 1 or > 40) { throw new InvalidOperationException($"Unexpected version number: {versionNum}"); } VersionControlStruct vcStruct = new(); int version = versionNum; QRCodeVersion versionData = VersionTable.GetVersionByNum(versionNum); int numTotalBytes = versionData.TotalCodewords; ErrorCorrectionBlocks ecBlocks = versionData.GetECBlocksByLevel(level); int numDataBytes = numTotalBytes - ecBlocks.NumErrorCorrectionCodewards; int numECBlocks = ecBlocks.NumBlocks; VersionDetail vcDetail = new(version, numTotalBytes, numDataBytes, numECBlocks); vcStruct.VersionDetail = vcDetail; return(vcStruct); }