public FingerDetail analyticFingerData(byte[] bytes) { FingerDetail fingerinfo = new FingerDetail(); string jsonString = string.Empty; if (bytes != null && bytes.Length == 512) { fingerinfo.FingerFileHeader = (int)bytes[0]; fingerinfo.FingerAlgoVersion = (int)bytes[1]; fingerinfo.FingerCollectorCode = (int)bytes[2]; fingerinfo.FingerAlgoDevelopCode = (int)bytes[3]; fingerinfo.FingerRegistResult = (int)bytes[4]; fingerinfo.FingerPosCode = (int)bytes[5]; fingerinfo.FingerPosName = analyticFingerName(fingerinfo.FingerPosCode); fingerinfo.FingerPrintQlty = bytes[6]; fingerinfo.FingerCharacterCount = (int)bytes[19]; fingerinfo.FingerCharacterDateLength = Convert.ToInt64((int)bytes[20] << 8 | (int)bytes[21]); fingerinfo.FingerCenterData = new byte[9]; Array.ConstrainedCopy(bytes, 22, fingerinfo.FingerCenterData, 0, fingerinfo.FingerCenterData.Length); fingerinfo.FingerCharacterDetailData = new byte[fingerinfo.FingerCharacterDateLength]; Array.ConstrainedCopy(bytes, 31, fingerinfo.FingerCharacterDetailData, 0, fingerinfo.FingerCharacterDetailData.Length); } return(fingerinfo); }
public bool ParserFingerBuffer(byte[] bytes) { string jsonString = string.Empty; if (bytes != null && bytes.Length == 1024) { fingerbufFirst = new byte[bytes.Length / 2]; fingerbufScend = new byte[bytes.Length / 2]; Array.ConstrainedCopy(bytes, 0, fingerbufFirst, 0, fingerbufFirst.Length); Array.ConstrainedCopy(bytes, fingerbufScend.Length, fingerbufScend, 0, fingerbufScend.Length); fingerinfoFirst = analyticFingerData(fingerbufFirst); fingerinfoScend = analyticFingerData(fingerbufScend); if (fingerinfoFirst.FingerRegistResult != 1 || fingerinfoScend.FingerRegistResult != 1) { return(false); } else { int code = fingerinfoFirst.FingerPosCode; if (code >= 16 && code <= 20) { _leftFinger = new RicFingerInfo() { FingerBuffer = fingerbufFirst, FingerPosCode = (byte)code, FingerQuality = fingerinfoFirst.FingerPrintQlty } } ; else if (code >= 11 && code <= 15) { _rightFinger = new RicFingerInfo() { FingerBuffer = fingerbufFirst, FingerPosCode = (byte)code, FingerQuality = fingerinfoFirst.FingerPrintQlty } } ; code = fingerinfoScend.FingerPosCode; if (code >= 11 && code <= 15) { _leftFinger = new RicFingerInfo() { FingerBuffer = fingerbufFirst, FingerPosCode = (byte)code, FingerQuality = fingerinfoFirst.FingerPrintQlty } } ; else if (code >= 16 && code <= 20) { _rightFinger = new RicFingerInfo() { FingerBuffer = fingerbufFirst, FingerPosCode = (byte)code, FingerQuality = fingerinfoFirst.FingerPrintQlty } } ; } } return(true); }