Skip to content

Commit eb36f0f

Browse files
committed
match instruction added
1 parent d15202d commit eb36f0f

File tree

2 files changed

+86
-36
lines changed

2 files changed

+86
-36
lines changed

examples/store.py

Lines changed: 47 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import serial
22
import time
3-
from r305 import genImg, Img2Tz, RegModel, TemplateNum, Store
3+
from r305 import genImg, Img2Tz, RegModel, TemplateNum, Store, Match
44
import sys
55

66
ser = serial.Serial(sys.argv[1])
@@ -59,49 +59,60 @@ def write(callback= None):
5959
print([hex(ord(c)) for c in s])
6060
Img2Tz.parse(s)
6161

62-
63-
64-
#create RegModel
65-
callback("creating reg model")
66-
67-
data = RegModel.getHeader()
62+
data = Match.getHeader()
63+
#print "mathc header is ", [hex(ord(c)) for c in data]
64+
print "the length of match header is ", len(data)
6865
ser.write(bytearray(data));
6966
time.sleep(1)
7067
s = ser.read(ser.inWaiting())
7168
print([hex(ord(c)) for c in s])
72-
RegModel.parse(s)
73-
#getTemplateNumber
74-
callback("getting template number")
69+
match, match_score = Match.parse(s)
70+
if match == 0:
71+
#create RegModel
72+
callback("creating reg model")
7573

76-
data = TemplateNum.getHeader()
77-
ser.write(bytearray(data));
78-
time.sleep(1)
79-
s = ser.read(ser.inWaiting())
80-
print([hex(ord(c)) for c in s])
81-
num = TemplateNum.parse(s)
82-
callback("template num is "+str(num))
83-
print "recived template Number is "+ str(num)
74+
data = RegModel.getHeader()
75+
ser.write(bytearray(data));
76+
time.sleep(1)
77+
s = ser.read(ser.inWaiting())
78+
print([hex(ord(c)) for c in s])
79+
RegModel.parse(s)
80+
#getTemplateNumber
81+
callback("getting template number")
8482

83+
data = TemplateNum.getHeader()
84+
ser.write(bytearray(data));
85+
time.sleep(1)
86+
s = ser.read(ser.inWaiting())
87+
print([hex(ord(c)) for c in s])
88+
num = TemplateNum.parse(s)
89+
callback("template num is "+str(num))
90+
print "recived template Number is "+ str(num)
8591

86-
data = Store.getHeader(0x01,int(num)+1 )
87-
print([hex(c) for c in data])
88-
ser.write(bytearray(data));
89-
time.sleep(1)
90-
s = ser.read(ser.inWaiting())
91-
print([hex(ord(c)) for c in s])
92-
print len(s)
93-
Store.parse(s)
92+
93+
data = Store.getHeader(0x01,int(num)+1 )
94+
print([hex(c) for c in data])
95+
ser.write(bytearray(data));
96+
time.sleep(1)
97+
s = ser.read(ser.inWaiting())
98+
print([hex(ord(c)) for c in s])
99+
print len(s)
100+
Store.parse(s)
94101

95-
#getTemplateNumber
96-
data = TemplateNum.getHeader()
97-
ser.write(bytearray(data));
98-
time.sleep(1)
99-
s = ser.read(ser.inWaiting())
100-
print([hex(ord(c)) for c in s])
101-
num = TemplateNum.parse(s)
102-
callback("template stored at "+str(num + 1))
103-
print "recived template Number is "+ str(num)
104-
return
102+
#getTemplateNumber
103+
data = TemplateNum.getHeader()
104+
ser.write(bytearray(data));
105+
time.sleep(1)
106+
s = ser.read(ser.inWaiting())
107+
print([hex(ord(c)) for c in s])
108+
num = TemplateNum.parse(s)
109+
callback("template stored at "+str(num + 1))
110+
print "recived template Number is "+ str(num)
111+
return
112+
113+
else:
114+
print "the two fingers don't match"
115+
return
105116

106117

107118

r305/Match.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#!/usr/bin/env python
2+
# -*- coding: utf-8 -*-
3+
4+
from R305 import generateHeader, header, address
5+
import struct
6+
7+
# Match intruction is used in R305 fingerprint module to carry out
8+
# precise matching of two templates from CharBuffer1 and CharBuffer2
9+
10+
11+
identifire = {1:"command packet",
12+
2: "data packet",
13+
7:"acknokedge packet",
14+
8:"end of data packte"}
15+
16+
confirmation_codes = {0:"Templates of the two buffers are matching!",
17+
1:"error while reciving packet",
18+
0x08:"templates of the two buffers aren’t matching",
19+
}
20+
21+
def parse(s):
22+
print len(s)
23+
recived_header = s[:2]
24+
recived_address = s[2:6]
25+
recived_id = s[6]
26+
recived_length = s[7:9]
27+
recived_conf_code = s[9]
28+
recived_matching_score = s[10:12]
29+
recived_checksum = s[12:14]
30+
print confirmation_codes[int(ord(recived_conf_code))]
31+
print "accuracy is ", 256*ord(recived_matching_score[0]) +256*ord(recived_matching_score[1])
32+
return int(ord(recived_conf_code)), recived_matching_score
33+
34+
35+
36+
def getHeader():
37+
data = [0x01, 0x00, 0x03, 0x03, 0x00, 0x07 ]
38+
#print "generating header ", [hex(c) for c in generateHeader()+ data], len([hex(c) for c in generateHeader()+ data])
39+
return generateHeader()+ data

0 commit comments

Comments
 (0)