From 141212c1cbb1c49c871e103a20b2ebccbc2e7ba7 Mon Sep 17 00:00:00 2001 From: Jodaille Date: Fri, 28 Feb 2025 16:17:43 +0100 Subject: [PATCH 01/13] Zoe water pump counters: display values --- zoe_waterpump_counter_reset.py | 160 +++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 zoe_waterpump_counter_reset.py diff --git a/zoe_waterpump_counter_reset.py b/zoe_waterpump_counter_reset.py new file mode 100644 index 0000000..4d9a147 --- /dev/null +++ b/zoe_waterpump_counter_reset.py @@ -0,0 +1,160 @@ +# -*- coding: utf-8 -*- + +# (c) 2017 + +import PyQt5.QtCore as core +import PyQt5.QtWidgets as gui +from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QTableWidget, QTableWidgetItem +import ecu +import options + +_ = options.translator('ddt4all') + +plugin_name = _("Zoe water pump Reset") +category = _("EVC Tools") +need_hw = True +ecufile = "EVC_3180_RH5_510_V1.1_20210422T184714" + +class Virginizer(gui.QDialog): + def __init__(self): + super(Virginizer, self).__init__() + self.evc_ecu = ecu.Ecu_file(ecufile, True) + self.setWindowTitle("Water pump counter") + self.setGeometry(100, 100, 400, 300) + + layout = gui.QVBoxLayout() + + # Création du tableau + self.table = QTableWidget() + self.table.setRowCount(4) # Nombre de lignes + self.table.setColumnCount(2) # Nombre de colonnes + self.table.setHorizontalHeaderLabels(["Nom", "Valeur"]) # Entêtes de colonnes + + # Ajout des données dans le tableau + data = [ + ["Low Speed", ""], + ["Middle Speed", ""], + ["High Speed", ""], + ["V_Timer_DrivWEP_ON", ""], #V_Timer_DrivWEP_ON + ] + + for row, (nom, valeur) in enumerate(data): + self.table.setItem(row, 0, QTableWidgetItem(nom)) + self.table.setItem(row, 1, QTableWidgetItem(valeur)) + + # Ajout du tableau au layout + layout.addWidget(self.table) + + infos = gui.QLabel("Zoe water pump counters
" + "water pump counters RESET") + infos.setAlignment(core.Qt.AlignHCenter) + check_button = gui.QPushButton("Check values") + self.status_check = gui.QLabel("Waiting action") + self.status_check.setAlignment(core.Qt.AlignHCenter) + self.virginize_button = gui.QPushButton("Reset counters") + layout.addWidget(infos) + layout.addWidget(check_button) + layout.addWidget(self.status_check) + layout.addWidget(self.virginize_button) + self.setLayout(layout) + self.virginize_button.setEnabled(True) + self.virginize_button.clicked.connect(self.reset_ecu) + check_button.clicked.connect(self.get_counters_values) + self.ecu_connect() + + def ecu_connect(self): + connection = self.evc_ecu.connect_to_hardware() + if not connection: + options.main_window.logview.append(_("Cannot connect to ECU")) + self.finished() + + def get_counters_values(self): + self.start_diag_session() + self.get_low_speed_counter() + self.get_middle_speed_counter() + self.get_high_speed_counter() + self.get_timer_DrivWEP_ON() + self.status_check.setText(_("Values read")) + + + def get_timer_DrivWEP_ON(self): + key_name = "($3531) V_Timer_DrivWEP_ON" + pumptimer_check_request = self.evc_ecu.requests[ + u'DataRead.($3531) V_Timer_DrivWEP_ON'] + + options.main_window.logview.append("reading V_Timer_DrivWEP_ON") + pumptimer_check_values = pumptimer_check_request.send_request() + print(pumptimer_check_values) + value = pumptimer_check_values.get(key_name) + value = str(value) + self.table.setItem(3, 1, QTableWidgetItem(value)) + + def get_low_speed_counter(self): + key_name = "($3349) Time Counter for the driving WEP in Low Speed" + lowspeed_check_request = self.evc_ecu.requests[ + u'DataRead.($3349) Time Counter for the driving WEP in Low Speed'] + options.main_window.logview.append("reading Low speed") + lowspeed_check_values = lowspeed_check_request.send_request() + print(lowspeed_check_values) + value = lowspeed_check_values.get(key_name) + value = str(value) + + options.main_window.logview.append(value) + self.table.setItem(0, 1, QTableWidgetItem(value)) + + def get_middle_speed_counter(self): + key_name = "($334A) Time Counter for the driving WEP in Middle Speed" + middlespeed_check_request = self.evc_ecu.requests[ + u'DataRead.($334A) Time Counter for the driving WEP in Middle Speed'] + + options.main_window.logview.append("reading Middle speed") + + middlespeed_check_values = middlespeed_check_request.send_request() + print(middlespeed_check_values) + value = middlespeed_check_values.get(key_name) + value = str(value) + + options.main_window.logview.append(value) + self.table.setItem(1, 1, QTableWidgetItem(value)) + + def get_high_speed_counter(self): + key_name = "($334B) Time Counter for the driving WEP in High Speed" + highspeed_check_request = self.evc_ecu.requests[ + u'DataRead.($334B) Time Counter for the driving WEP in High Speed'] + + options.main_window.logview.append("reading High speed") + + highspeed_check_values = highspeed_check_request.send_request() + print(highspeed_check_values) + value = highspeed_check_values.get(key_name) + value = str(value) + + options.main_window.logview.append(value) + self.table.setItem(2, 1, QTableWidgetItem(value)) + + def start_diag_session(self): + sds_request = self.evc_ecu.requests[u"StartDiagnosticSession.Default"] + + sds_stream = " ".join(sds_request.build_data_stream({})) + if options.simulation_mode: + print("SdS stream", sds_stream) + return + options.elm.start_session_can(sds_stream) + + def reset_ecu(self): + self.start_diag_session() + + reset_request = self.evc_ecu.requests[u"DataWrite.($3531) V_Timer_DrivWEP_ON"] + request_response = reset_request.send_request() + print(request_response) + if request_response is not None: + self.status_check.setText(_("CLEAR EXECUTED")) + else: + self.status_check.setText(_("CLEAR FAILED")) + + self.get_timer_DrivWEP_ON() + + +def plugin_entry(): + v = Virginizer() + v.exec_() \ No newline at end of file From 1753fa29841b0d6e7d81917afa0d96acfd4a8fe2 Mon Sep 17 00:00:00 2001 From: Jodaille Date: Fri, 28 Feb 2025 17:41:22 +0100 Subject: [PATCH 02/13] Column width --- zoe_waterpump_counter_reset.py | 1 + 1 file changed, 1 insertion(+) diff --git a/zoe_waterpump_counter_reset.py b/zoe_waterpump_counter_reset.py index 4d9a147..049dab1 100644 --- a/zoe_waterpump_counter_reset.py +++ b/zoe_waterpump_counter_reset.py @@ -29,6 +29,7 @@ def __init__(self): self.table.setRowCount(4) # Nombre de lignes self.table.setColumnCount(2) # Nombre de colonnes self.table.setHorizontalHeaderLabels(["Nom", "Valeur"]) # Entêtes de colonnes + self.table.setColumnWidth(0, 200) # Ajout des données dans le tableau data = [ From c7d402aef343907c03e91b2c4878d2d330aed2ad Mon Sep 17 00:00:00 2001 From: Jodaille Date: Fri, 28 Feb 2025 21:05:09 +0100 Subject: [PATCH 03/13] add reset function low, medium, high speed --- zoe_waterpump_counter_reset.py | 43 ++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/zoe_waterpump_counter_reset.py b/zoe_waterpump_counter_reset.py index 049dab1..cb1ac53 100644 --- a/zoe_waterpump_counter_reset.py +++ b/zoe_waterpump_counter_reset.py @@ -72,7 +72,7 @@ def ecu_connect(self): def get_counters_values(self): self.start_diag_session() self.get_low_speed_counter() - self.get_middle_speed_counter() + self.get_medium_speed_counter() self.get_high_speed_counter() self.get_timer_DrivWEP_ON() self.status_check.setText(_("Values read")) @@ -103,7 +103,7 @@ def get_low_speed_counter(self): options.main_window.logview.append(value) self.table.setItem(0, 1, QTableWidgetItem(value)) - def get_middle_speed_counter(self): + def get_medium_speed_counter(self): key_name = "($334A) Time Counter for the driving WEP in Middle Speed" middlespeed_check_request = self.evc_ecu.requests[ u'DataRead.($334A) Time Counter for the driving WEP in Middle Speed'] @@ -144,17 +144,50 @@ def start_diag_session(self): def reset_ecu(self): self.start_diag_session() + self.reset_low_speed_counter() + self.reset_medium_speed_counter() + self.reset_high_speed_counter() + self.reset_timer_DrivWEP() + def reset_timer_DrivWEP(self): reset_request = self.evc_ecu.requests[u"DataWrite.($3531) V_Timer_DrivWEP_ON"] request_response = reset_request.send_request() print(request_response) if request_response is not None: - self.status_check.setText(_("CLEAR EXECUTED")) + self.status_check.setText(_("CLEAR V_Timer_DrivWEP_ON EXECUTED")) else: - self.status_check.setText(_("CLEAR FAILED")) - + self.status_check.setText(_("CLEAR V_Timer_DrivWEP_ON FAILED")) self.get_timer_DrivWEP_ON() + def reset_low_speed_counter(self): + reset_request = self.evc_ecu.requests[u"DataWrite.($3349) Time Counter for the driving WEP in Low Speed"] + request_response = reset_request.send_request() + print(request_response) + if request_response is not None: + self.status_check.setText(_("CLEAR Low EXECUTED")) + else: + self.status_check.setText(_("CLEAR Low FAILED")) + self.get_low_speed_counter() + + def reset_medium_speed_counter(self): + reset_request = self.evc_ecu.requests[u"DataWrite.($334A) Time Counter for the driving WEP in Middle Speed"] + request_response = reset_request.send_request() + print(request_response) + if request_response is not None: + self.status_check.setText(_("CLEAR Medium EXECUTED")) + else: + self.status_check.setText(_("CLEAR Medium FAILED")) + self.get_medium_speed_counter() + + def reset_high_speed_counter(self): + reset_request = self.evc_ecu.requests[u"DataWrite.($334B) Time Counter for the driving WEP in High Speed"] + request_response = reset_request.send_request() + print(request_response) + if request_response is not None: + self.status_check.setText(_("CLEAR HIGH EXECUTED")) + else: + self.status_check.setText(_("CLEAR HIGH FAILED")) + self.get_high_speed_counter() def plugin_entry(): v = Virginizer() From 7a2543e2811cab995db976f851cb1d7becf8b90c Mon Sep 17 00:00:00 2001 From: Jodaille Date: Fri, 28 Feb 2025 21:14:32 +0100 Subject: [PATCH 04/13] add warning + header comment --- zoe_waterpump_counter_reset.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/zoe_waterpump_counter_reset.py b/zoe_waterpump_counter_reset.py index cb1ac53..03d176e 100644 --- a/zoe_waterpump_counter_reset.py +++ b/zoe_waterpump_counter_reset.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- -# (c) 2017 +# (c) 2025 +# Zoé EVC water pump counter reset values (low, medium, high speed + timer) import PyQt5.QtCore as core import PyQt5.QtWidgets as gui @@ -47,7 +48,8 @@ def __init__(self): layout.addWidget(self.table) infos = gui.QLabel("Zoe water pump counters
" - "water pump counters RESET") + "THIS PLUGIN WILL ERASE WATER PUMP COUNTERS
GO AWAY IF YOU HAVE NO IDEA OF WHAT IT MEANS
") + infos.setAlignment(core.Qt.AlignHCenter) check_button = gui.QPushButton("Check values") self.status_check = gui.QLabel("Waiting action") From 69e1390d9da6774ddffd0ad9f20c849e787c2569 Mon Sep 17 00:00:00 2001 From: Jodaille Date: Sat, 1 Mar 2025 14:32:41 +0100 Subject: [PATCH 05/13] error when None --- zoe_waterpump_counter_reset.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/zoe_waterpump_counter_reset.py b/zoe_waterpump_counter_reset.py index 03d176e..d48fd17 100644 --- a/zoe_waterpump_counter_reset.py +++ b/zoe_waterpump_counter_reset.py @@ -87,9 +87,11 @@ def get_timer_DrivWEP_ON(self): options.main_window.logview.append("reading V_Timer_DrivWEP_ON") pumptimer_check_values = pumptimer_check_request.send_request() - print(pumptimer_check_values) - value = pumptimer_check_values.get(key_name) - value = str(value) + print(f"Réponse reçue: {pumptimer_check_values}") + if pumptimer_check_values: + value = pumptimer_check_values.get(key_name) + else: + value = "Not found" self.table.setItem(3, 1, QTableWidgetItem(value)) def get_low_speed_counter(self): From 56680d752611b799dc3f8db013a129b73a379b19 Mon Sep 17 00:00:00 2001 From: Jodaille Date: Sun, 2 Mar 2025 14:18:27 +0100 Subject: [PATCH 06/13] add individual reset buttons --- zoe_waterpump_counter_reset.py | 52 ++++++++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 9 deletions(-) diff --git a/zoe_waterpump_counter_reset.py b/zoe_waterpump_counter_reset.py index d48fd17..9c6807a 100644 --- a/zoe_waterpump_counter_reset.py +++ b/zoe_waterpump_counter_reset.py @@ -2,6 +2,7 @@ # (c) 2025 # Zoé EVC water pump counter reset values (low, medium, high speed + timer) +# cf error code: SYST ELEC A CONTROLLER import PyQt5.QtCore as core import PyQt5.QtWidgets as gui @@ -21,28 +22,45 @@ def __init__(self): super(Virginizer, self).__init__() self.evc_ecu = ecu.Ecu_file(ecufile, True) self.setWindowTitle("Water pump counter") - self.setGeometry(100, 100, 400, 300) + self.setGeometry(100, 100, 480, 320) layout = gui.QVBoxLayout() # Création du tableau self.table = QTableWidget() self.table.setRowCount(4) # Nombre de lignes - self.table.setColumnCount(2) # Nombre de colonnes - self.table.setHorizontalHeaderLabels(["Nom", "Valeur"]) # Entêtes de colonnes + self.table.setColumnCount(3) # Nombre de colonnes + self.table.setHorizontalHeaderLabels(["Name", "Values", "Action"]) # Entêtes de colonnes self.table.setColumnWidth(0, 200) # Ajout des données dans le tableau data = [ - ["Low Speed", ""], - ["Middle Speed", ""], - ["High Speed", ""], - ["V_Timer_DrivWEP_ON", ""], #V_Timer_DrivWEP_ON + ["Low Speed", "", ""], + ["Middle Speed", "", ""], + ["High Speed", "", ""], + ["V_Timer_DrivWEP_ON", "", ""], #V_Timer_DrivWEP_ON ] - for row, (nom, valeur) in enumerate(data): + for row, (nom, valeur, action) in enumerate(data): self.table.setItem(row, 0, QTableWidgetItem(nom)) self.table.setItem(row, 1, QTableWidgetItem(valeur)) + self.table.setItem(row, 2, QTableWidgetItem(action)) + + resetlowBtn = gui.QPushButton("Reset") + self.table.setCellWidget(0, 2, resetlowBtn) + resetlowBtn.clicked.connect(self.reset_lowcounter) + + resetmiddleBtn = gui.QPushButton("Reset") + self.table.setCellWidget(1, 2, resetmiddleBtn) + resetmiddleBtn.clicked.connect(self.reset_middlecounter) + + resethighBtn = gui.QPushButton("Reset") + self.table.setCellWidget(2, 2, resethighBtn) + resethighBtn.clicked.connect(self.reset_highcounter) + + resetdrivewepBtn = gui.QPushButton("Reset") + self.table.setCellWidget(3, 2, resetdrivewepBtn) + resetdrivewepBtn.clicked.connect(self.reset_DrivWEP) # Ajout du tableau au layout layout.addWidget(self.table) @@ -146,6 +164,22 @@ def start_diag_session(self): return options.elm.start_session_can(sds_stream) + def reset_lowcounter(self): + self.start_diag_session() + self.reset_low_speed_counter() + + def reset_middlecounter(self): + self.start_diag_session() + self.reset_middle_speed_counter() + + def reset_highcounter(self): + self.start_diag_session() + self.reset_high_speed_counter() + + def reset_DrivWEP(self): + self.start_diag_session() + self.reset_timer_DrivWEP() + def reset_ecu(self): self.start_diag_session() self.reset_low_speed_counter() @@ -173,7 +207,7 @@ def reset_low_speed_counter(self): self.status_check.setText(_("CLEAR Low FAILED")) self.get_low_speed_counter() - def reset_medium_speed_counter(self): + def reset_middle_speed_counter(self): reset_request = self.evc_ecu.requests[u"DataWrite.($334A) Time Counter for the driving WEP in Middle Speed"] request_response = reset_request.send_request() print(request_response) From 34f22e805d5dc8bfc23bf3d103c8e2f5e79ddb5d Mon Sep 17 00:00:00 2001 From: Jodaille Date: Sun, 2 Mar 2025 14:37:16 +0100 Subject: [PATCH 07/13] add tips --- zoe_waterpump_counter_reset.py | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/zoe_waterpump_counter_reset.py b/zoe_waterpump_counter_reset.py index 9c6807a..1451a71 100644 --- a/zoe_waterpump_counter_reset.py +++ b/zoe_waterpump_counter_reset.py @@ -6,7 +6,7 @@ import PyQt5.QtCore as core import PyQt5.QtWidgets as gui -from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QTableWidget, QTableWidgetItem +from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QTableWidget, QTableWidgetItem, QLabel import ecu import options @@ -22,18 +22,19 @@ def __init__(self): super(Virginizer, self).__init__() self.evc_ecu = ecu.Ecu_file(ecufile, True) self.setWindowTitle("Water pump counter") - self.setGeometry(100, 100, 480, 320) + # x, y, width, high + self.setGeometry(100, 100, 480, 420) layout = gui.QVBoxLayout() # Création du tableau self.table = QTableWidget() - self.table.setRowCount(4) # Nombre de lignes - self.table.setColumnCount(3) # Nombre de colonnes - self.table.setHorizontalHeaderLabels(["Name", "Values", "Action"]) # Entêtes de colonnes + self.table.setRowCount(4) # Number of lines + self.table.setColumnCount(3) + self.table.setHorizontalHeaderLabels(["Name", "Values", "Action"]) # columns headers self.table.setColumnWidth(0, 200) - # Ajout des données dans le tableau + # Add data to table data = [ ["Low Speed", "", ""], ["Middle Speed", "", ""], @@ -77,6 +78,21 @@ def __init__(self): layout.addWidget(check_button) layout.addWidget(self.status_check) layout.addWidget(self.virginize_button) + + # Créer une liste d'instructions + instructions_html = """ +

