Skip to content
Snippets Groups Projects
Commit cf5e1ba5 authored by Marko Mecina's avatar Marko Mecina
Browse files

use standalone file for TST datapool item overview by default, instead of MIB

parent 1e989456
Branches
No related tags found
No related merge requests found
...@@ -57,8 +57,8 @@ import confignator ...@@ -57,8 +57,8 @@ import confignator
import toolbox import toolbox
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
logger.setLevel(level=logging.DEBUG) logger.setLevel(level=logging.WARNING)
console_hdlr = toolbox.create_console_handler(hdlr_lvl=logging.DEBUG) console_hdlr = toolbox.create_console_handler(hdlr_lvl=logging.WARNING)
logger.addHandler(hdlr=console_hdlr) logger.addHandler(hdlr=console_hdlr)
# using gettext for internationalization (i18n) # using gettext for internationalization (i18n)
......
...@@ -5,27 +5,37 @@ gi.require_version("GtkSource", "3.0") ...@@ -5,27 +5,37 @@ gi.require_version("GtkSource", "3.0")
from gi.repository import Gtk, Gdk, GtkSource from gi.repository import Gtk, Gdk, GtkSource
import confignator import confignator
import sys import sys
import logging
sys.path.append(confignator.get_option('paths', 'ccs')) sys.path.append(confignator.get_option('paths', 'ccs'))
import ccs_function_lib as cfl import ccs_function_lib as cfl
import s2k_partypes as s2k import s2k_partypes as s2k
dictionary_of_data_pool = cfl.get_data_pool_items() try:
list_of_data_pool = list(dictionary_of_data_pool.keys()) DP_ITEMS_SRC_FILE = confignator.get_option('database', 'datapool-items')
except confignator.config.configparser.NoOptionError:
DP_ITEMS_SRC_FILE = None
data_pool_sublist = [] logger = logging.getLogger()
pid_list = []
def reload_dp_data(): def reload_dp_data():
global DP_ITEMS_SRC_FILE
global dictionary_of_data_pool global dictionary_of_data_pool
global list_of_data_pool global list_of_data_pool
global data_pool_sublist global data_pool_sublist
global pid_list
try:
dictionary_of_data_pool = cfl.get_data_pool_items(src_file=DP_ITEMS_SRC_FILE)
except FileNotFoundError:
logger.warning('Could not load data pool from file: {}. Using MIB instead.'.format(DP_ITEMS_SRC_FILE))
dictionary_of_data_pool = cfl.get_data_pool_items() dictionary_of_data_pool = cfl.get_data_pool_items()
if not isinstance(dictionary_of_data_pool, list):
list_of_data_pool = list(dictionary_of_data_pool.keys()) list_of_data_pool = list(dictionary_of_data_pool.keys())
data_pool_sublist, pid_list = get_data_pool_sublist() data_pool_sublist = get_data_pool_sublist()
else:
data_pool_sublist = dictionary_of_data_pool
def get_data_pool_sublist(): def get_data_pool_sublist():
...@@ -35,20 +45,28 @@ def get_data_pool_sublist(): ...@@ -35,20 +45,28 @@ def get_data_pool_sublist():
pcf_ptc = counter[2] pcf_ptc = counter[2]
pcf_pfc = counter[3] pcf_pfc = counter[3]
if pcf_ptc == None: if pcf_ptc is None:
data_type = "None" data_type = "None"
else: else:
data_type = s2k.ptt[pcf_ptc][pcf_pfc] data_type = s2k.ptt[pcf_ptc][pcf_pfc]
if pcf_pid not in pid_list: data_pool_sublist.append([pcf_pid, pcf_descr, data_type, '', '', ''])
pid_list.append(pcf_pid)
data_pool_sublist.append([pcf_pid, pcf_descr, data_type]) return data_pool_sublist
return data_pool_sublist, pid_list
data_pool_sublist = []
try:
dictionary_of_data_pool = cfl.get_data_pool_items(src_file=DP_ITEMS_SRC_FILE)
except FileNotFoundError:
logger.warning('Could not load data pool from file: {}. Using MIB instead.'.format(DP_ITEMS_SRC_FILE))
dictionary_of_data_pool = cfl.get_data_pool_items()
data_pool_sublist, pid_list = get_data_pool_sublist() if not isinstance(dictionary_of_data_pool, list):
list_of_data_pool = list(dictionary_of_data_pool.keys())
data_pool_sublist = get_data_pool_sublist()
else:
data_pool_sublist = dictionary_of_data_pool
class DataPoolTable(Gtk.Grid): class DataPoolTable(Gtk.Grid):
...@@ -56,7 +74,7 @@ class DataPoolTable(Gtk.Grid): ...@@ -56,7 +74,7 @@ class DataPoolTable(Gtk.Grid):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.data_pool_liststore = Gtk.ListStore(str, str, str) self.data_pool_liststore = Gtk.ListStore(str, str, str, str, str, str)
for data_pool_ref in data_pool_sublist: for data_pool_ref in data_pool_sublist:
self.data_pool_liststore.append(list(data_pool_ref)) self.data_pool_liststore.append(list(data_pool_ref))
self.current_filter_data_pool = None self.current_filter_data_pool = None
...@@ -66,30 +84,17 @@ class DataPoolTable(Gtk.Grid): ...@@ -66,30 +84,17 @@ class DataPoolTable(Gtk.Grid):
# setting the filter function # setting the filter function
self.data_pool_filter.set_visible_func(self.data_pool_filter_func) self.data_pool_filter.set_visible_func(self.data_pool_filter_func)
self.pid = None
# Create ListStores for the ComboBoxes # Create ListStores for the ComboBoxes
self.pid_liststore = Gtk.ListStore(str) # self.pid_liststore = Gtk.ListStore(str)
for pid_ref in pid_list: # for pid_ref in pid_list:
self.pid_liststore.append([pid_ref, ]) # self.pid_liststore.append([pid_ref, ])
# self.current_filter_type = None # self.current_filter_type = None
"""
self.pid_combo = Gtk.ComboBox.new_with_model(self.pid_liststore)
self.pid_combo.connect("changed", self.on_pid_combo_changed)
renderer_text = Gtk.CellRendererText()
self.pid_combo.pack_start(renderer_text, True)
self.pid_combo.add_attribute(renderer_text, "text", 0)
self.attach(self.pid_combo, 0, 0, 1, 1)
self.clear_button = Gtk.Button(label="Clear")
self.clear_button.connect("clicked", self.on_clear_button_clicked)
self.attach_next_to(
self.clear_button, self.pid_combo, Gtk.PositionType.RIGHT, 1, 1
)
"""
# creating the treeview, making it use the filter a model, adding columns # creating the treeview, making it use the filter a model, adding columns
self.treeview = Gtk.TreeView.new_with_model(Gtk.TreeModelSort(self.data_pool_filter)) self.treeview = Gtk.TreeView.new_with_model(Gtk.TreeModelSort(self.data_pool_filter))
for i, column_title in enumerate(["PID", "DESCR", "DATATYPE"]): for i, column_title in enumerate(["PID", "NAME", "DATATYPE", "MULT", "PAR/VAR", "DESCR"]):
renderer = Gtk.CellRendererText() renderer = Gtk.CellRendererText()
column = Gtk.TreeViewColumn(column_title, renderer, text=i) column = Gtk.TreeViewColumn(column_title, renderer, text=i)
column.set_sort_column_id(i) column.set_sort_column_id(i)
...@@ -97,7 +102,7 @@ class DataPoolTable(Gtk.Grid): ...@@ -97,7 +102,7 @@ class DataPoolTable(Gtk.Grid):
# Handle selection # Handle selection
self.selected_row = self.treeview.get_selection() self.selected_row = self.treeview.get_selection()
self.selected_row.connect("changed", self.item_selected) #self.selected_row.connect("changed", self.item_selected)
# setting up layout, treeview in scrollwindow # setting up layout, treeview in scrollwindow
self.scrollable_treelist = Gtk.ScrolledWindow() self.scrollable_treelist = Gtk.ScrolledWindow()
...@@ -133,10 +138,7 @@ class DataPoolTable(Gtk.Grid): ...@@ -133,10 +138,7 @@ class DataPoolTable(Gtk.Grid):
def item_selected(self, selection): def item_selected(self, selection):
model, row = selection.get_selected() model, row = selection.get_selected()
if row is not None: if row is not None:
global pid self.pid = model[row][:2]
pid = model[row][0]
else:
pass
def data_pool_filter_func(self, model, iter, data): def data_pool_filter_func(self, model, iter, data):
...@@ -151,7 +153,8 @@ class DataPoolTable(Gtk.Grid): ...@@ -151,7 +153,8 @@ class DataPoolTable(Gtk.Grid):
def on_drag_data_get(self, treeview, drag_context, selection_data, info, time, *args): def on_drag_data_get(self, treeview, drag_context, selection_data, info, time, *args):
treeselection = treeview.get_selection() treeselection = treeview.get_selection()
model, my_iter = treeselection.get_selected() model, my_iter = treeselection.get_selected()
selection_data.set_text(pid, -1) if model is not None and my_iter is not None:
selection_data.set_text(model[my_iter][0], -1)
def on_drag_begin(self, *args): def on_drag_begin(self, *args):
pass pass
...@@ -12,6 +12,7 @@ user = egse ...@@ -12,6 +12,7 @@ user = egse
password = xrayvision password = xrayvision
host = 127.0.0.1 host = 127.0.0.1
mib-schema = mib_smile_sxi mib-schema = mib_smile_sxi
datapool-items = /home/marko/space/smile/IDB/dp_sxi_iasw_v0.2R_20220817.csv
[logging] [logging]
log-dir = ${paths:base}/logs log-dir = ${paths:base}/logs
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment