From ad1719c77f7da0f8bf05780be8ca7e48ffdc1f1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20Frohm=C3=BCller?= Date: Tue, 16 Sep 2025 17:26:40 +0200 Subject: [PATCH 1/3] file_logging --- PRINT.py | 13 +++-- libs/global_var.py | 5 +- libs/threads.py | 92 +++++++++++++++++++++----------- libs/win_daq.py | 37 ++++++++----- libs/win_mainframe_prearrange.py | 12 ++--- 5 files changed, 99 insertions(+), 60 deletions(-) diff --git a/PRINT.py b/PRINT.py index 0b62479..1d5ad31 100644 --- a/PRINT.py +++ b/PRINT.py @@ -131,10 +131,13 @@ # create logfile and get path logpath = fu.create_logfile() -pmp_log_name = f"pmp_data_{logpath.stem}.csv" -pmp_save_path = Path(logpath).parent / pmp_log_name -with open(pmp_save_path, 'x') as f: - f.write('time,pmp,freq,volt,amps,torq\n') +data_log_name = f"PRINT_data_{logpath.stem}.csv" +datalog_save_path = Path(logpath).parent / data_log_name +with open(datalog_save_path, 'x') as f: + f.write( + f"time,ID,X,Y,Z,XR,YR,ZR,TCP,freq_P1,volt_P1,amps_P1,torq_P1,freq_P2," + f"volt_P2,amps_P2,torq_P2,mix_freq,temp_IN,temp_OUT\n" + ) print(f"writing log at: {logpath}") print(f"connecting: ", end='') @@ -148,7 +151,7 @@ app = 0 win = 0 app = QApplication(sys.argv) -win = Mainframe(logpath, dev_avail, pmp_save_path) +win = Mainframe(logpath, dev_avail, datalog_save_path) win.show() app.exec() # sys.exit(app.exec()) diff --git a/libs/global_var.py b/libs/global_var.py index ff43e1b..b48b7d7 100644 --- a/libs/global_var.py +++ b/libs/global_var.py @@ -182,7 +182,7 @@ 'msp': { # Main Supply Pump 'ip': '192.168.178.36:17', 'err': False, - 'temp': True, + 'temp': False, 'pressure': False, }, 'imp': { # Inline Mixing Pump @@ -194,8 +194,9 @@ 'amps': False }, 'phc': { # Print Head Controller - 'ip': '', + 'ip': '192.168.178.58:17', 'err': False, + 'temp': True, 'aircon': False, 'fdist': False, 'edist': False diff --git a/libs/threads.py b/libs/threads.py index e6b8517..e7357d8 100644 --- a/libs/threads.py +++ b/libs/threads.py @@ -10,6 +10,7 @@ # python standard libraries import os +import re import cv2 import sys import math as m @@ -492,42 +493,69 @@ def loc_request(loc:dict, key:str) -> None: fu.store_sensor_data while its at it """ - for sub_key in loc: - if sub_key == 'ip' or sub_key == 'err': - continue + # for sub_key in loc: + # if sub_key == 'ip' or sub_key == 'err': + # continue - if loc[sub_key]: # only check true-marked sensors - data = fu.sensor_req(loc["ip"], sub_key) + # if loc[sub_key]: # only check true-marked sensors + # data = fu.sensor_req(loc["ip"], sub_key) - if isinstance(data, list): - # to-do: write handling for legacy data - self.dataReceived.emit(loc['ip']) - # extract tuple from list: (val, uptime) - # newest entry is at the end of the list - latest_data = data[len(data) - 1] - loc['err'] = False - - with QMutexLocker(GlobalMutex): - g.DBDataBlock.store(latest_data, key, sub_key) - - elif data is not None: - # log recurring error from one location only once - if loc['err'] == False: - loc['err'] = True - self.logEntry.emit( - 'SENS', - f"request error from {loc['ip']}: {data}" - ) - self.logEntry.emit( - 'SENS', - f"trying to reconnect to {loc['ip']}.." - ) + # if isinstance(data, list): + # # to-do: write handling for legacy data + # self.dataReceived.emit(loc['ip']) + # # extract tuple from list: (val, uptime) + # # newest entry is at the end of the list + # latest_data = data[len(data) - 1] + # loc['err'] = False + + # with QMutexLocker(GlobalMutex): + # g.DBDataBlock.store(latest_data, key, sub_key) + + # elif data is not None: + # # log recurring error from one location only once + # if loc['err'] == False: + # loc['err'] = True + # self.logEntry.emit( + # 'SENS', + # f"request error from {loc['ip']}: {data}" + # ) + # self.logEntry.emit( + # 'SENS', + # f"trying to reconnect to {loc['ip']}.." + # ) - return None + # return None + + # # main cycle + # for key in g.SEN_dict: + # loc_request(g.SEN_dict[key], key) + + # overwrite for simplicity + try: + ans = requests.get(f"http://192.168.178.58:17/data", timeout=g.SEN_timeout) + ans.raise_for_status() + except Exception as err: + print(f"request failed: {err}!") + return - # main cycle - for key in g.SEN_dict: - loc_request(g.SEN_dict[key], key) + ans_str = ans.text + if 'no data available' in ans_str: + return None + + data_loss_str, entry_str = ans_str.split('&') + if data_loss_str.find('true') != -1: + data_loss = True + else: + data_loss = False + entries = entry_str.split(';') + # use last entry + temps = re.findall('>(\d+\.\d+)', entries[-2]) + try: + g.DBDataBlock.amb_temp = float(temps[0]) + g.DBDataBlock.imp_temp = float(temps[1]) + except: + pass + # print(f"New TEMP -- IN: {temps[0]} -- OUT: {temps[1]} ({entries} // {data_loss})") self.cycleDone.emit() diff --git a/libs/win_daq.py b/libs/win_daq.py index 692f8b1..9577260 100644 --- a/libs/win_daq.py +++ b/libs/win_daq.py @@ -46,10 +46,12 @@ class DAQWindow(QWidget, Ui_DAQWindow): _db_active = True _db_bucket = None _influx_error = False + _log_to_file = '' - def __init__(self, parent=None) -> None: + def __init__(self, log_to_file:str, parent=None) -> None: super().__init__(parent) + self._log_to_file = log_to_file # UI setup self.setupUi(self) @@ -60,10 +62,9 @@ def __init__(self, parent=None) -> None: ) # timer setup - self.time_update() self._ClockTimer = QTimer() - self._ClockTimer.setInterval(1000) - self._ClockTimer.timeout.connect(self.time_update) + self._ClockTimer.setInterval(500) + self._ClockTimer.timeout.connect(self.data_update) self._ClockTimer.start() self._DBTimer = QTimer() @@ -93,16 +94,12 @@ def __init__(self, parent=None) -> None: self.PATH_disp_path.setText(g.DB_url) - def time_update(self) -> None: - """clock update, signal from mainframe""" + def data_update(self) -> None: + """data label update, signal from robo_recv""" self.PATH_disp_datetime.setText( f"{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}" ) - - def data_update(self) -> None: - """data label update, signal from robo_recv""" - self.BASIC_disp_ambTemp.setText(f"{g.DBDataBlock.amb_temp} °C") self.BASIC_disp_ambHum.setText(f"{g.DBDataBlock.amb_humidity} rH") self.BASIC_disp_delivPumpTemp.setText( @@ -208,6 +205,22 @@ def to_influx_db(self) -> None: signal from (robo_recv or sensor_cycle?) """ + # log to file + if self._log_to_file != '': + with open(self._log_to_file, 'a') as log: + Curr = g.DBDataBlock + Pos = Curr.Robo.Coor + Pmp1 = Curr.Pump1 + Pmp2 = Curr.Pump2 + log.write( + f"{datetime.now().strftime('%Y-%m-%d_%H%M%S')}," + f"{Curr.Robo.id},{Pos.x},{Pos.y},{Pos.z}," + f"{Pos.rx},{Pos.ry},{Pos.rz},{Curr.Robo.t_speed}," + f"{Pmp1.freq},{Pmp1.volt},{Pmp1.amps},{Pmp1.torq}," + f"{Pmp2.freq},{Pmp2.volt},{Pmp2.amps},{Pmp2.torq}," + f"{Curr.imp_freq},{Curr.amb_temp},{Curr.imp_temp}\n" + ) + # upload to TCP Influx server now = datetime.now().strftime('%Y-%m-%d %H:%M:%S') DBEntry = influxdb_client\ @@ -280,7 +293,7 @@ def closeEvent(self, event) -> None: ######################## DAQ WIN DIALOG ############################ -def daq_window(standalone=False) -> 'DAQWindow': +def daq_window(standalone=False, log_to_file='') -> 'DAQWindow': """shows a dialog window, text and title can be set, returns the users choice """ @@ -291,7 +304,7 @@ def daq_window(standalone=False) -> 'DAQWindow': daq_app = 0 daq_app = QApplication(sys.argv) - daq_win = DAQWindow() + daq_win = DAQWindow(log_to_file) if standalone: daq_win.show() diff --git a/libs/win_mainframe_prearrange.py b/libs/win_mainframe_prearrange.py index fa2049e..10e46c8 100644 --- a/libs/win_mainframe_prearrange.py +++ b/libs/win_mainframe_prearrange.py @@ -76,11 +76,10 @@ class PreMainframe(QMainWindow, Ui_MainWindow): # SETUP # ######################################################################### - def __init__(self, lpath, testrun=False, p_log='', parent=None) -> None: + def __init__(self, lpath, testrun=False, log_to_file='', parent=None) -> None: super().__init__(parent) self._testrun = testrun - self._p_log = p_log # UI SETUP self.setupUi(self) @@ -128,7 +127,7 @@ def __init__(self, lpath, testrun=False, p_log='', parent=None) -> None: self.log_entry('GNRL', 'main GUI running.') # SIDE WINDOW SETUP - self.Daq = daq_window() + self.Daq = daq_window(log_to_file=log_to_file) self.CamCap = cam_cap_window() for side_win in [self.Daq, self.CamCap]: side_win.logEntry.connect(self.log_entry) @@ -597,12 +596,6 @@ def p_recv(display:list, stt_data:du.PumpTelemetry, dump:str) -> None: display[2].setText(f"{stt_data.amps} A") display[3].setText(f"{stt_data.torq} Nm") setattr(self, dump, telem) - if self._p_log != '': - with open(self._p_log, 'a') as p_log: - p_log.write( - f"{datetime.now().strftime('%Y-%m-%d_%H%M%S')},{source}," - f"{telem.freq},{telem.volt},{telem.amps},{telem.torq}\n" - ) match source: case 'P1': @@ -634,6 +627,7 @@ def prh_send(self, mixer_speed:float) -> None: self.CONN_PRH_disp_writeBuffer.setText(str(mixer_speed)) self.CONN_PRH_disp_bytesWritten.setText("length of float") + g.DBDataBlock.imp_freq = g.MIX_last_speed self.log_entry('PRTH', f"speed set to {mixer_speed}") From 365692885ecf2743670a3d48a9f46be48b6e0089 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20Frohm=C3=BCller?= Date: Fri, 10 Oct 2025 09:38:04 +0200 Subject: [PATCH 2/3] CHKR update, MIX speed display --- libs/data_utilities.py | 6 +++++- libs/threads.py | 15 +++++++-------- libs/win_mainframe.py | 2 +- libs/win_mainframe_prearrange.py | 17 ++++++++++++++++- ui/UI_mainframe_v6.py | 3 ++- 5 files changed, 31 insertions(+), 12 deletions(-) diff --git a/libs/data_utilities.py b/libs/data_utilities.py index c2e1bdb..68a8f27 100644 --- a/libs/data_utilities.py +++ b/libs/data_utilities.py @@ -1610,6 +1610,7 @@ class TCPSocket (yaml.YAMLObject): close TCP/IP connection """ yaml_tag = u'!TCPSocket' + connected = False def __init__( self, @@ -1692,6 +1693,9 @@ def connect(self) -> tuple[str, int] | Exception: not possible """ + if self.connected: + return + try: server_address = (self.ip, int(self.port)) except ValueError: @@ -1705,7 +1709,7 @@ def connect(self) -> tuple[str, int] | Exception: self._Socket.settimeout(self.rw_tout) except Exception as err: - self.connected = 0 + self.connected = False return err return server_address diff --git a/libs/threads.py b/libs/threads.py index e7357d8..3586408 100644 --- a/libs/threads.py +++ b/libs/threads.py @@ -31,7 +31,7 @@ import libs.data_utilities as du import libs.func_utilities as fu import libs.pump_utilities as pu -from libs.win_mainframe_prearrange import GlobalMutex, PmpMutex +from libs.win_mainframe_prearrange import GlobalMutex, PmpMutex, PrhMutex @@ -106,12 +106,11 @@ def send(self) -> None: serial.keepAlive() if pinch is not None and g.PRH_connected: try: - ans = requests.post(f"{g.PRH_url}/pinch", data={'s': str(float(pinch))}, timeout=0.1) - print(ans.text) - except requests.Timeout as e: + requests.post(f"{g.PRH_url}/pinch", data={'s': str(float(pinch))}, timeout=1) + except: log_txt = f"post to pinch valve failed! {g.PRH_url} not present!" self.logEntry.emit('CONN', log_txt) - print(log_txt) + # print(log_txt) # SEND TO MIXER if g.PRH_connected and g.MIX_last_speed != g.MIX_speed: @@ -532,10 +531,10 @@ def loc_request(loc:dict, key:str) -> None: # overwrite for simplicity try: - ans = requests.get(f"http://192.168.178.58:17/data", timeout=g.SEN_timeout) + ans = requests.get(f"{g.PRH_url}/data", timeout=g.SEN_timeout) ans.raise_for_status() - except Exception as err: - print(f"request failed: {err}!") + except: + # print(f"request failed: {err}!") return ans_str = ans.text diff --git a/libs/win_mainframe.py b/libs/win_mainframe.py index c7b8520..c350507 100644 --- a/libs/win_mainframe.py +++ b/libs/win_mainframe.py @@ -31,7 +31,7 @@ # import PyQT UIs (converted from .ui to .py using Qt-Designer und pyuic5) from libs.win_mainframe_prearrange import PreMainframe, Watchdog -from libs.win_mainframe_prearrange import GlobalMutex, PmpMutex +from libs.win_mainframe_prearrange import GlobalMutex, PmpMutex, PrhMutex # import my own libs diff --git a/libs/win_mainframe_prearrange.py b/libs/win_mainframe_prearrange.py index 10e46c8..bebba11 100644 --- a/libs/win_mainframe_prearrange.py +++ b/libs/win_mainframe_prearrange.py @@ -918,7 +918,7 @@ def pinch_valve_toggle(self, internal=False, val=0.0) -> None: pinch_state = val try: requests.post(f"{g.PRH_url}/pinch", data={'s': pinch_state}, timeout=1) - except requests.Timeout as e: + except: log_txt = f"post to pinch valve failed! {g.PRH_url} not present!" self.log_entry('CONN', log_txt) print(log_txt) @@ -1010,6 +1010,20 @@ def set_range(self, source='') -> None: self.CHKR_disp_ry.setText(f"{new_min.ry}/{new_max.ry}") self.CHKR_disp_rz.setText(f"{new_min.rz}/{new_max.rz}") self.CHKR_disp_ext.setText(f"{new_min.ext}/{new_max.ext}") + self.CHKR_float_x_min.setValue(new_min.x) + self.CHKR_float_y_min.setValue(new_min.y) + self.CHKR_float_z_min.setValue(new_min.z) + self.CHKR_float_rx_min.setValue(new_min.rx) + self.CHKR_float_ry_min.setValue(new_min.ry) + self.CHKR_float_rz_min.setValue(new_min.rz) + self.CHKR_float_ext_min.setValue(new_min.ext) + self.CHKR_float_x_max.setValue(new_max.x) + self.CHKR_float_y_max.setValue(new_max.y) + self.CHKR_float_z_max.setValue(new_max.z) + self.CHKR_float_rx_max.setValue(new_max.rx) + self.CHKR_float_ry_max.setValue(new_max.ry) + self.CHKR_float_rz_max.setValue(new_max.rz) + self.CHKR_float_ext_max.setValue(new_max.ext) def set_zero(self, axis:list, source='') -> None: @@ -1185,6 +1199,7 @@ def token(self): # used to manage global data exchange of modbus shutdown GlobalMutex = QMutex() PmpMutex = QMutex() +PrhMutex = QMutex() # only do the following if run as main program if __name__ == "__main__": diff --git a/ui/UI_mainframe_v6.py b/ui/UI_mainframe_v6.py index a123c14..24f6298 100644 --- a/ui/UI_mainframe_v6.py +++ b/ui/UI_mainframe_v6.py @@ -2795,6 +2795,7 @@ def setupUi(self, MainWindow): QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter ) self.PRH_num_setSpeed.setObjectName("PRH_num_setSpeed") + self.PRH_num_setSpeed.setMaximum(300) self.PRH_lbl_currSpeed = QtWidgets.QLabel(self.PRH_frame) self.PRH_lbl_currSpeed.setGeometry(QtCore.QRect(350, 80, 171, 31)) self.PRH_lbl_currSpeed.setStyleSheet( @@ -5694,7 +5695,7 @@ def retranslateUi(self, MainWindow): self.PRH_0_frameLabel.setText(_translate("MainWindow", "PRH CTRL")) self.PRH_btt_stop.setText(_translate("MainWindow", "⛔ STOP")) self.PRH_disp_currSpeed.setText(_translate("MainWindow", "0%")) - self.PRH_num_setSpeed.setSuffix(_translate("MainWindow", "%")) + self.PRH_num_setSpeed.setSuffix(_translate("MainWindow", "U/min")) self.PRH_lbl_currSpeed.setText(_translate("MainWindow", "current speed")) self.PRH_lbl_setSpeed.setText(_translate("MainWindow", "set speed")) self.PRH_btt_setSpeed.setText(_translate("MainWindow", "SET")) From e1629805e0785166e09f067c6e5f7f67368ae2c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Max=20Frohm=C3=BCller?= Date: Fri, 10 Oct 2025 09:57:32 +0200 Subject: [PATCH 3/3] CHKR update, MIX speed display --- ui/mainframe_v2.ui | 132 +++++++++++++++++++++++++++++------ ui/mainframe_v2_backup.ui | 140 +++++++++++++++++++++++++++++++------- 2 files changed, 230 insertions(+), 42 deletions(-) diff --git a/ui/mainframe_v2.ui b/ui/mainframe_v2.ui index 98fa4bf..7e9de61 100644 --- a/ui/mainframe_v2.ui +++ b/ui/mainframe_v2.ui @@ -5633,9 +5633,9 @@ color: #E1E5EE; - 161 + 141 190 - 111 + 131 41 @@ -5646,7 +5646,13 @@ color: #E1E5EE; Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - % + U/min + + + 600 + + + 200 @@ -5673,9 +5679,9 @@ color: #E1E5EE; - 20 + 50 200 - 131 + 91 31 @@ -10963,6 +10969,19 @@ color: #E1E5EE; tab + IO_btt_newFile + IO_btt_xyzextZero + IO_btt_rZero + IO_chk_extTrailing + IO_chk_autoPCtrl + IO_chk_rangeChk + IO_chk_xyextChk + IO_btt_loadFile + IO_num_addByID + IO_btt_addByID + SIB_entry_sib1 + SIB_entry_sib2 + SIB_entry_sib3 SGLC_btt_sendFirstQComm SGLC_entry_gcodeSglComm SGLC_btt_gcodeSglComm @@ -10974,23 +10993,24 @@ color: #E1E5EE; SGLC_btt_rapidSglComm_addByID SCTRL_btt_startQProcessing SCTRL_btt_holdQProcessing + SCTRL_num_mmsOverwrite + SCTRL_btt_mmsOverwrite SCTRL_num_liveAd_robot SCTRL_num_liveAd_pump1 + SCTRL_num_liveAd_pump2 SCTRL_btt_addSIB1_atFront SCTRL_btt_addSIB1_atEnd SCTRL_btt_addSIB2_atFront SCTRL_btt_addSIB2_atEnd SCTRL_btt_addSIB3_atFront SCTRL_btt_addSIB3_atEnd + SCTRL_btt_clrQ SCTRL_entry_clrByID SCTRL_btt_clrByID - SCTRL_btt_clrQ SCTRL_arr_queue SCTRL_btt_forcedStop + SCTRL_chk_autoScroll DC_drpd_moveType - DC_btt_xyzZero - DC_btt_extZero - DC_btt_home DC_sld_stepWidth DC_btt_xPlus DC_btt_xMinus @@ -11000,16 +11020,19 @@ color: #E1E5EE; DC_btt_zMinus DC_btt_extPlus DC_btt_extMinus + DC_btt_xyzZero + DC_btt_extZero + DC_btt_home + NC_btt_getValues NC_float_x NC_float_y NC_float_z NC_float_ext + NC_btt_xyzSend + NC_btt_xyzextSend NC_float_rx NC_float_ry NC_float_rz - NC_btt_getValues - NC_btt_xyzSend - NC_btt_xyzextSend NC_btt_rSend NC_btt_rZero TERM_arr_terminal @@ -11018,13 +11041,57 @@ color: #E1E5EE; TERM_btt_gcodeInterp TERM_entry_rapidInterp TERM_btt_rapidInterp - CONN_tab + ADC_num_trolley + ADC_btt_clamp + ADC_btt_cut + ADC_btt_placeSpring + ADC_btt_loadSpring + ADC_btt_calibrate + ADC_btt_resetAll + ASC_num_trolley + ASC_btt_clamp + ASC_btt_cut + ASC_btt_placeSpring + ASC_btt_loadSpring + ASC_entry_SCLines + ASC_btt_overwrSC + PRH_sld_speed + PRH_num_setSpeed + PRH_btt_setSpeed + PRH_btt_stop + PRH_btt_actWithPump + PRH_btt_pinchValve + PUMP_num_setSpeed + PUMP_btt_setSpeed + PUMP_btt_stop + PUMP_btt_plus1 + PUMP_btt_minus1 + PUMP_btt_plus10 + PUMP_btt_minus10 + PUMP_btt_plus25 + PUMP_btt_minus25 + PUMP_btt_reverse + PUMP_sld_outputRatio + PUMP_num_setSpeedP1 + PUMP_btt_setSpeedP1 + PUMP_num_setSpeedP2 + PUMP_btt_setSpeedP2 + PUMP_btt_ccToDefault + PUMP_btt_scToDefault + LAH_btt_active + LAH_num_distance + LAH_float_retractFactor + LAH_float_prerunFactor CONN_num_commForerun + CONN_tab CONN_ROB_btt_reconn CONN_ROB_btt_discon - SET_float_volPerMM - SET_float_frToMms - SET_num_zone + CONN_PUMP1_btt_reconn + CONN_PUMP1_btt_discon + CONN_PUMP2_btt_reconn + CONN_PUMP2_btt_discon + CONN_PRH_btt_reconn + CONN_PRH_btt_discon SET_num_transSpeed_dc SET_num_orientSpeed_dc SET_num_accelRamp_dc @@ -11033,10 +11100,37 @@ color: #E1E5EE; SET_num_orientSpeed_print SET_num_accelRamp_print SET_num_decelRamp_print + SET_float_volPerMM + SET_float_frToMms + SET_num_zone + SET_num_followInterv + SET_num_followSkip + SET_num_retractSpeed + SET_float_p1Flow + SET_float_p2Flow SET_btt_apply SET_btt_default + CHKR_float_x_min + CHKR_float_x_max + CHKR_float_y_min + CHKR_float_y_max + CHKR_float_z_min + CHKR_float_z_max + CHKR_float_ext_min + CHKR_float_ext_max + CHKR_float_rx_min + CHKR_float_rx_max + CHKR_float_ry_min + CHKR_float_ry_max + CHKR_float_rz_min + CHKR_float_rz_max + CHKR_btt_default + CHKR_btt_overwrite + SID_num_overwrite + SID_btt_overwrite ICQ_arr_terminal - ZERO_btt_newZero + ICQ_chk_autoScroll + ZERO_btt_loadDefault ZERO_float_x ZERO_float_y ZERO_float_z @@ -11044,8 +11138,8 @@ color: #E1E5EE; ZERO_float_rx ZERO_float_ry ZERO_float_rz - CONN_PUMP1_btt_reconn - CONN_PUMP1_btt_discon + ZERO_btt_newZero + ZERO_btt_loadZeroFile diff --git a/ui/mainframe_v2_backup.ui b/ui/mainframe_v2_backup.ui index 7eacbb3..7e9de61 100644 --- a/ui/mainframe_v2_backup.ui +++ b/ui/mainframe_v2_backup.ui @@ -581,7 +581,7 @@ color: #E1E5EE; - 500 + 250 360 231 41 @@ -595,7 +595,7 @@ color: #E1E5EE; 500 - 420 + 360 231 41 @@ -1107,8 +1107,8 @@ color: #E1E5EE; <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Bahnschrift'; font-size:12pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">MoveJ [[0.0,1900.0,-600.0],[0.00344,0.72283,0.69100,0.00380],[,,,,,]],[200,100,200,200],z50,tool0 EXT400</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">MoveJ [[0.0,1900.0,-895.0],[0.00344,0.72283,0.69100,0.00380],[,,,,,]],[200,100,200,200],z0,tool0 EXT400</p></body></html> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">MoveJ [[-340.0,2060.0,0.0],[0.00344,0.72283,0.69100,0.00380],[,,,,,]],[300,100,200,200],z100,tool0 EXT200</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">G28</p></body></html> false @@ -5633,9 +5633,9 @@ color: #E1E5EE; - 161 + 141 190 - 111 + 131 41 @@ -5646,7 +5646,13 @@ color: #E1E5EE; Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - % + U/min + + + 600 + + + 200 @@ -5673,9 +5679,9 @@ color: #E1E5EE; - 20 + 50 200 - 131 + 91 31 @@ -10963,6 +10969,19 @@ color: #E1E5EE; tab + IO_btt_newFile + IO_btt_xyzextZero + IO_btt_rZero + IO_chk_extTrailing + IO_chk_autoPCtrl + IO_chk_rangeChk + IO_chk_xyextChk + IO_btt_loadFile + IO_num_addByID + IO_btt_addByID + SIB_entry_sib1 + SIB_entry_sib2 + SIB_entry_sib3 SGLC_btt_sendFirstQComm SGLC_entry_gcodeSglComm SGLC_btt_gcodeSglComm @@ -10974,23 +10993,24 @@ color: #E1E5EE; SGLC_btt_rapidSglComm_addByID SCTRL_btt_startQProcessing SCTRL_btt_holdQProcessing + SCTRL_num_mmsOverwrite + SCTRL_btt_mmsOverwrite SCTRL_num_liveAd_robot SCTRL_num_liveAd_pump1 + SCTRL_num_liveAd_pump2 SCTRL_btt_addSIB1_atFront SCTRL_btt_addSIB1_atEnd SCTRL_btt_addSIB2_atFront SCTRL_btt_addSIB2_atEnd SCTRL_btt_addSIB3_atFront SCTRL_btt_addSIB3_atEnd + SCTRL_btt_clrQ SCTRL_entry_clrByID SCTRL_btt_clrByID - SCTRL_btt_clrQ SCTRL_arr_queue SCTRL_btt_forcedStop + SCTRL_chk_autoScroll DC_drpd_moveType - DC_btt_xyzZero - DC_btt_extZero - DC_btt_home DC_sld_stepWidth DC_btt_xPlus DC_btt_xMinus @@ -11000,16 +11020,19 @@ color: #E1E5EE; DC_btt_zMinus DC_btt_extPlus DC_btt_extMinus + DC_btt_xyzZero + DC_btt_extZero + DC_btt_home + NC_btt_getValues NC_float_x NC_float_y NC_float_z NC_float_ext + NC_btt_xyzSend + NC_btt_xyzextSend NC_float_rx NC_float_ry NC_float_rz - NC_btt_getValues - NC_btt_xyzSend - NC_btt_xyzextSend NC_btt_rSend NC_btt_rZero TERM_arr_terminal @@ -11018,13 +11041,57 @@ color: #E1E5EE; TERM_btt_gcodeInterp TERM_entry_rapidInterp TERM_btt_rapidInterp - CONN_tab + ADC_num_trolley + ADC_btt_clamp + ADC_btt_cut + ADC_btt_placeSpring + ADC_btt_loadSpring + ADC_btt_calibrate + ADC_btt_resetAll + ASC_num_trolley + ASC_btt_clamp + ASC_btt_cut + ASC_btt_placeSpring + ASC_btt_loadSpring + ASC_entry_SCLines + ASC_btt_overwrSC + PRH_sld_speed + PRH_num_setSpeed + PRH_btt_setSpeed + PRH_btt_stop + PRH_btt_actWithPump + PRH_btt_pinchValve + PUMP_num_setSpeed + PUMP_btt_setSpeed + PUMP_btt_stop + PUMP_btt_plus1 + PUMP_btt_minus1 + PUMP_btt_plus10 + PUMP_btt_minus10 + PUMP_btt_plus25 + PUMP_btt_minus25 + PUMP_btt_reverse + PUMP_sld_outputRatio + PUMP_num_setSpeedP1 + PUMP_btt_setSpeedP1 + PUMP_num_setSpeedP2 + PUMP_btt_setSpeedP2 + PUMP_btt_ccToDefault + PUMP_btt_scToDefault + LAH_btt_active + LAH_num_distance + LAH_float_retractFactor + LAH_float_prerunFactor CONN_num_commForerun + CONN_tab CONN_ROB_btt_reconn CONN_ROB_btt_discon - SET_float_volPerMM - SET_float_frToMms - SET_num_zone + CONN_PUMP1_btt_reconn + CONN_PUMP1_btt_discon + CONN_PUMP2_btt_reconn + CONN_PUMP2_btt_discon + CONN_PRH_btt_reconn + CONN_PRH_btt_discon SET_num_transSpeed_dc SET_num_orientSpeed_dc SET_num_accelRamp_dc @@ -11033,10 +11100,37 @@ color: #E1E5EE; SET_num_orientSpeed_print SET_num_accelRamp_print SET_num_decelRamp_print + SET_float_volPerMM + SET_float_frToMms + SET_num_zone + SET_num_followInterv + SET_num_followSkip + SET_num_retractSpeed + SET_float_p1Flow + SET_float_p2Flow SET_btt_apply SET_btt_default + CHKR_float_x_min + CHKR_float_x_max + CHKR_float_y_min + CHKR_float_y_max + CHKR_float_z_min + CHKR_float_z_max + CHKR_float_ext_min + CHKR_float_ext_max + CHKR_float_rx_min + CHKR_float_rx_max + CHKR_float_ry_min + CHKR_float_ry_max + CHKR_float_rz_min + CHKR_float_rz_max + CHKR_btt_default + CHKR_btt_overwrite + SID_num_overwrite + SID_btt_overwrite ICQ_arr_terminal - ZERO_btt_newZero + ICQ_chk_autoScroll + ZERO_btt_loadDefault ZERO_float_x ZERO_float_y ZERO_float_z @@ -11044,8 +11138,8 @@ color: #E1E5EE; ZERO_float_rx ZERO_float_ry ZERO_float_rz - CONN_PUMP1_btt_reconn - CONN_PUMP1_btt_discon + ZERO_btt_newZero + ZERO_btt_loadZeroFile