From 496d92ea3bbacfc09796c6a9015c2d032b909dbb Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Tue, 24 Apr 2018 09:18:49 +0200 Subject: [PATCH 1/7] Preliminary work for ualserver: create a class for ual. --- tools/ualgui.py | 62 +++++++++++------------------------ tools/ualserver.py | 80 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 44 deletions(-) create mode 100644 tools/ualserver.py diff --git a/tools/ualgui.py b/tools/ualgui.py index d3c153b..c392aa4 100644 --- a/tools/ualgui.py +++ b/tools/ualgui.py @@ -16,22 +16,13 @@ import time import yaml import threading import subprocess - -from ctypes import * -from ctypes.util import find_library - -import PyUAL +import ualserver poll_list_lock = threading.Lock() poll_list = [] -ual = None gual = None tab_view = False -libc = CDLL(find_library('c')) -getpagesize = libc.getpagesize - - class Register(tk.Frame): def __init__(self, parent, base_address, reg): self.parent = parent @@ -155,9 +146,9 @@ class Register(tk.Frame): print("Read '%s' at address '0x%X'" % (self.register["name"], self.address)) if int(gual.bar.desc.dw.get()) == 2: - value = ual.readw(self.address) + value = my_ual.readw(self.address) elif int(gual.bar.desc.dw.get()) == 4: - value = ual.readl(self.address) + value = my_ual.readl(self.address) value = self.fix_endianess(value) print(" Value = 0x%x" % value) self.print_value(value) @@ -169,9 +160,9 @@ class Register(tk.Frame): value = self.fix_endianess(value) print(" Value = 0x%x" % value) if int(gual.bar.desc.dw.get()) == 2: - value = ual.writew(self.address, value) + value = my_ual.writew(self.address, value) elif int(gual.bar.desc.dw.get()) == 4: - ual.writel(self.address, value) + my_ual.writel(self.address, value) self.get_value() @@ -270,7 +261,6 @@ class MemoryMaps(ttk.Notebook): def __init__(self, parent): self.ranges = {"components": []} self.parent = parent - self.ual = None super(MemoryMaps, self).__init__(self.parent) self.initUI() @@ -320,8 +310,6 @@ class MemoryMaps(ttk.Notebook): """ It adds new components to the current Memory map """ - global ual - if not allow_overlap: for c in self.ranges["components"]: if c["memory"][0] <= group["memory"][0] and \ @@ -334,9 +322,9 @@ class MemoryMaps(ttk.Notebook): print(self.ranges) try: self.mmap = gual.bar.desc.get(self.size(self.ranges["components"])) - print("Open UAL") - ual = PyUAL.PyUAL(gual.bar.cmb_bus.get(), self.mmap) - print(ual) + bus = gual.bar.cmb_bus.get() + print("Open UAL {} {}".format(bus, self.mmap)) + my_ual.iomap(bus, self.mmap) except Exception as e: self.ranges["components"].remove(group) print(e) @@ -587,10 +575,7 @@ class Desc(object): gual.mmap.reload() def bus_list(self): - bus = [] - for b in PyUAL.bus_available(): - bus.append(b) - return bus + return my_ual.get_bus_list() class DescPCI(Desc): @@ -622,7 +607,6 @@ class DescPCI(Desc): self.cmb_dend.set("LE") def get(self, size): - size = getpagesize() * (int(size / getpagesize()) + 1) try: offset = int(self.offset.get(), 10) except ValueError: @@ -643,12 +627,8 @@ class DescPCI(Desc): (int(tmp[1], 16) & 0xFF) << 8 | \ (int(tmp[2], 16) & 0xFF) - return PyUAL.PyUALPCI(c_uint64(devid), - c_uint32(dw), - c_uint32(self.bar.get()), - c_uint64(size), - c_uint64(offset), - c_uint64(flags)) + return my_ual.build_pci_desc(devid, dw, self.bar.get(), size, + offset, flags) class DescVME(Desc): @@ -675,7 +655,6 @@ class DescVME(Desc): self.cmb_dend.set("BE") def get(self, size): - size = getpagesize() * (int(size / getpagesize()) + 1) try: offset = int(self.offset.get(), 10) except ValueError: @@ -689,11 +668,7 @@ class DescVME(Desc): flags |= (1 << 0) am = int(self.cmd_am.get(), 16) - return PyUAL.PyUALVME(c_uint32(dw), - c_uint32(am), - c_uint64(size), - c_uint64(offset), - c_uint64(flags)) + return my_ual.build_vme_desc(dw, am, size, offset, flags) class BaseAddressRegister(tk.LabelFrame): @@ -735,10 +710,7 @@ class BaseAddressRegister(tk.LabelFrame): self.event_generate("<>") def bus_list(self): - bus = [] - for b in PyUAL.bus_available(): - bus.append(b) - return bus + return my_ual.get_bus_list() def enable(self, value): st = "readonly" if value else tk.DISABLED @@ -776,15 +748,15 @@ class GuiUal(tk.Frame): self.mmap.pack(side=tk.LEFT, fill=tk.X, anchor="n") def bus_changed(self, event): - global ual + my_ual.unmap() # Destory all MemoryMaps contents for w in self.mmap.winfo_children(): w.destroy() - ual = None - if __name__ == "__main__": + global my_ual + root = tk.Tk() try: default_font = tk.font.nametofont("TkDefaultFont") @@ -792,6 +764,8 @@ if __name__ == "__main__": except tkinter.TclError: print('failed to set up default fonts, continuing') + my_ual = ualserver.UALLocal() + gual = GuiUal(root) gual.pack(fill=tk.BOTH, expand=True) root.mainloop() diff --git a/tools/ualserver.py b/tools/ualserver.py new file mode 100644 index 0000000..b7b4816 --- /dev/null +++ b/tools/ualserver.py @@ -0,0 +1,80 @@ +class UALBase(object): + def get_bus_list(self): + raise NotImplemented + + def build_pci_desc(self): + raise NotImplemented + + def build_vme_desc(self, dw, am, size, offset, flags): + raise NotImplemented + + def iomap(self, bus, desc): + raise NotImplemented + + def unmap(self): + raise NotImplemented + + def readl(self, off): + raise NotImplemented + + def readw(self, off): + raise NotImplemented + + def writel(self, off, val): + raise NotImplemented + + def writew(self, off, val): + raise NotImplemented + + +class UALLocal(UALBase): + def __init__(self): + import PyUAL + self.PyUAL = PyUAL + + import ctypes + from ctypes.util import find_library + self.ctypes = ctypes + + libc = ctypes.CDLL(find_library('c')) + self.pagesize = libc.getpagesize() + + def get_bus_list(self): + return [b for b in self.PyUAL.bus_available()] + + def build_vme_desc(self, dw, am, size, offset, flags): + size = (size + self.pagesize - 1) & ~(self.pagesize - 1) + print ("vme size: {:08x}, pgsize: {:08x}".format(size, self.pagesize)) + return self.PyUAL.PyUALVME(self.ctypes.c_uint32(dw), + self.ctypes.c_uint32(am), + self.ctypes.c_uint64(size), + self.ctypes.c_uint64(offset), + self.ctypes.c_uint64(flags)) + + def build_pci_desc(self, devid, dw, bar, size, offset, flags): + size = (size + self.pagesize - 1) & ~(self.pagesize - 1) + return self.PyUAL.PyUALPCI(self.ctypes.c_uint64(devid), + self.ctypes.c_uint32(dw), + self.ctypes.c_uint32(bar), + self.ctypes.c_uint64(size), + self.ctypes.c_uint64(offset), + self.ctypes.c_uint64(flags)) + + def iomap(self, bus, desc): + self.ual = self.PyUAL.PyUAL(bus, desc) + + def unmap(self): + self.ual = None + + def readl(self, off): + return self.ual.readl(off) + + def readw(self, off): + return self.ual.readw(off) + + def writel(self, off, val): + self.ual.writel(off, val) + + def writew(self, off, val): + self.ual.writew(off, val) + -- GitLab From d63015d80e93639210dc241c99094161515868c1 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Tue, 24 Apr 2018 10:12:23 +0200 Subject: [PATCH 2/7] ualgui: First remote version. --- tools/ualgui.py | 30 +++++++++------ tools/ualserver.py | 93 +++++++++++++++++++++++++++++++++------------- 2 files changed, 86 insertions(+), 37 deletions(-) mode change 100644 => 100755 tools/ualserver.py diff --git a/tools/ualgui.py b/tools/ualgui.py index c392aa4..c3f9cfe 100644 --- a/tools/ualgui.py +++ b/tools/ualgui.py @@ -17,6 +17,7 @@ import yaml import threading import subprocess import ualserver +import argparse poll_list_lock = threading.Lock() poll_list = [] @@ -321,10 +322,8 @@ class MemoryMaps(ttk.Notebook): print("Add new component %s" % (group)) print(self.ranges) try: - self.mmap = gual.bar.desc.get(self.size(self.ranges["components"])) - bus = gual.bar.cmb_bus.get() - print("Open UAL {} {}".format(bus, self.mmap)) - my_ual.iomap(bus, self.mmap) + print("Open UAL") + gual.bar.desc.iomap(self.size(self.ranges["components"])) except Exception as e: self.ranges["components"].remove(group) print(e) @@ -568,7 +567,7 @@ class Desc(object): self.cmb_hend.grid(row=5, column=3) self.cmb_hend.bind("<>", self.change_endianess) - def get(self, size): + def iomap(self, size): pass def change_endianess(self, event): @@ -606,7 +605,7 @@ class DescPCI(Desc): super(DescPCI, self).initUI() self.cmb_dend.set("LE") - def get(self, size): + def iomap(self, size): try: offset = int(self.offset.get(), 10) except ValueError: @@ -627,8 +626,7 @@ class DescPCI(Desc): (int(tmp[1], 16) & 0xFF) << 8 | \ (int(tmp[2], 16) & 0xFF) - return my_ual.build_pci_desc(devid, dw, self.bar.get(), size, - offset, flags) + my_ual.iomap_pci(devid, dw, self.bar.get(), size, offset, flags) class DescVME(Desc): @@ -654,7 +652,7 @@ class DescVME(Desc): super(DescVME, self).initUI() self.cmb_dend.set("BE") - def get(self, size): + def iomap(self, size): try: offset = int(self.offset.get(), 10) except ValueError: @@ -668,7 +666,7 @@ class DescVME(Desc): flags |= (1 << 0) am = int(self.cmd_am.get(), 16) - return my_ual.build_vme_desc(dw, am, size, offset, flags) + my_ual.iomap_vme(dw, am, size, offset, flags) class BaseAddressRegister(tk.LabelFrame): @@ -757,6 +755,10 @@ class GuiUal(tk.Frame): if __name__ == "__main__": global my_ual + parser = argparse.ArgumentParser(description='GUI for io access') + parser.add_argument('-r', '--remote', help='url of the remote server') + + args = parser.parse_args() root = tk.Tk() try: default_font = tk.font.nametofont("TkDefaultFont") @@ -764,7 +766,13 @@ if __name__ == "__main__": except tkinter.TclError: print('failed to set up default fonts, continuing') - my_ual = ualserver.UALLocal() + print (args) + print (args.remote) + + if args.remote is None: + my_ual = ualserver.UALLocal() + else: + my_ual = ualserver.UALRemote(args.remote) gual = GuiUal(root) gual.pack(fill=tk.BOTH, expand=True) diff --git a/tools/ualserver.py b/tools/ualserver.py old mode 100644 new mode 100755 index b7b4816..79d2a75 --- a/tools/ualserver.py +++ b/tools/ualserver.py @@ -1,14 +1,17 @@ +import ctypes +from ctypes.util import find_library + class UALBase(object): def get_bus_list(self): raise NotImplemented - def build_pci_desc(self): + def iomap_pci(self, devid, dw, bar, size, offset, flags): raise NotImplemented - def build_vme_desc(self, dw, am, size, offset, flags): + def iomap_vme(self, dw, am, size, offset, flags): raise NotImplemented - def iomap(self, bus, desc): + def iomap(self): raise NotImplemented def unmap(self): @@ -32,36 +35,30 @@ class UALLocal(UALBase): import PyUAL self.PyUAL = PyUAL - import ctypes - from ctypes.util import find_library - self.ctypes = ctypes - libc = ctypes.CDLL(find_library('c')) self.pagesize = libc.getpagesize() def get_bus_list(self): return [b for b in self.PyUAL.bus_available()] - - def build_vme_desc(self, dw, am, size, offset, flags): + + def iomap_vme(self, dw, am, size, offset, flags): size = (size + self.pagesize - 1) & ~(self.pagesize - 1) - print ("vme size: {:08x}, pgsize: {:08x}".format(size, self.pagesize)) - return self.PyUAL.PyUALVME(self.ctypes.c_uint32(dw), - self.ctypes.c_uint32(am), - self.ctypes.c_uint64(size), - self.ctypes.c_uint64(offset), - self.ctypes.c_uint64(flags)) - - def build_pci_desc(self, devid, dw, bar, size, offset, flags): + desc = self.PyUAL.PyUALVME(ctypes.c_uint32(dw), + ctypes.c_uint32(am), + ctypes.c_uint64(size), + ctypes.c_uint64(offset), + ctypes.c_uint64(flags)) + self.ual = self.PyUAL.PyUAL('vme', desc) + + def iomap_pci(self, devid, dw, bar, size, offset, flags): size = (size + self.pagesize - 1) & ~(self.pagesize - 1) - return self.PyUAL.PyUALPCI(self.ctypes.c_uint64(devid), - self.ctypes.c_uint32(dw), - self.ctypes.c_uint32(bar), - self.ctypes.c_uint64(size), - self.ctypes.c_uint64(offset), - self.ctypes.c_uint64(flags)) - - def iomap(self, bus, desc): - self.ual = self.PyUAL.PyUAL(bus, desc) + desc = self.PyUAL.PyUALPCI(ctypes.c_uint64(devid), + ctypes.c_uint32(dw), + ctypes.c_uint32(bar), + ctypes.c_uint64(size), + ctypes.c_uint64(offset), + ctypes.c_uint64(flags)) + self.ual = self.PyUAL.PyUAL('pci', desc) def unmap(self): self.ual = None @@ -78,3 +75,47 @@ class UALLocal(UALBase): def writew(self, off, val): self.ual.writew(off, val) + +class UALRemote(UALBase): + def __init__(self, uri): + import xmlrpc.client + self.client = xmlrpc.client.ServerProxy(uri) + + def get_bus_list(self): + return self.client.get_bus_list() + + def iomap_vme(self, dw, am, size, offset, flags): + self.client.iomap_vme(dw, am, size, offset, flags) + + def iomap_pci(self, devid, dw, bar, size, offset, flags): + self.client.iomap_pci(devid, dw, bar, size, offset, flags) + + def unmap(self): + self.client.unmap() + + def readl(self, off): + return self.client.readl(off) + + def readw(self, off): + return self.client.readw(off) + + def writel(self, off, val): + self.client.writel(off, val) + + def writew(self, off, val): + self.client.writew(off, val) + + +if __name__ == "__main__": + import xmlrpc.server + port = 8080 + server = xmlrpc.server.SimpleXMLRPCServer(("", port), allow_none=True) + print("Listening on port {}...".format(port)) + + my_ual = UALLocal() + server.register_instance(my_ual) + #for f in dir(my_ual): + # if not f.startswith('_') and callable(getattr(my_ual, f)): + # print('Add {}'.format(f)) + # server.register_function(getattr(my_ual, f), f) + server.serve_forever() -- GitLab From f1745ed5afcda049573ecae6c70e3727886cbae9 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Tue, 24 Apr 2018 10:16:15 +0200 Subject: [PATCH 3/7] ualserver: add port option. --- tools/ualserver.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/tools/ualserver.py b/tools/ualserver.py index 79d2a75..c91426a 100755 --- a/tools/ualserver.py +++ b/tools/ualserver.py @@ -108,14 +108,19 @@ class UALRemote(UALBase): if __name__ == "__main__": import xmlrpc.server - port = 8080 - server = xmlrpc.server.SimpleXMLRPCServer(("", port), allow_none=True) - print("Listening on port {}...".format(port)) + import argparse + + parser = argparse.ArgumentParser(description='UAL remote server') + parser.add_argument('-p', '--port', type=int, default=8000, + help='local TCP port') + # parser.add_argument('-r', '--remote', help='url of the remote server') + + args = parser.parse_args() + + server = xmlrpc.server.SimpleXMLRPCServer(("", args.port), allow_none=True) my_ual = UALLocal() server.register_instance(my_ual) - #for f in dir(my_ual): - # if not f.startswith('_') and callable(getattr(my_ual, f)): - # print('Add {}'.format(f)) - # server.register_function(getattr(my_ual, f), f) + + print("Listening on port {}...".format(args.port)) server.serve_forever() -- GitLab From 74af4af41706a4509937349a5812a9c4eb983b06 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Tue, 24 Apr 2018 10:37:20 +0200 Subject: [PATCH 4/7] Add get_pci_list, disable log by default. --- tools/ualgui.py | 4 +--- tools/ualserver.py | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/tools/ualgui.py b/tools/ualgui.py index c3f9cfe..84d0b4f 100644 --- a/tools/ualgui.py +++ b/tools/ualgui.py @@ -15,7 +15,6 @@ import re import time import yaml import threading -import subprocess import ualserver import argparse @@ -584,8 +583,7 @@ class DescPCI(Desc): def initUI(self): print("Generate PCI GUI") - pci_list = subprocess.check_output("lspci | awk '{print $1}'", - shell=True).split() + pci_list = my_ual.get_pci_list() self.lbl_devid = tk.Label(self.parent, text="Device ID") self.lbl_devid.grid(row=1, column=0, sticky="NSWE") diff --git a/tools/ualserver.py b/tools/ualserver.py index c91426a..5021aa1 100755 --- a/tools/ualserver.py +++ b/tools/ualserver.py @@ -1,3 +1,4 @@ +import subprocess import ctypes from ctypes.util import find_library @@ -5,6 +6,9 @@ class UALBase(object): def get_bus_list(self): raise NotImplemented + def get_pci_list(self): + raise NotImplemented + def iomap_pci(self, devid, dw, bar, size, offset, flags): raise NotImplemented @@ -41,6 +45,11 @@ class UALLocal(UALBase): def get_bus_list(self): return [b for b in self.PyUAL.bus_available()] + def get_pci_list(self): + pci_list = subprocess.check_output("lspci | awk '{print $1}'", + shell=True).split() + return pci_list + def iomap_vme(self, dw, am, size, offset, flags): size = (size + self.pagesize - 1) & ~(self.pagesize - 1) desc = self.PyUAL.PyUALVME(ctypes.c_uint32(dw), @@ -84,6 +93,9 @@ class UALRemote(UALBase): def get_bus_list(self): return self.client.get_bus_list() + def get_pci_list(self): + return self.client.get_pci_list() + def iomap_vme(self, dw, am, size, offset, flags): self.client.iomap_vme(dw, am, size, offset, flags) @@ -113,11 +125,14 @@ if __name__ == "__main__": parser = argparse.ArgumentParser(description='UAL remote server') parser.add_argument('-p', '--port', type=int, default=8000, help='local TCP port') + parser.add_argument('--log', action='store_true', default=False, + help='enable log') # parser.add_argument('-r', '--remote', help='url of the remote server') args = parser.parse_args() - server = xmlrpc.server.SimpleXMLRPCServer(("", args.port), allow_none=True) + server = xmlrpc.server.SimpleXMLRPCServer( + ("", args.port), logRequests=args.log, allow_none=True) my_ual = UALLocal() server.register_instance(my_ual) -- GitLab From 9d551cba40016f479a734982e02b5c5c7e320bf1 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Tue, 24 Apr 2018 12:11:38 +0200 Subject: [PATCH 5/7] ualgui: add -s to specify default vme base. --- tools/ualgui.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/tools/ualgui.py b/tools/ualgui.py index 84d0b4f..dfb7aca 100644 --- a/tools/ualgui.py +++ b/tools/ualgui.py @@ -22,6 +22,7 @@ poll_list_lock = threading.Lock() poll_list = [] gual = None tab_view = False +vme_base = None class Register(tk.Frame): def __init__(self, parent, base_address, reg): @@ -650,6 +651,11 @@ class DescVME(Desc): super(DescVME, self).initUI() self.cmb_dend.set("BE") + if vme_base: + # Use vme base as default offset. + self.offset.delete(0, tk.END) + self.offset.insert(0, vme_base) + def iomap(self, size): try: offset = int(self.offset.get(), 10) @@ -686,8 +692,12 @@ class BaseAddressRegister(tk.LabelFrame): self.cmb_bus.grid(row=0, column=1, sticky="NSWE") self.cmb_bus.bind("<>", self.change_bus) - self.cmb_bus.set("pci") - self.desc = DescPCI(self) + if vme_base is not None: + self.cmb_bus.set("vme") + self.desc = DescVME(self) + else: + self.cmb_bus.set("pci") + self.desc = DescPCI(self) def change_bus(self, event): if self.cmb_bus.get() == self.prev: @@ -751,10 +761,9 @@ class GuiUal(tk.Frame): w.destroy() if __name__ == "__main__": - global my_ual - parser = argparse.ArgumentParser(description='GUI for io access') parser.add_argument('-r', '--remote', help='url of the remote server') + parser.add_argument('-s', '--vme', help='specify default address') args = parser.parse_args() root = tk.Tk() @@ -764,8 +773,8 @@ if __name__ == "__main__": except tkinter.TclError: print('failed to set up default fonts, continuing') - print (args) - print (args.remote) + if args.vme: + vme_base = args.vme if args.remote is None: my_ual = ualserver.UALLocal() -- GitLab From 65c78b509c62d64709e06e9810e053a977bb5f07 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Tue, 24 Apr 2018 14:30:41 +0200 Subject: [PATCH 6/7] ualgui: add support for cheby. --- tools/ualgui.py | 44 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/tools/ualgui.py b/tools/ualgui.py index dfb7aca..d7d7ac1 100644 --- a/tools/ualgui.py +++ b/tools/ualgui.py @@ -10,6 +10,15 @@ import tkinter.font import tkinter.filedialog import tkinter.ttk as ttk +try: + import cheby.tree + import cheby.parser + import cheby.layout + import cheby.expand_hdl + with_cheby = True +except ImportError as e: + with_cheby = False + import os import re import time @@ -23,6 +32,7 @@ poll_list = [] gual = None tab_view = False vme_base = None +opt_filename = None class Register(tk.Frame): def __init__(self, parent, base_address, reg): @@ -453,7 +463,7 @@ class OptionFile(tk.LabelFrame): def initUI(self): self.ent_path = tk.Entry(self, width=15) - self.ent_path.insert(0, os.getcwd()) + self.ent_path.insert(0, default_filename or os.getcwd()) self.ent_path.xview(tk.END) self.ent_path.pack(side=tk.TOP, fill=tk.X, expand=True) @@ -466,6 +476,10 @@ class OptionFile(tk.LabelFrame): command=self.file_load) self.btn_load.pack(side=tk.LEFT, fill=tk.X, expand=True) + if not with_cheby: + self.btn_sel.config(state=tk.DISABLED) + self.btn_load.config(state=tk.DISABLED) + def file_select(self): self.file_opt = options = {} options['defaultextension'] = '.yml' @@ -477,9 +491,26 @@ class OptionFile(tk.LabelFrame): self.ent_path.insert(0, filename) self.ent_path.xview(tk.END) + def cheby_extract_regs(self, t): + res = [] + if isinstance(t, cheby.tree.Reg): + res.append({'name': t.name, 'offset': t.c_address}) + elif isinstance(t, cheby.tree.Array): + pass + elif isinstance(t, cheby.tree.CompositeNode): + for e in t.elements: + res.extend(self.cheby_extract_regs(e)) + return res + def file_load(self): - with open(self.ent_path.get()) as f: - desc = yaml.load(f.read()) + filename = self.ent_path.get() + t = cheby.parser.parse_yaml(filename) + cheby.layout.layout_cheby(t) + cheby.expand_hdl.expand_hdl(t) + regs = self.cheby_extract_regs(t) + desc = {'components': [{'memory': [0, t.c_size], + 'name': t.name, + 'registers': regs}]} gual.mmap.add_descriptor(desc) @@ -543,7 +574,7 @@ class Desc(object): self.lbl_off = tk.Label(self.parent, text="Offset") self.lbl_off.grid(row=2, column=2, sticky="NSWE") - self.offset = tk.Entry(self.parent, width=8) + self.offset = tk.Entry(self.parent, width=10) self.offset.insert(0, "0x0") self.offset.grid(row=2, column=3) @@ -764,6 +795,7 @@ if __name__ == "__main__": parser = argparse.ArgumentParser(description='GUI for io access') parser.add_argument('-r', '--remote', help='url of the remote server') parser.add_argument('-s', '--vme', help='specify default address') + parser.add_argument('-f', '--filename', help='specify default filename') args = parser.parse_args() root = tk.Tk() @@ -773,8 +805,8 @@ if __name__ == "__main__": except tkinter.TclError: print('failed to set up default fonts, continuing') - if args.vme: - vme_base = args.vme + vme_base = args.vme + default_filename = args.filename if args.remote is None: my_ual = ualserver.UALLocal() -- GitLab From 4af7f662ef702da7cd8348f98d1fefebb27b623b Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Mon, 28 May 2018 10:31:41 +0200 Subject: [PATCH 7/7] ualgui: remove --vme argument. --- tools/ualgui.py | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/tools/ualgui.py b/tools/ualgui.py index d7d7ac1..817b2ae 100644 --- a/tools/ualgui.py +++ b/tools/ualgui.py @@ -31,7 +31,6 @@ poll_list_lock = threading.Lock() poll_list = [] gual = None tab_view = False -vme_base = None opt_filename = None class Register(tk.Frame): @@ -682,11 +681,6 @@ class DescVME(Desc): super(DescVME, self).initUI() self.cmb_dend.set("BE") - if vme_base: - # Use vme base as default offset. - self.offset.delete(0, tk.END) - self.offset.insert(0, vme_base) - def iomap(self, size): try: offset = int(self.offset.get(), 10) @@ -723,12 +717,8 @@ class BaseAddressRegister(tk.LabelFrame): self.cmb_bus.grid(row=0, column=1, sticky="NSWE") self.cmb_bus.bind("<>", self.change_bus) - if vme_base is not None: - self.cmb_bus.set("vme") - self.desc = DescVME(self) - else: - self.cmb_bus.set("pci") - self.desc = DescPCI(self) + self.cmb_bus.set("pci") + self.desc = DescPCI(self) def change_bus(self, event): if self.cmb_bus.get() == self.prev: @@ -794,7 +784,6 @@ class GuiUal(tk.Frame): if __name__ == "__main__": parser = argparse.ArgumentParser(description='GUI for io access') parser.add_argument('-r', '--remote', help='url of the remote server') - parser.add_argument('-s', '--vme', help='specify default address') parser.add_argument('-f', '--filename', help='specify default filename') args = parser.parse_args() @@ -805,7 +794,6 @@ if __name__ == "__main__": except tkinter.TclError: print('failed to set up default fonts, continuing') - vme_base = args.vme default_filename = args.filename if args.remote is None: -- GitLab