mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-12-04 05:28:17 +00:00
all: docs, logging
This commit is contained in:
parent
3db1bf89fa
commit
a235a6b38b
@ -1,6 +1,24 @@
|
|||||||
'''
|
'''
|
||||||
Extremely minimal streaming codec for a subset of protobuf. Supports uint32,
|
Extremely minimal streaming codec for a subset of protobuf. Supports uint32,
|
||||||
bytes, string, embedded message and repeated fields.
|
bytes, string, embedded message and repeated fields.
|
||||||
|
|
||||||
|
For de-sererializing (loading) protobuf types, object with `AsyncReader`
|
||||||
|
interface is required:
|
||||||
|
|
||||||
|
class AsyncReader:
|
||||||
|
async def areadinto(self, buffer):
|
||||||
|
"""
|
||||||
|
Reads `len(buffer)` bytes into `buffer`, or raises `EOFError`.
|
||||||
|
"""
|
||||||
|
|
||||||
|
For serializing (dumping) protobuf types, object with `AsyncWriter` interface is
|
||||||
|
required:
|
||||||
|
|
||||||
|
class AsyncWriter:
|
||||||
|
async def awrite(self, buffer):
|
||||||
|
"""
|
||||||
|
Writes all bytes from `buffer`, or raises `EOFError`.
|
||||||
|
"""
|
||||||
'''
|
'''
|
||||||
|
|
||||||
from micropython import const
|
from micropython import const
|
||||||
|
@ -120,16 +120,19 @@ def _step_task(task, value):
|
|||||||
else:
|
else:
|
||||||
result = task.send(value)
|
result = task.send(value)
|
||||||
except StopIteration as e:
|
except StopIteration as e:
|
||||||
log.debug(__name__, '%s finished', task)
|
if __debug__:
|
||||||
|
log.debug(__name__, 'finish: %s', task)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.exception(__name__, e)
|
if __debug__:
|
||||||
|
log.exception(__name__, e)
|
||||||
else:
|
else:
|
||||||
if isinstance(result, Syscall):
|
if isinstance(result, Syscall):
|
||||||
result.handle(task)
|
result.handle(task)
|
||||||
elif result is None:
|
elif result is None:
|
||||||
schedule_task(task)
|
schedule_task(task)
|
||||||
else:
|
else:
|
||||||
log.error(__name__, '%s is unknown syscall', result)
|
if __debug__:
|
||||||
|
log.error(__name__, 'unknown syscall: %s', result)
|
||||||
if after_step_hook:
|
if after_step_hook:
|
||||||
after_step_hook()
|
after_step_hook()
|
||||||
|
|
||||||
|
@ -46,6 +46,10 @@ class Context:
|
|||||||
'''
|
'''
|
||||||
reader = self.getreader()
|
reader = self.getreader()
|
||||||
|
|
||||||
|
if __debug__:
|
||||||
|
log.debug(__name__, '%s:%x read: %s',
|
||||||
|
self.iface.iface_num(), self.sid, types)
|
||||||
|
|
||||||
await reader.aopen() # wait for the message header
|
await reader.aopen() # wait for the message header
|
||||||
|
|
||||||
# if we got a message with unexpected type, raise the reader via
|
# if we got a message with unexpected type, raise the reader via
|
||||||
@ -63,6 +67,10 @@ class Context:
|
|||||||
'''
|
'''
|
||||||
writer = self.getwriter()
|
writer = self.getwriter()
|
||||||
|
|
||||||
|
if __debug__:
|
||||||
|
log.debug(__name__, '%s:%x write: %s',
|
||||||
|
self.iface.iface_num(), self.sid, msg)
|
||||||
|
|
||||||
# get the message size
|
# get the message size
|
||||||
counter = protobuf.CountingWriter()
|
counter = protobuf.CountingWriter()
|
||||||
await protobuf.dump_message(counter, msg)
|
await protobuf.dump_message(counter, msg)
|
||||||
|
@ -100,7 +100,7 @@ class Writer:
|
|||||||
self.ofs = 0
|
self.ofs = 0
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return '<WriterV2: type=%d size=%dB>' % (self.type, self.size)
|
return '<WriterV1: type=%d size=%dB>' % (self.type, self.size)
|
||||||
|
|
||||||
def setheader(self, mtype, msize):
|
def setheader(self, mtype, msize):
|
||||||
'''
|
'''
|
||||||
|
@ -124,6 +124,9 @@ class Writer:
|
|||||||
self.ofs = 0
|
self.ofs = 0
|
||||||
self.seq = 0
|
self.seq = 0
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return '<WriterV2: type=%d size=%dB>' % (self.type, self.size)
|
||||||
|
|
||||||
def setheader(self, mtype, msize):
|
def setheader(self, mtype, msize):
|
||||||
'''
|
'''
|
||||||
Reset the writer state and load the message header with passed type and
|
Reset the writer state and load the message header with passed type and
|
||||||
|
Loading…
Reference in New Issue
Block a user