def list_files(applet_id, verbose): if applet_id is None: applet_id = AppletIds.ALPHAWORD with Device.connect() as device: files = file.list_files(device, applet_id) if not verbose: files = [{'name': f.name, 'space': f.space, 'alloc_size': f.alloc_size} for f in files] return files
def read_all_files(applet_id, path, name_format): if applet_id is None: applet_id = AppletIds.ALPHAWORD with Device.connect() as device: files = file.list_files(device, applet_id) for file_attrs in files: text = read_text(device, applet_id, file_attrs) if len(text): write_file_with_format(file_attrs, text, path, name_format)
def clear_file(applet_id, file_name_or_space): if applet_id is None: applet_id = AppletIds.ALPHAWORD with Device.connect() as device: file_attrs = file.get_file_by_name_or_space(device, applet_id, file_name_or_space) if file_attrs: file.clear_file(device, applet_id, file_attrs.file_index) else: raise NeotoolsError('File not found')
def write_file(file_name_or_space, text): with Device.connect() as device: raw_bytes = import_text_to_neo(text) device.dialogue_start() file_attrs = file.get_file_by_name_or_space(device, AppletIds.ALPHAWORD, file_name_or_space) if file_attrs: file.raw_write_file(device, raw_bytes, AppletIds.ALPHAWORD, file_attrs.file_index, True) else: file.create_file(device, file_name_or_space, 'write', text, AppletIds.ALPHAWORD) device.dialogue_end()
def read_file(applet_id, file_name_or_space, path, name_format): if applet_id is None: applet_id = AppletIds.ALPHAWORD with Device.connect() as device: file_attrs = file.get_file_by_name_or_space(device, applet_id, file_name_or_space) if file_attrs is None: raise NeotoolsError('Text file with name or space %s does not exist' % file_name_or_space) text = read_text(device, applet_id, file_attrs) if path: write_file_with_format(file_attrs, text, path, name_format) else: print(text)
def applet_write_settings(applet_id, ident, values): with Device.connect() as device: for flag in [7, 15]: settings = get_settings(device, applet_id, flag) item = settings.settings.get(ident) if item: break if item is None: raise NeotoolsError('Settings item with id=%s not found' % ident) if item.type == AppletSettingsType.APPLET_ID: applets = read_applets(device) if not any(item.data == applet.id for applet in applets): raise NeotoolsError('Applet with id=%s not found' % item.data) item.change_setting(values) set_settings(device, applet_id, item)
def applet_read_settings(applet_id, flags): default_flags = [0, 7, 15] if len(flags) == 0: flags = default_flags with Device.connect() as device: # Retrieve system labels for better UI. system_settings = AppletSettings([]) for flag in default_flags: system_settings.merge_settings(get_settings(device, 0, flag)) settings = AppletSettings([]) for flag in flags: s = get_settings(device, applet_id, flag) settings.merge_settings(s) settings.labels.update(system_settings.labels) settings.descriptions.update(system_settings.descriptions) return settings.to_dict()
def list_applets(): with Device.connect() as device: return read_applets(device)
def get_mode(): with Device.connect(flip_to_comms=False) as device: mapping = {HID_PRODUCT_ID: 'keyboard', COM_PRODUCT_ID: 'comms'} mode = mapping.get(device.original_product, 'unknown') print(mode)
def flip_to_keyboard(): with Device.connect(flip_to_comms=False) as device: if device.original_product == COM_PRODUCT_ID: device.flip_to_keyboard_mode()
def flip_to_communicator(): with Device.connect(flip_to_comms=True, dispose=False): pass