Skip to content
Snippets Groups Projects
Commit cc71556a authored by Wact B. Prot's avatar Wact B. Prot
Browse files

result around

parent 639fd193
Branches
No related tags found
No related merge requests found
import sys
import json
import argparse
from anselm.system import System # pylint: disable=E0611
from anselm.db import DB # pylint: disable=E0611
......@@ -23,7 +22,8 @@ class Observe(QThread, System):
print('Listening redis...')
for item in self.p.listen():
self.log.debug("received item: {}".format(item))
self.signal.emit("kkkkkkk")
if item['type'] == 'message':
self.signal.emit(int(item['data']))
class Anselm(System):
......@@ -36,11 +36,19 @@ class Anselm(System):
self.observer_thread = Observe()
self.observer_thread.signal.connect(self.end_task)
self.observer_thread.start()
self.current_grid_line = 1
self.initUI()
self.init_ui()
def initUI(self):
def init_ui(self):
self.std_col = 2
self.add_device_btn_col = 1
self.auxobj_col = 1
self.task_col = 2
self.run_kind_col = 3
self.run_btn_col = 4
self.result_col= 5
self.current_grid_line = 1
self.win = QWidget()
self.win.resize(250, 150)
self.win.setWindowTitle('Anselm')
......@@ -53,30 +61,45 @@ class Anselm(System):
std_select = ["SE3", "CE3", "FRS5", "DKM_PPC4"]
std_select_combo = self.make_combo(std_select, first_item = None)
self.add_widget_to_grid(std_select_combo ,1, 1)
self.add_widget_to_grid(add_device_bttn ,1, 2)
self.add_widget_to_grid(std_select_combo ,self.current_grid_line, self.std_col)
self.add_widget_to_grid(add_device_bttn ,self.current_grid_line, self.add_device_btn_col)
std_select_combo.currentIndexChanged.connect(lambda: self.std_selected(std_select_combo))
self.draw_grid()
def add_widget_to_grid(self, widget, line, col):
#old_widget_item = self.grid.itemAtPosition (line, col)
#old_widget = old_widget_item.widget()
self.grid.addWidget(widget, line, col)
def make_combo(self, item_list, first_item='select'):
combo = QComboBox(self.win)
if first_item:
combo.addItem(first_item)
for item in item_list:
combo.addItem(item)
return combo
def run_task(self, line):
self.log.info("try to start device at line {}".format(line))
self.worker.work_on_line = line
self.worker.run()
def end_task(self, line):
self.add_widget_to_grid(self.make_result_label(line = line), line, self.result_col)
self.log.info("end task at line {}".format(line))
def add_device_line(self):
self.current_grid_line +=1
line = self.current_grid_line
run_bttn = self.make_run_bttn(line = line)
auxobj_combo = self.make_auxobj_combo(line = line)
run_kind_combo = self.make_run_kind_combo(line = line)
self.add_widget_to_grid(run_bttn, line, 1)
self.add_widget_to_grid(run_kind_combo, line, 2)
self.add_widget_to_grid(auxobj_combo, line, 3)
self.add_widget_to_grid(self.make_auxobj_combo(line = line), line, self.auxobj_col)
self.draw_grid()
def draw_grid(self):
......@@ -84,33 +107,34 @@ class Anselm(System):
self.win.show()
def make_run_bttn(self, line):
run_device_bttn = QPushButton("run", self.win)
run_device_bttn.clicked.connect(lambda: self.run_task(line))
b = QPushButton("run", self.win)
b.clicked.connect(lambda: self.run_task(line))
return run_device_bttn
return b
def make_result_label(self, line, text):
result_textbox = QLabel(self.win)
result_textbox.resize(280,40)
result_textbox.setText("-----------")
def make_result_label(self, line):
l = QLabel(self.win)
l.resize(80,40)
result = self.aget('result', line)
l.setText(result)
return result_textbox
return l
def make_run_kind_combo(self, line):
run_kinds = ["single", "loop"]
combo = self.make_combo(run_kinds, first_item = None)
combo.currentIndexChanged.connect(lambda: self.run_kind_selected(combo, line))
c = self.make_combo(run_kinds, first_item = None)
c.currentIndexChanged.connect(lambda: self.run_kind_selected(c, line))
return combo
return c
def make_calib_id_combo(self, line):
run_kinds = ["single", "loop"]
combo = self.make_combo(run_kinds, first_item = None)
combo.currentIndexChanged.connect(lambda: self.run_kind_selected(combo, line))
c = self.make_combo(run_kinds, first_item = None)
c.currentIndexChanged.connect(lambda: self.run_kind_selected(c, line))
return combo
return c
def make_auxobj_combo(self, line):
......@@ -118,10 +142,10 @@ class Anselm(System):
self.log.debug("found following auxobj ids {}".format(aux_obj_ids))
combo = self.make_combo(aux_obj_ids)
combo.currentIndexChanged.connect(lambda: self.auxobj_selected(combo, line))
c = self.make_combo(aux_obj_ids)
c.currentIndexChanged.connect(lambda: self.auxobj_selected(c, line))
return combo
return c
def make_task_combo(self, doc_id, line):
......@@ -129,10 +153,10 @@ class Anselm(System):
self.log.debug("found following tasknames {}".format(task_names))
combo = self.make_combo(task_names)
combo.currentIndexChanged.connect(lambda: self.task_selected(combo, line))
c = self.make_combo(task_names)
c.currentIndexChanged.connect(lambda: self.task_selected(c, line))
return combo
return c
def run_kind_selected(self, combo, line):
......@@ -142,42 +166,28 @@ class Anselm(System):
def task_selected(self, combo, line):
task_name = combo.currentText()
doc_id = self.aget('doc_id', line)
self.aset('task_name', line, task_name)
task = self.db.get_task(doc_id, task_name)
self.aset('task', line, task)
# add elements for next actions
self.add_widget_to_grid(self.make_run_bttn(line=line), line, self.run_btn_col)
self.add_widget_to_grid(self.make_run_kind_combo(line=line), line, self.run_kind_col)
self.log.debug("task: {}".format(task))
self.log.info("task with name {} selected at line {}".format(task_name, line))
def auxobj_selected(self, combo, line):
doc_id = combo.currentText()
self.aset('doc_id', line, doc_id)
self.log.debug("select {} at line {}".format(doc_id, line))
auxobj_combo = self.make_task_combo(doc_id = doc_id, line = line)
self.add_widget_to_grid(widget=auxobj_combo, line=line, col=4)
task_combo = self.make_task_combo(doc_id = doc_id, line = line)
self.add_widget_to_grid(widget=task_combo, line=line, col=self.task_col)
self.draw_grid()
def add_widget_to_grid(self, widget, line, col):
#old_widget_item = self.grid.itemAtPosition (line, col)
#old_widget = old_widget_item.widget()
self.grid.addWidget(widget, line, col)
def make_combo(self, item_list, first_item='select'):
combo = QComboBox(self.win)
if first_item:
combo.addItem(first_item)
for item in item_list:
combo.addItem(item)
return combo
def std_selected(self, combo):
standard = combo.currentText()
......
......@@ -40,7 +40,7 @@ class System:
host = db_dict.get('host')
db = db_dict.get('db')
self.r = redis.StrictRedis(host=host, port=port, db=db)
self.r = redis.StrictRedis(host=host, port=port, db=db, decode_responses=True)
self.log.info("key value store ok")
self.p = self.r.pubsub()
......
......@@ -49,9 +49,8 @@ class Worker(System):
self.r.publish('io', line)
def wait_worker(self, task, line):
print("start---")
time.sleep(5)
print("end---")
self.aset('result', line, [{'completed':True}])
self.r.publish('io', line)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment