|
|
|
@ -128,10 +128,29 @@ STATIC mp_obj_t mod_trezorio_HID_write(mp_obj_t self, mp_obj_t msg) {
|
|
|
|
|
STATIC MP_DEFINE_CONST_FUN_OBJ_2(mod_trezorio_HID_write_obj,
|
|
|
|
|
mod_trezorio_HID_write);
|
|
|
|
|
|
|
|
|
|
/// def write_blocking(self, msg: bytes, timeout_ms: int) -> int:
|
|
|
|
|
/// """
|
|
|
|
|
/// Sends message using USB HID (device) or UDP (emulator).
|
|
|
|
|
/// """
|
|
|
|
|
STATIC mp_obj_t mod_trezorio_HID_write_blocking(mp_obj_t self, mp_obj_t msg,
|
|
|
|
|
mp_obj_t timeout_ms) {
|
|
|
|
|
mp_obj_HID_t *o = MP_OBJ_TO_PTR(self);
|
|
|
|
|
mp_buffer_info_t buf;
|
|
|
|
|
mp_get_buffer_raise(msg, &buf, MP_BUFFER_READ);
|
|
|
|
|
uint32_t timeout = trezor_obj_get_uint(timeout_ms);
|
|
|
|
|
ssize_t r =
|
|
|
|
|
usb_hid_write_blocking(o->info.iface_num, buf.buf, buf.len, timeout);
|
|
|
|
|
return MP_OBJ_NEW_SMALL_INT(r);
|
|
|
|
|
}
|
|
|
|
|
STATIC MP_DEFINE_CONST_FUN_OBJ_3(mod_trezorio_HID_write_blocking_obj,
|
|
|
|
|
mod_trezorio_HID_write_blocking);
|
|
|
|
|
|
|
|
|
|
STATIC const mp_rom_map_elem_t mod_trezorio_HID_locals_dict_table[] = {
|
|
|
|
|
{MP_ROM_QSTR(MP_QSTR_iface_num),
|
|
|
|
|
MP_ROM_PTR(&mod_trezorio_HID_iface_num_obj)},
|
|
|
|
|
{MP_ROM_QSTR(MP_QSTR_write), MP_ROM_PTR(&mod_trezorio_HID_write_obj)},
|
|
|
|
|
{MP_ROM_QSTR(MP_QSTR_write_blocking),
|
|
|
|
|
MP_ROM_PTR(&mod_trezorio_HID_write_blocking_obj)},
|
|
|
|
|
};
|
|
|
|
|
STATIC MP_DEFINE_CONST_DICT(mod_trezorio_HID_locals_dict,
|
|
|
|
|
mod_trezorio_HID_locals_dict_table);
|
|
|
|
|