TIPS

+
    +
  • Insert key CARD
  • +
  • Put D position
  • +
  • Press/Stay START until "Remove card" message
  • +
  • Put P position
  • +
+ """ + + label = QLabel(instructions_html) + layout.addWidget(label) + self.setLayout(layout) self.virginize_button.setEnabled(True) self.virginize_button.clicked.connect(self.reset_ecu) From f08b5f7c0279930c4fb407dc94d864351a84384a Mon Sep 17 00:00:00 2001 From: Jodaille Date: Sun, 2 Mar 2025 14:47:44 +0100 Subject: [PATCH 08/13] add tips --- zoe_waterpump_counter_reset.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zoe_waterpump_counter_reset.py b/zoe_waterpump_counter_reset.py index 1451a71..4f2c3d8 100644 --- a/zoe_waterpump_counter_reset.py +++ b/zoe_waterpump_counter_reset.py @@ -85,7 +85,7 @@ def __init__(self):
  • Insert key CARD
  • Put D position
  • -
  • Press/Stay START until "Remove card" message
  • +
  • Press/Stay START until "Remove card" message
  • Put P position
""" From cf4f7dc5cf67361cffae4962038515fcf2a6f883 Mon Sep 17 00:00:00 2001 From: Jodaille Date: Mon, 3 Mar 2025 23:28:58 +0100 Subject: [PATCH 09/13] add diag session + pass 0 value --- zoe_waterpump_counter_reset.py | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/zoe_waterpump_counter_reset.py b/zoe_waterpump_counter_reset.py index 4f2c3d8..02de11d 100644 --- a/zoe_waterpump_counter_reset.py +++ b/zoe_waterpump_counter_reset.py @@ -87,6 +87,7 @@ def __init__(self):
  • Put D position
  • Press/Stay START until "Remove card" message
  • Put P position
  • +
  • Keep key card inserted
  • """ @@ -171,6 +172,15 @@ def get_high_speed_counter(self): options.main_window.logview.append(value) self.table.setItem(2, 1, QTableWidgetItem(value)) + def start_diag_extend_session(self): + sds_request = self.evc_ecu.requests[u"StartDiagnosticSession.ExtendedDiagnosticSession"] + + sds_stream = " ".join(sds_request.build_data_stream({})) + if options.simulation_mode: + print("SdS stream", sds_stream) + return + options.elm.start_session_can(sds_stream) + def start_diag_session(self): sds_request = self.evc_ecu.requests[u"StartDiagnosticSession.Default"] @@ -181,7 +191,7 @@ def start_diag_session(self): options.elm.start_session_can(sds_stream) def reset_lowcounter(self): - self.start_diag_session() + self.start_diag_extend_session() self.reset_low_speed_counter() def reset_middlecounter(self): @@ -205,43 +215,43 @@ def reset_ecu(self): def reset_timer_DrivWEP(self): reset_request = self.evc_ecu.requests[u"DataWrite.($3531) V_Timer_DrivWEP_ON"] - request_response = reset_request.send_request() + request_response = reset_request.send_request({"($3531) V_Timer_DrivWEP_ON": "0"}) print(request_response) if request_response is not None: self.status_check.setText(_("CLEAR V_Timer_DrivWEP_ON EXECUTED")) else: self.status_check.setText(_("CLEAR V_Timer_DrivWEP_ON FAILED")) - self.get_timer_DrivWEP_ON() + # self.get_timer_DrivWEP_ON() def reset_low_speed_counter(self): reset_request = self.evc_ecu.requests[u"DataWrite.($3349) Time Counter for the driving WEP in Low Speed"] - request_response = reset_request.send_request() + request_response = reset_request.send_request({"($3349) Time Counter for the driving WEP in Low Speed": 0}) print(request_response) if request_response is not None: self.status_check.setText(_("CLEAR Low EXECUTED")) else: self.status_check.setText(_("CLEAR Low FAILED")) - self.get_low_speed_counter() + # self.get_low_speed_counter() def reset_middle_speed_counter(self): reset_request = self.evc_ecu.requests[u"DataWrite.($334A) Time Counter for the driving WEP in Middle Speed"] - request_response = reset_request.send_request() + request_response = reset_request.send_request({"($334A) Time Counter for the driving WEP in Middle Speed": 0}) print(request_response) if request_response is not None: self.status_check.setText(_("CLEAR Medium EXECUTED")) else: self.status_check.setText(_("CLEAR Medium FAILED")) - self.get_medium_speed_counter() + # self.get_medium_speed_counter() def reset_high_speed_counter(self): reset_request = self.evc_ecu.requests[u"DataWrite.($334B) Time Counter for the driving WEP in High Speed"] - request_response = reset_request.send_request() + request_response = reset_request.send_request({"($334B) Time Counter for the driving WEP in High Speed": 0}) print(request_response) if request_response is not None: self.status_check.setText(_("CLEAR HIGH EXECUTED")) else: self.status_check.setText(_("CLEAR HIGH FAILED")) - self.get_high_speed_counter() + # self.get_high_speed_counter() def plugin_entry(): v = Virginizer() From 686e617b16333e77455cb78982124fbef57cc176 Mon Sep 17 00:00:00 2001 From: Jodaille Date: Tue, 4 Mar 2025 14:47:58 +0100 Subject: [PATCH 10/13] use start_diag_extend_session --- zoe_waterpump_counter_reset.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zoe_waterpump_counter_reset.py b/zoe_waterpump_counter_reset.py index 02de11d..4cb4223 100644 --- a/zoe_waterpump_counter_reset.py +++ b/zoe_waterpump_counter_reset.py @@ -195,15 +195,15 @@ def reset_lowcounter(self): self.reset_low_speed_counter() def reset_middlecounter(self): - self.start_diag_session() + self.start_diag_extend_session() self.reset_middle_speed_counter() def reset_highcounter(self): - self.start_diag_session() + self.start_diag_extend_session() self.reset_high_speed_counter() def reset_DrivWEP(self): - self.start_diag_session() + self.start_diag_extend_session() self.reset_timer_DrivWEP() def reset_ecu(self): From fd10c6728f8d36949ad8eb57f43f2b36bbbbdbd2 Mon Sep 17 00:00:00 2001 From: Jodaille Date: Wed, 5 Mar 2025 17:53:30 +0100 Subject: [PATCH 11/13] windows size --- zoe_waterpump_counter_reset.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zoe_waterpump_counter_reset.py b/zoe_waterpump_counter_reset.py index 4cb4223..8d8e757 100644 --- a/zoe_waterpump_counter_reset.py +++ b/zoe_waterpump_counter_reset.py @@ -23,7 +23,7 @@ def __init__(self): self.evc_ecu = ecu.Ecu_file(ecufile, True) self.setWindowTitle("Water pump counter") # x, y, width, high - self.setGeometry(100, 100, 480, 420) + self.setGeometry(100, 100, 480, 445) layout = gui.QVBoxLayout() From 335f1f38ae245cbef9c8293e7149a3aaf8c32cc7 Mon Sep 17 00:00:00 2001 From: Jodaille Date: Thu, 6 Mar 2025 10:20:15 +0100 Subject: [PATCH 12/13] solve reset_medium_speed_counter --- zoe_waterpump_counter_reset.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zoe_waterpump_counter_reset.py b/zoe_waterpump_counter_reset.py index 8d8e757..30985bb 100644 --- a/zoe_waterpump_counter_reset.py +++ b/zoe_waterpump_counter_reset.py @@ -209,7 +209,7 @@ def reset_DrivWEP(self): def reset_ecu(self): self.start_diag_session() self.reset_low_speed_counter() - self.reset_medium_speed_counter() + self.reset_middlecounter() self.reset_high_speed_counter() self.reset_timer_DrivWEP() From 09a7d6f953413c62e76628e74d7d4c9a7be33efc Mon Sep 17 00:00:00 2001 From: Jodaille Date: Tue, 11 Mar 2025 15:12:36 +0100 Subject: [PATCH 13/13] test fixedSize + translate tips --- zoe_waterpump_counter_reset.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/zoe_waterpump_counter_reset.py b/zoe_waterpump_counter_reset.py index 30985bb..c206387 100644 --- a/zoe_waterpump_counter_reset.py +++ b/zoe_waterpump_counter_reset.py @@ -24,6 +24,7 @@ def __init__(self): self.setWindowTitle("Water pump counter") # x, y, width, high self.setGeometry(100, 100, 480, 445) + self.setFixedSize(480, 445) layout = gui.QVBoxLayout() @@ -80,17 +81,17 @@ def __init__(self): layout.addWidget(self.virginize_button) # Créer une liste d'instructions - instructions_html = """ -

    TIPS

    + + instructions_html = f""" +

    {_('TIPS')}

      -
    • Insert key CARD
    • -
    • Put D position
    • -
    • Press/Stay START until "Remove card" message
    • -
    • Put P position
    • -
    • Keep key card inserted
    • +
    • {_('Insert key CARD')}
    • +
    • {_('Put D position')}
    • +
    • {_('Press/Stay START until')} "{_('Remove card')}" {_('message')}
    • +
    • {_('Put P position')}
    • +
    • {_('Keep key card inserted')}
    """ - label = QLabel(instructions_html) layout.addWidget(label)