Beispiel #1
0
        private FingerprintUnitStatus(string data)
        {
            var subcode = data.Substring(0, 2);
            if (subcode != "M0")
                throw new InvalidDataException(
                    string.Format("Expected sub-code of \"{0}\" but got \"{1}\".", "MO", subcode));

            _comparisonMode = (FingerprintComparisonModes)data[2];

            _kernelVersion = data.Substring(3, 12);

            if (!int.TryParse(data.Substring(15, 5), NumberStyles.None, CultureInfo.InvariantCulture, out _loadedTemplates))
                throw new InvalidDataException("Couldn't parse number of templates loaded from fingerprint status data.");

            // character 20 is a hardcoded slash that we can ignore

            if (!int.TryParse(data.Substring(21, 5), NumberStyles.None, CultureInfo.InvariantCulture, out _maximumTemplates))
                throw new InvalidDataException("Couldn't parse maximum number of templates from fingerprint status data.");

            _fingerprintUnitMode = (FingerprintUnitModes)data[26];

            byte b;
            if (!byte.TryParse(data.Substring(27, 1), NumberStyles.None, CultureInfo.InvariantCulture, out b))
                throw new InvalidDataException("Couldn't parse global threshold from fingerprint status data.");
            if (b < 1 || b > 5)
                throw new InvalidDataException("Fingerprint Global Threshold should be between 1 and 5.");
            _globalThreshold = (FingerprintThreshold)b;

            _enrollMode = (FingerprintEnrollModes) data[28];
        }
Beispiel #2
0
        private FingerprintUnitStatus(string data)
        {
            var subcode = data.Substring(0, 2);

            if (subcode != "M0")
            {
                throw new InvalidDataException(
                          string.Format("Expected sub-code of \"{0}\" but got \"{1}\".", "MO", subcode));
            }

            _comparisonMode = (FingerprintComparisonModes)data[2];

            _kernelVersion = data.Substring(3, 12);

            if (!int.TryParse(data.Substring(15, 5), NumberStyles.None, CultureInfo.InvariantCulture, out _loadedTemplates))
            {
                throw new InvalidDataException("Couldn't parse number of templates loaded from fingerprint status data.");
            }

            // character 20 is a hardcoded slash that we can ignore

            if (!int.TryParse(data.Substring(21, 5), NumberStyles.None, CultureInfo.InvariantCulture, out _maximumTemplates))
            {
                throw new InvalidDataException("Couldn't parse maximum number of templates from fingerprint status data.");
            }

            _fingerprintUnitMode = (FingerprintUnitModes)data[26];

            byte b;

            if (!byte.TryParse(data.Substring(27, 1), NumberStyles.None, CultureInfo.InvariantCulture, out b))
            {
                throw new InvalidDataException("Couldn't parse global threshold from fingerprint status data.");
            }
            if (b < 1 || b > 5)
            {
                throw new InvalidDataException("Fingerprint Global Threshold should be between 1 and 5.");
            }
            _globalThreshold = (FingerprintThreshold)b;

            _enrollMode = (FingerprintEnrollModes)data[28];
        }