use progress_bar_show when possible
This commit is contained in:
parent
020cef6706
commit
645a172801
@ -102,7 +102,7 @@ class UserAuthorizedAction:
|
||||
|
||||
# do nothing more for HSM case: msg will be available over USB
|
||||
if hsm_active:
|
||||
dis.progress_bar(1) # finish the Validating... or whatever was up
|
||||
dis.progress_bar_show(1) # finish the Validating... or whatever was up
|
||||
return
|
||||
|
||||
# may be a user-abort waiting, but we want to see error msg; so clear it
|
||||
@ -660,6 +660,7 @@ class ApproveTransaction(UserAuthorizedAction):
|
||||
dis.progress_bar_show(0.66)
|
||||
self.psbt.consider_outputs()
|
||||
self.psbt.consider_dangerous_sighash()
|
||||
|
||||
dis.progress_bar_show(0.85)
|
||||
except FraudulentChangeOutput as exc:
|
||||
print('FraudulentChangeOutput: ' + exc.args[0])
|
||||
@ -731,6 +732,7 @@ class ApproveTransaction(UserAuthorizedAction):
|
||||
ch = await ux_show_story(msg, title="OK TO SEND?")
|
||||
else:
|
||||
ch = await hsm_active.approve_transaction(self.psbt, self.psbt_sha, msg.getvalue())
|
||||
dis.progress_bar_show(1) # finish the Validating...
|
||||
|
||||
except MemoryError:
|
||||
# recovery? maybe.
|
||||
@ -1295,7 +1297,7 @@ class ShowAddressBase(UserAuthorizedAction):
|
||||
break
|
||||
else:
|
||||
# finish the Wait...
|
||||
dis.progress_bar(1)
|
||||
dis.progress_bar_show(1)
|
||||
if self.restore_menu:
|
||||
self.pop_menu()
|
||||
else:
|
||||
|
||||
@ -180,8 +180,7 @@ class Display:
|
||||
if utime.ticks_diff(utime.ticks_ms(), self.last_bar_update) < 100:
|
||||
return
|
||||
self.last_bar_update = utime.ticks_ms()
|
||||
self.progress_bar(done / total)
|
||||
self.show()
|
||||
self.progress_bar_show(done / total)
|
||||
|
||||
def progress_bar_show(self, percent):
|
||||
# useful as a callback
|
||||
|
||||
@ -233,8 +233,7 @@ class LoginUX:
|
||||
dis.text(None, 40, "(%d failures)" % pa.num_fails)
|
||||
|
||||
while pa.is_delay_needed():
|
||||
dis.progress_bar(pa.delay_achieved / pa.delay_required)
|
||||
dis.show()
|
||||
dis.progress_bar_show(pa.delay_achieved / pa.delay_required)
|
||||
|
||||
pa.delay()
|
||||
|
||||
|
||||
@ -21,6 +21,8 @@ if 0:
|
||||
import ckcc
|
||||
ckcc.vcp_enabled(True)
|
||||
from h import *
|
||||
if 1:
|
||||
from h import dfu
|
||||
if 0:
|
||||
raise SystemExit
|
||||
|
||||
|
||||
@ -4,6 +4,7 @@ freeze_as_mpy('', [
|
||||
'mk4.py',
|
||||
'q1.py',
|
||||
'keyboard.py',
|
||||
'scanner.py',
|
||||
'lcd_display.py',
|
||||
'vdisk.py',
|
||||
'nfc.py',
|
||||
|
||||
58
shared/scanner.py
Normal file
58
shared/scanner.py
Normal file
@ -0,0 +1,58 @@
|
||||
# (c) Copyright 2023 by Coinkite Inc. This file is covered by license found in COPYING-CC.
|
||||
#
|
||||
# scanner.py - QR scanner submodule on Q1 (only)
|
||||
#
|
||||
import utime
|
||||
from struct import pack
|
||||
from utils import B2A
|
||||
|
||||
def wrap(body, fid=0):
|
||||
# wrap w/ their weird framing
|
||||
# LATER: USB? serial port doesn't need this! just send the string!
|
||||
body = body if isinstance(body, bytes) else body.encode('ascii')
|
||||
rv = pack(b'>bH', fid, len(body)) + body
|
||||
bcc = 0
|
||||
for c in rv:
|
||||
bcc ^= c
|
||||
return b'\x5A' + rv + bytes([bcc]) + b'\xA5' # STX ... ETX
|
||||
|
||||
class QRScanner:
|
||||
|
||||
def __init__(self):
|
||||
from machine import UART, Pin
|
||||
self.serial = UART(2, 9600)
|
||||
self.reset = Pin('QR_RESET', Pin.OUT_OD)
|
||||
self.trigger = Pin('QR_TRIG', Pin.OUT_OD)
|
||||
|
||||
# trigger/reset are active low (open drain)
|
||||
self.trigger(1)
|
||||
|
||||
self.reset(0)
|
||||
utime.sleep_ms(10)
|
||||
self.reset(1)
|
||||
|
||||
def scan(self):
|
||||
if q.trigger() == 0:
|
||||
# need to release/re-press
|
||||
q.trigger(1)
|
||||
utime.sleep_ms(100)
|
||||
q.trigger(0);
|
||||
|
||||
def rx(self):
|
||||
# untested
|
||||
return self.serial.read()
|
||||
|
||||
def tx(self, m):
|
||||
# not working
|
||||
x = wrap(m)
|
||||
print('Sending: ' + B2A(x))
|
||||
self.serial.write(x)
|
||||
|
||||
def test(self):
|
||||
m = bytes([90, 0, 0, 10, 95, 67, 77, 68, 95, 48, 48, 48, 49, 18, 165])
|
||||
self.serial.write(m)
|
||||
return self.serial.read()
|
||||
|
||||
q = QRScanner()
|
||||
|
||||
# EOF
|
||||
Loading…
Reference in New Issue
Block a user