From 4458a3c8c1eaad758647e64ebec90ace509a1f17 Mon Sep 17 00:00:00 2001 From: Joerg Wunsch Date: Fri, 29 Mar 2024 23:34:35 +0100 Subject: [PATCH] Add saving flash contents to file --- src/python/adgui.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/python/adgui.py b/src/python/adgui.py index 8c060af5..e3023a1f 100755 --- a/src/python/adgui.py +++ b/src/python/adgui.py @@ -344,6 +344,7 @@ class adgui(QObject): self.memories.read.pressed.connect(self.flash_read) self.load_settings() self.memories.filename.editingFinished.connect(self.detect_flash_file) + self.memories.save.pressed.connect(self.flash_save) def log(self, s: str, level: int = ad.MSG_INFO, no_nl: bool = False): # level to color mapping @@ -698,6 +699,23 @@ class adgui(QObject): amnt = ad.avr_read_mem(self.pgm, self.dev, m) self.log(f"Read {amnt} bytes") + def flash_save(self): + if self.memories.ffAuto.isChecked() or \ + self.memories.ffELF.isChecked(): + self.log("Auto or ELF are not valid for saving files", ad.MSG_ERROR) + return + if self.memories.ffIhex.isChecked(): + fmt = ad.FMT_IHEX + elif self.memories.ffSrec.isChecked(): + fmt = ad.FMT_SREC + elif self.memories.ffRbin.isChecked(): + fmt = ad.FMT_RBIN + else: + self.log("Internal error: cannot determine file format", ad.MSG_ERROR) + return + amnt = ad.fileio(ad.FIO_WRITE, self.flashname, fmt, self.dev, "flash", -1) + self.log(f"Wrote {amnt} bytes to {self.flashname}") + def save_logfile(self): fname = QFileDialog.getSaveFileName(caption = "Save logfile to", filter = "Text files (*.txt *.log);; All Files (*)")