def start_program(self, name): """Start a program on the brick. :param str name: Program file name (example: ``"myprogram.rxe"``). """ tgram = Telegram(Opcode.DIRECT_START_PROGRAM) tgram.add_filename(name) self._cmd(tgram)
def play_sound_file(self, loop, name): """Play a sound file on the brick. :param bool loop: Loop mode, play continuously. :param str name: Sound file name. """ tgram = Telegram(Opcode.DIRECT_PLAY_SOUND_FILE, reply_req=False) tgram.add_bool(loop) tgram.add_filename(name) self._cmd(tgram)
def file_delete(self, name): """Delete a file on the brick. :param str name: File name. :return: The deleted file name. :rtype: str :raises nxt.error.FileNotFoundError: When file does not exists. """ tgram = Telegram(Opcode.SYSTEM_DELETE) tgram.add_filename(name) tgram = self._cmd(tgram) name = tgram.parse_filename() return name
def file_open_read(self, name): """Open file for reading. :param str name: File name. :return: The file handle and the file size. :rtype: (int, int) :raises nxt.error.FileNotFoundError: When file does not exists. .. warning:: This is a low level function, prefer to use :meth:`open_file`. """ tgram = Telegram(Opcode.SYSTEM_OPENREAD) tgram.add_filename(name) tgram = self._cmd(tgram) handle = tgram.parse_u8() size = tgram.parse_u32() return handle, size
def file_find_first(self, pattern): """Start finding files matching a pattern. :param str pattern: Pattern to match files against. :return: A handle for the search, first file found name and size. :rtype: (int, str, int) :raises nxt.error.FileNotFoundError: When no file is found. .. warning:: This is a low level function, prefer to use :meth:`find_files`. """ tgram = Telegram(Opcode.SYSTEM_FINDFIRST) tgram.add_filename(pattern) tgram = self._cmd(tgram) handle = tgram.parse_u8() name = tgram.parse_filename() size = tgram.parse_u32() return handle, name, size
def file_open_write(self, name, size): """Open file for writing. :param str name: File name. :param int size: Final file size. :return: The file handle. :rtype: int :raises nxt.error.FileExistsError: When file already exists. :raises nxt.error.SystemProtocolError: When no space is available. .. warning:: This is a low level function, prefer to use :meth:`open_file`. """ tgram = Telegram(Opcode.SYSTEM_OPENWRITE) tgram.add_filename(name) tgram.add_u32(size) tgram = self._cmd(tgram) handle = tgram.parse_u8() return handle
def module_find_first(self, pattern): """Start finding modules matching a pattern. :param str pattern: Pattern to match modules against. :return: A handle for the search, first module found name, identifier, size and IO map size. :rtype: (int, str, int, int, int) :raises nxt.error.ModuleNotFoundError: When no module is found. .. warning:: This is a low level function, prefer to use :meth:`find_modules`. """ tgram = Telegram(Opcode.SYSTEM_FINDFIRSTMODULE) tgram.add_filename(pattern) tgram = self._cmd(tgram) handle = tgram.parse_u8() name = tgram.parse_filename() mod_id = tgram.parse_u32() mod_size = tgram.parse_u32() mod_iomap_size = tgram.parse_u16() return handle, name, mod_id, mod_size, mod_iomap_size
def file_open_append_data(self, name): """Open file for appending, using data mode. :param str name: File name. :return: The file handle and available size :rtype: (int, int) :raises nxt.error.FileNotFoundError: When file does not exists. :raises nxt.error.SystemProtocolError: When file is full or file is not a data file. The file must be a data file. The available size is the size which has not been written to last time the file was open. .. warning:: This is a low level function, however, there is no support yet for data files in :meth:`open_file`. """ tgram = Telegram(Opcode.SYSTEM_OPENAPPENDDATA) tgram.add_filename(name) tgram = self._cmd(tgram) handle = tgram.parse_u8() available_size = tgram.parse_u32() return handle, available_size
def file_open_write_data(self, name, size): """Open file for writing, using data mode. :param str name: File name. :param int size: Maximum file size. :return: The file handle. :rtype: int :raises nxt.error.FileExistsError: When file already exists. :raises nxt.error.SystemProtocolError: When no space is available. A data file can be written in small chunks, and can grow later. It can be used for data logging. .. warning:: This is a low level function, however, there is no support yet for data files in :meth:`open_file`. """ tgram = Telegram(Opcode.SYSTEM_OPENWRITEDATA) tgram.add_filename(name) tgram.add_u32(size) tgram = self._cmd(tgram) handle = tgram.parse_u8() return handle
def file_open_write_linear(self, name, size): """Open file for writing, reserve a linear space. :param str name: File name. :param int size: Final file size. :return: The file handle. :rtype: int :raises nxt.error.FileExistsError: When file already exists. :raises nxt.error.SystemProtocolError: When no space is available. Linear space is required for programs, but the brick will automatically use linear mode with :meth:`file_open_write` when extension is ``.rxe``, ``.sys`` or ``.rtm``. .. warning:: This is a low level function, prefer to use :meth:`open_file`. """ tgram = Telegram(Opcode.SYSTEM_OPENWRITELINEAR) tgram.add_filename(name) tgram.add_u32(size) tgram = self._cmd(tgram) handle = tgram.parse_u8() return handle