Skip to content

Commit 425f4be

Browse files
Merge pull request #3 from stitchesnburns/stitchesnburns-patch-1-1
fixed read_templates() rounding up
2 parents 1e343c3 + ef52314 commit 425f4be

File tree

1 file changed

+30
-28
lines changed

1 file changed

+30
-28
lines changed

adafruit_fingerprint.py

Lines changed: 30 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -206,8 +206,8 @@ def get_fpdata(self, buffer='char', slot=1):
206206
raise RuntimeError('Uknown buffer type')
207207
if self._get_packet(12)[0] == 0:
208208
res = self._get_data(9)
209-
#print('datasize: ' + str(len(res)))
210-
#print(res)
209+
# print('datasize: ' + str(len(res)))
210+
# print(res)
211211
return res
212212

213213
def send_fpdata(self, data, buffer='char', slot=1):
@@ -224,8 +224,8 @@ def send_fpdata(self, data, buffer='char', slot=1):
224224
raise RuntimeError('Uknown buffer type')
225225
if self._get_packet(12)[0] == 0:
226226
self._send_data(data)
227-
#print('datasize: ' + str(len(res)))
228-
#print(res)
227+
# print('datasize: ' + str(len(res)))
228+
# print(res)
229229
return True
230230

231231
def empty_library(self):
@@ -236,11 +236,13 @@ def empty_library(self):
236236

237237
def read_templates(self):
238238
"""Requests the sensor to list of all template locations in use and
239-
stores them in self.templates. Returns the packet error code or OK success"""
239+
stores them in self.templates. Returns the packet error code or
240+
OK success"""
241+
import math
240242
self.templates = []
241243
self.read_sysparam()
242244
temp_r = [0x0c, ]
243-
for j in range(int(self.library_size/256)):
245+
for j in range(math.ceil(self.library_size/256)):
244246
self._send_packet([_TEMPLATEREAD, j])
245247
r = self._get_packet(44)
246248
if r[0] == OK:
@@ -311,18 +313,18 @@ def _get_data(self, expected):
311313
and _ENDDATAPACKET. Alternate method for getting data such
312314
as fingerprint image, etc. Returns the data payload."""
313315
res = self._uart.read(expected)
314-
#print("Got", res)
316+
# print("Got", res)
315317
if (not res) or (len(res) != expected):
316318
raise RuntimeError('Failed to read data from sensor')
317319

318320
# first two bytes are start code
319321
start = struct.unpack('>H', res[0:2])[0]
320-
#print(start)
322+
# print(start)
321323
if start != _STARTCODE:
322324
raise RuntimeError('Incorrect packet data')
323325
# next 4 bytes are address
324326
addr = [i for i in res[2:6]]
325-
#print(addr)
327+
# print(addr)
326328
if addr != self.address:
327329
raise RuntimeError('Incorrect address')
328330

@@ -339,15 +341,15 @@ def _get_data(self, expected):
339341
res = self._uart.read(length-2)
340342
# todo: we should really inspect the headers and checksum
341343
reply = [i for i in res[0:length]]
342-
self._uart.read(2) # disregard checksum but we really shouldn't
344+
self._uart.read(2) # disregard checksum but we really shouldn't
343345
reply += self._get_data(9)
344346
elif packet_type == _ENDDATAPACKET:
345347
res = self._uart.read(length-2)
346348
# todo: we should really inspect the headers and checksum
347349
reply = [i for i in res[0:length]]
348-
self._uart.read(2) # disregard checksum but we really shouldn't
350+
self._uart.read(2) # disregard checksum but we really shouldn't
349351
print(len(reply))
350-
#print(reply)
352+
# print(reply)
351353
return reply
352354

353355
def _send_packet(self, data):
@@ -384,57 +386,57 @@ def _send_data(self, data):
384386
for i in range(int(len(data) / (data_length - 2))):
385387
start = i * (data_length - 2)
386388
end = (i + 1) * (data_length - 2)
387-
#print(start)
388-
#print(end)
389-
#print(i)
389+
# print(start)
390+
# print(end)
391+
# print(i)
390392

391393
packet = [_STARTCODE >> 8, _STARTCODE & 0xFF]
392394
packet = packet + self.address
393395
packet.append(_DATAPACKET)
394396
length = len(data[start:end]) + 2
395-
#print(length)
397+
# print(length)
396398
packet.append(length >> 8)
397399
packet.append(length & 0xFF)
398400
checksum = _DATAPACKET + (length >> 8) + (length & 0xFF)
399401

400402
for j in range(len(data[start:end])):
401403
packet.append(data[j])
402-
#packet.append(struct.pack('@B', data[j]))
404+
# packet.append(struct.pack('@B', data[j]))
403405
checksum += data[j]
404406

405407
packet.append(checksum >> 8)
406408
packet.append(checksum & 0xFF)
407409

408-
#print("Sending: ", [hex(i) for i in packet])
409-
#self._uart.write(bytearray(packet))
410+
# print("Sending: ", [hex(i) for i in packet])
411+
# self._uart.write(bytearray(packet))
410412
self._uart.write(packet)
411-
#print(i)
413+
# print(i)
412414

413415
i += 1
414416
start = i * (data_length - 2)
415417
end = (i + 1) * (data_length - 2)
416-
#print(start)
417-
#print(end)
418-
#print(i)
418+
# print(start)
419+
# print(end)
420+
# print(i)
419421

420422
packet = [_STARTCODE >> 8, _STARTCODE & 0xFF]
421423
packet = packet + self.address
422424
packet.append(_ENDDATAPACKET)
423425
length = len(data[start:end]) + 2
424-
#print(length)
426+
# print(length)
425427
packet.append(length >> 8)
426428
packet.append(length & 0xFF)
427429
checksum = _DATAPACKET + (length >> 8) + (length & 0xFF)
428430

429431
for j in range(len(data[start:end])):
430432
packet.append(data[j])
431-
#packet.append(struct.pack('@B', data[j]))
433+
# packet.append(struct.pack('@B', data[j]))
432434
checksum += data[j]
433435

434436
packet.append(checksum >> 8)
435437
packet.append(checksum & 0xFF)
436438

437-
#print("Sending: ", [hex(i) for i in packet])
438-
#self._uart.write(bytearray(packet))
439+
# print("Sending: ", [hex(i) for i in packet])
440+
# self._uart.write(bytearray(packet))
439441
self._uart.write(packet)
440-
#print(i)
442+
# print(i)

0 commit comments

Comments
 (0)