diff --git a/src/python/adgui.py b/src/python/adgui.py index 0ee0b60a..9aba291f 100755 --- a/src/python/adgui.py +++ b/src/python/adgui.py @@ -162,7 +162,8 @@ class adgui(QObject): p = pathlib.Path(argv[0]) srcdir = str(p.parent) for f in [ "adgui.ui", "about.ui", "device.ui", - "devinfo.ui", "loglevel.ui", "programmer.ui" ]: + "devinfo.ui", "loglevel.ui", "programmer.ui", + "memories.ui" ]: ui = QFile(srcdir + '/' + f) if not ui.open(QFile.ReadOnly): print(f"Cannot open {f}: {ui.errorString()}", file = sys.stderr) @@ -220,6 +221,8 @@ class adgui(QObject): self.programmer.buttonBox.accepted.connect(self.programmer_selected) self.programmer.programmers.currentTextChanged.connect(self.programmer_update_port) self.adgui.actionDevice_Info.triggered.connect(self.devinfo.show) + self.adgui.actionProgramming.triggered.connect(self.memories.show) + self.memories.readSig.pressed.connect(self.read_signature) def log(self, s: str, level: int = ad.MSG_INFO): # level to color mapping @@ -305,6 +308,7 @@ class adgui(QObject): if not p: log(f"Could not find {self.dev_selected} again, confused\n") return + ad.avr_initmem(p) self.devinfo.label_2.setText(p.desc) self.devinfo.label_4.setText(p.id) self.devinfo.label_6.setText(p.config_file) @@ -338,6 +342,10 @@ class adgui(QObject): vv = ad.ldata_string(v) self.devinfo.listVariants.addItem(vv) v = ad.lnext(v) + # update signature TAB in memories popup + sig = p.signature + sigstr = sig.hex(' ').upper() + self.memories.configSig.setText(sigstr) def device_selected(self): self.dev_selected = self.device.devices.currentText() @@ -386,6 +394,7 @@ class adgui(QObject): self.pgm.enable(self.dev) self.pgm.initialize(self.dev) self.log('Programmer successfully started') + self.adgui.actionProgramming.setEnabled(True) self.connected = True def stop_programmer(self): @@ -394,6 +403,16 @@ class adgui(QObject): self.pgm.close() self.pgm.teardown() + def read_signature(self): + if self.connected: + m = ad.avr_locate_mem(self.dev, 'signature') + if m: + ad.avr_read_mem(self.pgm, self.dev, m) + read_sig = m.get(3) + sigstr = read_sig.hex(' ').upper() + self.memories.deviceSig.setText(sigstr) + else: + print("Could not find signature memory", file = sys.stderr) def main(): gui = adgui(sys.argv) diff --git a/src/python/adgui.ui b/src/python/adgui.ui index c07b7024..34e16a8b 100644 --- a/src/python/adgui.ui +++ b/src/python/adgui.ui @@ -111,6 +111,7 @@ Device + @@ -213,6 +214,14 @@ Log level … + + + false + + + Programming … + + diff --git a/src/python/memories.ui b/src/python/memories.ui new file mode 100644 index 00000000..6d03b11e --- /dev/null +++ b/src/python/memories.ui @@ -0,0 +1,245 @@ + + + Memories + + + true + + + + 0 + 0 + 786 + 531 + + + + Memories + + + + + 670 + 480 + 91 + 32 + + + + Qt::Horizontal + + + QDialogButtonBox::Ok + + + + + + 30 + 20 + 731 + 441 + + + + 0 + + + + Signature + + + + + 20 + 30 + 681 + 112 + + + + + + + From device: + + + + + + + 14 + + + + background-color: rgb(255, 255, 255); + + + QFrame::Box + + + QFrame::Sunken + + + 2 + + + 1E XX XX + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + From config file: + + + + + + + 14 + + + + background-color: rgb(255, 255, 255); + + + QFrame::Box + + + QFrame::Sunken + + + 2 + + + 1E XX XX + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + Read + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + true + + + Flash + + + + + EEPROM + + + + + + + + buttonBox + accepted() + Memories + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + Memories + reject() + + + 316 + 260 + + + 286 + 274 + + + + +