Esempio n. 1
0
 /// <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;
 }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
 /// <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;
 }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
    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);
    }