Esempio n. 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QRCodeVersion"/> struct.
 /// </summary>
 /// <param name="versionNum">The version num.</param>
 /// <param name="totalCodewords">The total codewords.</param>
 /// <param name="ecblocksL">The ecblocks L.</param>
 /// <param name="ecblocksM">The ecblocks M.</param>
 /// <param name="ecblocksQ">The ecblocks Q.</param>
 /// <param name="ecblocksH">The ecblocks H.</param>
 /// <remarks></remarks>
 internal QRCodeVersion(int versionNum, int totalCodewords, ErrorCorrectionBlocks ecblocksL,
                        ErrorCorrectionBlocks ecblocksM, ErrorCorrectionBlocks ecblocksQ,
                        ErrorCorrectionBlocks ecblocksH)
     : this()
 {
     VersionNum = versionNum;
     TotalCodewords = totalCodewords;
     m_ECBlocks = new[] {ecblocksL, ecblocksM, ecblocksQ, ecblocksH};
     DimensionForVersion = 17 + versionNum*4;
 }
Esempio n. 2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QRCodeVersion"/> struct.
 /// </summary>
 /// <param name="versionNum">The version num.</param>
 /// <param name="totalCodewords">The total codewords.</param>
 /// <param name="ecblocksL">The ecblocks L.</param>
 /// <param name="ecblocksM">The ecblocks M.</param>
 /// <param name="ecblocksQ">The ecblocks Q.</param>
 /// <param name="ecblocksH">The ecblocks H.</param>
 /// <remarks></remarks>
 internal QRCodeVersion(int versionNum, int totalCodewords, ErrorCorrectionBlocks ecblocksL,
                        ErrorCorrectionBlocks ecblocksM, ErrorCorrectionBlocks ecblocksQ,
                        ErrorCorrectionBlocks ecblocksH)
     : this()
 {
     VersionNum          = versionNum;
     TotalCodewords      = totalCodewords;
     m_ECBlocks          = new[] { ecblocksL, ecblocksM, ecblocksQ, ecblocksH };
     DimensionForVersion = 17 + versionNum * 4;
 }
Esempio n. 3
0
        /// <summary>
        /// Fills the VC struct.
        /// </summary>
        /// <param name="versionNum">The version num.</param>
        /// <param name="level">The level.</param>
        /// <param name="encodingName">Name of the encoding.</param>
        /// <returns></returns>
        /// <remarks></remarks>
        private static VersionControlStruct FillVCStruct(int versionNum, ErrorCorrectionLevel level, string encodingName)
        {
            if (versionNum < 1 || versionNum > 40)
            {
                throw new InvalidOperationException(string.Format("Unexpected version number: {0}", versionNum));
            }

            var vcStruct = new VersionControlStruct();

            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;

            var vcDetail = new VersionDetail(version, numTotalBytes, numDataBytes, numECBlocks);

            vcStruct.VersionDetail = vcDetail;
            return(vcStruct);
        }