From e7043359bf4b85085db69acddb228f3dd9801061 Mon Sep 17 00:00:00 2001 From: 3minbe Date: Tue, 7 Jan 2025 18:24:35 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B8=B0=ED=83=80=20=EC=88=98=EC=A0=95?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DBC_Converter.py | 109 ++++++++++++++++++++++++++++++++----- DBC_to_C_RX.py | 85 ++++++++++++++++++----------- DBC_to_C_TX.py | 37 ++++++++----- img/add_file.png | Bin 8617 -> 16763 bytes img/add_folder.png | Bin 0 -> 16926 bytes img/delete_description.png | Bin 24092 -> 21067 bytes img/delete_file.png | Bin 13573 -> 16907 bytes settings.json | 15 ++--- 8 files changed, 177 insertions(+), 69 deletions(-) create mode 100644 img/add_folder.png diff --git a/DBC_Converter.py b/DBC_Converter.py index e251b2c..92c8846 100644 --- a/DBC_Converter.py +++ b/DBC_Converter.py @@ -12,11 +12,12 @@ class MainView(QtWidgets.QMainWindow): self.version = "1.0.0" # 프로그램 버전 설정 self.default_save_path = os.path.join(os.path.expanduser("~"), "Desktop") # 바탕화면 경로 설정 self.file_paths = [] # 파일 경로 저장 리스트 + self.channel_info = {} # 채널 정보 초기화 self.loadSettings() # 설정 로드 self.setupUI() # UI 설정 self.centerWindow() # 창을 화면 중앙에 위치 self.sortTreeView(0, True) # 기본 파일명 오름차순 정렬 - self.channel_options = ["1", "2", "3", "4", "5", "6"] # 채널 옵션 설정 + self.channel_options = ["CH0", "CH1", "CH2", "CH3", "CH4", "CH5"] # 채널 옵션 설정 def loadSettings(self): self.settings_file = "settings.json" @@ -24,10 +25,14 @@ class MainView(QtWidgets.QMainWindow): with open(self.settings_file, "r", encoding="utf-8") as file: self.settings = json.load(file) # 설정 파일 로드 self.default_save_path = self.settings.get("default_save_path", self.default_save_path) - self.file_paths = self.settings.get("file_paths", []) self.last_opened_dir = self.settings.get("last_opened_dir", os.path.expanduser("~")) + # JSON 파일 내의 file_paths와 channel_info 정보 지우기 + self.settings["file_paths"] = [] + self.settings["channel_info"] = {} + self.saveSettings() else: self.settings = {"theme": "light"} # 기본 설정 + self.default_save_path = os.path.join(os.path.expanduser("~"), "Desktop") # 바탕화면 경로 설정 self.last_opened_dir = os.path.expanduser("~") def saveSettings(self): @@ -111,34 +116,34 @@ class MainView(QtWidgets.QMainWindow): # 툴바 추가 self.toolbar = self.addToolBar("Main Toolbar") + add_file_action = QtWidgets.QAction(QtGui.QIcon("img/add_file.png"), "파일 추가\n(Ctrl+O)", self) - add_file_action.setShortcut('Ctrl+O') add_file_action.triggered.connect(self.FilesOpen) self.toolbar.addAction(add_file_action) delete_file_action = QtWidgets.QAction(QtGui.QIcon("img/delete_file.png"), "선택 파일 삭제\n(Delete)", self) - delete_file_action.setShortcut('Delete') delete_file_action.triggered.connect(self.deleteSelectedFiles) self.toolbar.addAction(delete_file_action) delete_all_action = QtWidgets.QAction(QtGui.QIcon("img/delete_all.png"), "모든 파일 삭제\n(Ctrl+Shift+Delete)", self) - delete_all_action.setShortcut('Ctrl+Shift+Delete') delete_all_action.triggered.connect(self.deleteAllFiles) self.toolbar.addAction(delete_all_action) delete_description_action = QtWidgets.QAction(QtGui.QIcon("img/delete_description.png"), "알림창 내용 삭제\n(Ctrl+Shift+D)", self) - delete_description_action.setShortcut('Ctrl+Shift+D') delete_description_action.triggered.connect(self.clearAlerts) self.toolbar.addAction(delete_description_action) convert_action = QtWidgets.QAction(QtGui.QIcon("img/convert.png"), "변환\n(Ctrl+R)", self) - convert_action.setShortcut('Ctrl+R') convert_action.triggered.connect(self.convertFiles) self.toolbar.addAction(convert_action) # 상태바 추가 self.status_bar = self.statusBar() self.status_bar.showMessage("준비 완료") + self.progress_bar = QtWidgets.QProgressBar() + self.progress_bar.setMaximumWidth(200) + self.status_bar.addPermanentWidget(self.progress_bar) + self.progress_bar.setVisible(False) # 메인 위젯 설정 main_widget = QtWidgets.QWidget() @@ -158,11 +163,39 @@ class MainView(QtWidgets.QMainWindow): self.tree.itemDoubleClicked.connect(self.onItemDoubleClicked) main_layout.addWidget(self.tree) + # 저장 경로 설정 위젯 추가 + path_layout = QtWidgets.QHBoxLayout() + self.path_label = QtWidgets.QLabel("저장 경로:") + self.path_edit = QtWidgets.QLineEdit(self.default_save_path) + self.path_edit.setReadOnly(True) # 읽기 전용으로 설정 + self.path_button = QtWidgets.QPushButton("경로 선택") + self.path_button.clicked.connect(self.selectSavePath) + self.open_path_button = QtWidgets.QPushButton("경로 열기") + self.open_path_button.clicked.connect(self.openSavePath) + path_layout.addWidget(self.path_label) + path_layout.addWidget(self.path_edit) + path_layout.addWidget(self.path_button) + path_layout.addWidget(self.open_path_button) + main_layout.addLayout(path_layout) + # 알림창 설정 self.alert_text = QtWidgets.QTextEdit() self.alert_text.setReadOnly(True) + self.alert_text.setAcceptRichText(True) main_layout.addWidget(self.alert_text) + def selectSavePath(self): + selected_path = QtWidgets.QFileDialog.getExistingDirectory(self, "저장 경로 선택", self.default_save_path) + if selected_path: + self.default_save_path = selected_path + self.path_edit.setText(selected_path) + + def openSavePath(self): + if os.path.exists(self.default_save_path): + os.startfile(self.default_save_path) + else: + self.showWarning("경고", "경로가 존재하지 않습니다") + def openCalculator(self): subprocess.Popen('calc.exe') @@ -183,6 +216,7 @@ class MainView(QtWidgets.QMainWindow): ) if file_paths: self.last_opened_dir = os.path.dirname(file_paths[0]) + self.file_paths = file_paths # 새로운 경로로 덮어쓰기 existing_files = [self.tree.topLevelItem(i).text(0) for i in range(self.tree.topLevelItemCount())] duplicate_files = [os.path.split(file_path)[1] for file_path in file_paths if os.path.split(file_path)[1] in existing_files] new_files = [file_path for file_path in file_paths if os.path.split(file_path)[1] not in existing_files] @@ -192,7 +226,6 @@ class MainView(QtWidgets.QMainWindow): self.updateAlertText(f"중복 파일 경고", duplicate_files) if new_files: self.populateTreeView(new_files) - self.file_paths.extend(new_files) # 파일 경로 저장 self.updateAlertText(f"파일 추가 완료", [os.path.split(file_path)[1] for file_path in new_files]) self.saveSettings() @@ -205,7 +238,10 @@ class MainView(QtWidgets.QMainWindow): deleted_files = [item.text(0) for item in selected_items] for item in selected_items: index = self.tree.indexOfTopLevelItem(item) + file_path = os.path.join(item.text(1), item.text(0)) + self.removeChannelInfo(file_path) # 추가된 부분 self.tree.takeTopLevelItem(index) + self.file_paths = [self.tree.topLevelItem(i).text(1) + '/' + self.tree.topLevelItem(i).text(0) for i in range(self.tree.topLevelItemCount())] self.updateAlertText(f"파일 삭제 완료", deleted_files) self.saveSettings() @@ -215,10 +251,21 @@ class MainView(QtWidgets.QMainWindow): self.updateAlertText("모든 파일 삭제 실패", ["삭제할 파일이 없습니다"]) return deleted_files = [self.tree.topLevelItem(i).text(0) for i in range(self.tree.topLevelItemCount())] + for i in range(self.tree.topLevelItemCount()): + item = self.tree.topLevelItem(i) + file_path = os.path.join(item.text(1), item.text(0)) + self.removeChannelInfo(file_path) # 추가된 부분 self.tree.clear() + self.file_paths = [] self.updateAlertText(f"모든 파일 삭제 완료", deleted_files) self.saveSettings() + def removeChannelInfo(self, file_path): + if "channel_info" in self.settings and file_path in self.settings["channel_info"]: + del self.settings["channel_info"][file_path] + self.saveSettings() + print(f"[INFO] Removed channel info for {file_path}") + def clearAlerts(self): self.alert_text.clear() @@ -242,7 +289,10 @@ class MainView(QtWidgets.QMainWindow): for i in range(self.tree.topLevelItemCount()): item = self.tree.takeTopLevelItem(0) items.append(item) - items.sort(key=lambda x: x.text(col), reverse=reverse) + if col == 3: # 파일크기 정렬 + items.sort(key=lambda x: float(x.text(col).replace(" KB", "")), reverse=reverse) + else: + items.sort(key=lambda x: x.text(col), reverse=reverse) for item in items: self.tree.addTopLevelItem(item) @@ -309,23 +359,43 @@ class MainView(QtWidgets.QMainWindow): fsize = format_file_size(os.path.getsize(file_path)) item = QtWidgets.QTreeWidgetItem([file, directory, self.channel_options[0], fsize]) self.tree.addTopLevelItem(item) + self.updateChannelInfo(directory, file, self.channel_options[0]) # Set default channel to 0 + self.file_paths = [self.tree.topLevelItem(i).text(1) + '/' + self.tree.topLevelItem(i).text(0) for i in range(self.tree.topLevelItemCount())] + self.saveSettings() def updateAlertText(self, message, file_list): - current_time = QtCore.QDateTime.currentDateTime().toString("yyyy-MM-dd HH:mm:ss") + current_time = QtCore.QDateTime.currentDateTime().toString("yy-MM-dd-ddd HH:mm:ss") self.alert_text.append(f"[{current_time}] {message}") for file in file_list: self.alert_text.append(f" - {file}") - self.alert_text.setAlignment(QtCore.Qt.AlignLeft) - self.alert_text.setStyleSheet("QTextEdit { line-height: 2.5; } border-radius: 3px;") + self.alert_text.append("") # 한 줄 띄우기 def convertFiles(self): - for file_path in self.file_paths: + if not self.file_paths: + self.showWarning("경고", "변환할 파일이 없습니다") + self.updateAlertText("변환 실패", ["변환할 파일이 없습니다"]) + return + self.status_bar.showMessage("변환 중...") + self.progress_bar.setVisible(True) + self.progress_bar.setValue(0) + total_files = len(self.file_paths) + timestamp = datetime.now().strftime("%y-%m-%d") + for index, file_path in enumerate(self.file_paths): + file_name = os.path.splitext(os.path.basename(file_path))[0] + rx_output_dir = os.path.join(self.default_save_path, "DBC 변환", timestamp, file_name, "RX") + tx_output_dir = os.path.join(self.default_save_path, "DBC 변환", timestamp, file_name, "TX") + os.makedirs(rx_output_dir, exist_ok=True) + os.makedirs(tx_output_dir, exist_ok=True) + channel_info = self.settings.get("channel_info", {}).get(file_path, "0") try: - subprocess.run(["python", "DBC_to_C_RX.py", file_path], check=True) - subprocess.run(["python", "DBC_to_C_TX.py", file_path], check=True) + subprocess.run(["python", "DBC_to_C_RX.py", file_path, rx_output_dir, channel_info], check=True) + subprocess.run(["python", "DBC_to_C_TX.py", file_path, tx_output_dir, channel_info], check=True) self.updateAlertText(f"변환 성공", [file_path]) except subprocess.CalledProcessError as e: self.updateAlertText(f"변환 실패: {e}", [file_path]) + self.progress_bar.setValue(int((index + 1) / total_files * 100)) + self.status_bar.showMessage("변환 완료") + self.progress_bar.setVisible(False) def onHeaderClicked(self, logicalIndex): header = self.tree.headerItem() @@ -370,8 +440,17 @@ class MainView(QtWidgets.QMainWindow): def applyChannelSelection(self, item, combo, dialog): item.setText(2, combo.currentText()) + self.updateChannelInfo(item.text(1), item.text(0), combo.currentText()) # 추가된 부분 dialog.close() + def updateChannelInfo(self, directory, filename, channel): + file_path = os.path.join(directory, filename) + if "channel_info" not in self.settings: + self.settings["channel_info"] = {} + self.settings["channel_info"][file_path] = channel + self.saveSettings() + print(f"[INFO] Updated channel info for {file_path} to {channel}") + if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) main_view = MainView() diff --git a/DBC_to_C_RX.py b/DBC_to_C_RX.py index 37ddfe8..154c2be 100644 --- a/DBC_to_C_RX.py +++ b/DBC_to_C_RX.py @@ -1,6 +1,8 @@ import re import sys import cantools +from datetime import datetime +import json def parse_dbc_file(file_path): signals = [] @@ -93,12 +95,12 @@ def parse_dbc_file(file_path): return signals -def generate_vcu_rx_function_with_factors(dbc_path, output_file): +def generate_vcu_rx_function_with_factors(dbc_path, output_file, channel_info): # Load the DBC file db = cantools.database.load_file(dbc_path) # Initialize the header of the C file - c_file_content = """ + c_file_content = f""" #include "can.h" // Declare Factors and Offsets for signals @@ -128,9 +130,10 @@ def generate_vcu_rx_function_with_factors(dbc_path, output_file): # Check if "VCU" is in the receivers list if "VCU" in message.receivers: # Define the temporary struct - temp_struct_name = f"CH0_MV1_0x{message.frame_id:X}_temp" + channel = channel_info.get(str(message.frame_id), "CH0") # 기본 채널 설정 + temp_struct_name = f"{channel}_MV1_0x{message.frame_id:X}_temp" c_file_content += f""" -void Receive_{message.name}_CH0_0x{message.frame_id:X}(void) +void Receive_{message.name}_{channel}_0x{message.frame_id:X}(void) {{ struct {{ """ @@ -150,16 +153,16 @@ void Receive_{message.name}_CH0_0x{message.frame_id:X}(void) start_byte = signal.start // 8 start_bit = signal.start % 8 signal_length = signal.length - shift_expr = f"(CAN_ch[0].rx.buf[{start_byte}] >> shift{start_bit})" + shift_expr = f"(CAN_ch[{channel}].rx.buf[{start_byte}] >> shift{start_bit})" if signal_length > 8: # Handle multi-byte signals multi_byte_expr = [] for i in range((signal_length + 7) // 8): byte_shift = i * 8 if i == 0: - multi_byte_expr.append(f"(CAN_ch[0].rx.buf[{start_byte + i}] >> shift{start_bit})") + multi_byte_expr.append(f"(CAN_ch[{channel}].rx.buf[{start_byte + i}] >> shift{start_bit})") else: - multi_byte_expr.append(f"(CAN_ch[0].rx.buf[{start_byte + i}] << shift{byte_shift})") + multi_byte_expr.append(f"(CAN_ch[{channel}].rx.buf[{start_byte + i}] << shift{byte_shift})") shift_expr = " | ".join(multi_byte_expr) c_file_content += f" {temp_struct_name}.{signal.name}_temp = ({shift_expr}) & _{signal_length}bit;\n" @@ -168,14 +171,14 @@ void Receive_{message.name}_CH0_0x{message.frame_id:X}(void) # Assign to final ECU variables for signal in message.signals: factor_name = f"Factor_{str(signal.scale).replace('.', '_')}" - offset_name = f"Offset_m_{abs(signal.offset):.0f}" + offset_name = f"Offset_m_{abs(signal.offset)::.0f}" factor = f" * {factor_name}" if signal.scale != 1 else "" offset = f" + {offset_name}" if signal.offset != 0 else "" temp_var = f"{temp_struct_name}.{signal.name}_temp" if signal.is_signed: - c_file_content += f" ECU3.RX.CH0_{message.name}_0x{message.frame_id:X}.{signal.name} = ({temp_var}{factor}){offset};\n" + c_file_content += f" VCU.RX.{channel}_{message.name}_0x{message.frame_id:X}.{signal.name} = ({temp_var}{factor}){offset};\n" else: - c_file_content += f" ECU3.RX.CH0_{message.name}_0x{message.frame_id:X}.{signal.name} = {temp_var}{factor}{offset};\n" + c_file_content += f" VCU.RX.{channel}_{message.name}_0x{message.frame_id:X}.{signal.name} = {temp_var}{factor}{offset};\n" c_file_content += "}\n" @@ -185,7 +188,7 @@ void Receive_{message.name}_CH0_0x{message.frame_id:X}(void) print(f"Generated RX function C file with Factors and Offsets: {output_file}") -def generate_input_functions(signals, output_file): +def generate_input_functions(signals, output_file, channel_info): if not signals: print("[WARNING] No signals to generate Input functions for.") return @@ -193,15 +196,16 @@ def generate_input_functions(signals, output_file): with open(output_file, 'w') as f: for message in signals: hex_id = f"0x{int(message['id']):X}" - function_name = f"void Input_Data_Set_{message['name']}_CH0_{hex_id}(void)" + channel = channel_info.get(str(message['id']), "CH0") + function_name = f"void Input_Data_Set_{message['name']}_{channel}_{hex_id}(void)" f.write(f"{function_name}\n{{\n") for signal in message["signals"]: - f.write(f" GV_{signal['name']} = ECU3.RX.CH0_RX_{message['name']}_{hex_id}.{signal['name']};\n") + f.write(f" GV_{signal['name']} = VCU.RX.{channel}_RX_{message['name']}_{hex_id}.{signal['name']};\n") f.write("}\n\n") print(f"[INFO] Input functions written to {output_file}") -def generate_structs(signals, output_file): +def generate_structs(signals, output_file, channel_info): if not signals: print("[WARNING] No signals to generate structs for.") return @@ -213,18 +217,19 @@ def generate_structs(signals, output_file): for message in signals: hex_id = f"0x{int(message['id']):X}" + channel = channel_info.get(str(message['id']), "CH0") f.write(f"typedef struct\n{{\n") for signal in message["signals"]: if signal["size"] <= 32: f.write(f" uint32_t {signal['name']} : {signal['size']};\n") else: f.write(f" float {signal['name']};\n") - f.write(f"}} CH0_RX_{message['name']}_{hex_id};\n\n") + f.write(f"}} {channel}_RX_{message['name']}_{hex_id};\n\n") f.write("#endif // GENERATED_STRUCTS_H\n") print(f"[INFO] Structs written to {output_file}") -def generate_globals(signals, output_file, header_file): +def generate_globals(signals, output_file, header_file, channel_info): if not signals: print("[WARNING] No signals to generate globals for.") return @@ -233,6 +238,7 @@ def generate_globals(signals, output_file, header_file): f.write("#include \n") for message in signals: + channel = channel_info.get(str(message['id']), "CH0") for signal in message["signals"]: if signal["size"] > 32: f.write(f"float GV_{signal['name']} = 0.0f;\n") @@ -244,6 +250,7 @@ def generate_globals(signals, output_file, header_file): f.write("#define GENERATED_GLOBALS_H\n\n") f.write("#include \n\n") for message in signals: + channel = channel_info.get(str(message['id']), "CH0") for signal in message["signals"]: if signal["size"] > 32: f.write(f"extern float GV_{signal['name']};\n") @@ -253,16 +260,17 @@ def generate_globals(signals, output_file, header_file): print(f"[INFO] Globals and extern declarations written to {output_file} and {header_file}") -def generate_initialization(signals, output_file): +def generate_initialization(signals, output_file, channel_info): if not signals: print("[WARNING] No signals to generate initialization for.") return with open(output_file, 'w') as f: - f.write("void ECU3_Data_Init(void)\n{\n") + f.write("void VCU_Data_Init(void)\n{\n") for message in signals: hex_id = f"0x{int(message['id']):X}" - struct_prefix = f"ECU3.RX.CH0_RX_{message['name']}_{hex_id}" + channel = channel_info.get(str(message['id']), "CH0") + struct_prefix = f"VCU.RX.{channel}_RX_{message['name']}_{hex_id}" for signal in message["signals"]: if signal["offset"] != 0.0: if signal["size"] <= 32: @@ -281,17 +289,32 @@ def generate_initialization(signals, output_file): if __name__ == "__main__": dbc_file_path = sys.argv[1] - output_c_file = "C:/Users/MSI/Desktop/DB/generated_receive.c" - output_input_file = "C:/Users/MSI/Desktop/DB/generated_input.c" - output_structs_file = "C:/Users/MSI/Desktop/DB/generated_structs.h" - output_globals_file = "C:/Users/MSI/Desktop/DB/generated_globals.c" - output_globals_header = "C:/Users/MSI/Desktop/DB/generated_globals.h" - output_initialization_file = "C:/Users/MSI/Desktop/DB/generated_init.c" + output_dir = sys.argv[2] + channel_info_path = sys.argv[3] + + with open(channel_info_path, 'r', encoding='cp1252') as f: + try: + channel_info = json.load(f) + # Convert channel info to int + for key in channel_info: + channel_info[key] = int(channel_info[key].replace("CH", "")) + except json.JSONDecodeError as e: + print(f"[ERROR] Error decoding JSON: {e}") + sys.exit(1) + except Exception as e: + print(f"[ERROR] Error reading channel info file: {e}") + sys.exit(1) + + output_c_file = f"{output_dir}/generated_receive.c" + output_input_file = f"{output_dir}/generated_input.c" + output_structs_file = f"{output_dir}/generated_structs.h" + output_globals_file = f"{output_dir}/generated_globals.c" + output_globals_header = f"{output_dir}/generated_globals.h" + output_initialization_file = f"{output_dir}/generated_init.c" signals = parse_dbc_file(dbc_file_path) - generate_vcu_rx_function_with_factors(dbc_file_path, output_c_file) - generate_input_functions(signals, output_input_file) - generate_structs(signals, output_structs_file) - generate_globals(signals, output_globals_file, output_globals_header) - generate_initialization(signals, output_initialization_file) - + generate_vcu_rx_function_with_factors(dbc_file_path, output_c_file, channel_info) + generate_input_functions(signals, output_input_file, channel_info) + generate_structs(signals, output_structs_file, channel_info) + generate_globals(signals, output_globals_file, output_globals_header, channel_info) + generate_initialization(signals, output_initialization_file, channel_info) \ No newline at end of file diff --git a/DBC_to_C_TX.py b/DBC_to_C_TX.py index 1d06198..e87753c 100644 --- a/DBC_to_C_TX.py +++ b/DBC_to_C_TX.py @@ -1,6 +1,8 @@ import re import sys import cantools +import os +from datetime import datetime def parse_dbc_file(file_path): signals = [] @@ -158,7 +160,7 @@ def generate_tx_functions(signals, output_file): offset_str = f"- {signal['offset']}" if signal["offset"] != 0.0 else "" mask = f"_{signal['size']}bit" f.write( - f" ECU3.TX.CH0_{message['name']}_{hex_id}.{signal['name']} = " + f" VCU.TX.CH0_{message['name']}_{hex_id}.{signal['name']} = " f"(int)((GV_{signal['name']} {offset_str}) {factor_str}) & {mask};\n" ) f.write("}\n\n") @@ -175,7 +177,7 @@ def generate_tx_initialization(signals, output_file): hex_id = f"0x{int(message['id']):X}" f.write(f" // {message['name']} ({hex_id})\n") for signal in message["signals"]: - f.write(f" ECU3.TX.CH0_{message['name']}_{hex_id}.{signal['name']} = 0;\n") + f.write(f" VCU.TX.CH0_{message['name']}_{hex_id}.{signal['name']} = 0;\n") f.write("\n") f.write("}\n") print(f"[INFO] TX initialization function written to {output_file}") @@ -223,10 +225,10 @@ def generate_tx_enum(tx_messages, output_file, cycle): with open(output_file, 'w') as f: f.write("typedef enum {\n") for idx, message in enumerate(tx_messages): - enum_name = f"ECU3_CH0_TX_{message}_{cycle}" + enum_name = f"VCU_CH0_TX_{message}_{cycle}" f.write(f" {enum_name} = {idx},\n") - f.write(" NUMBER_OF_ECU3_CH0_TX_MESSAGE,\n") - f.write("} ECU3_CH0_TX;\n") + f.write(" NUMBER_OF_VCU_CH0_TX_MESSAGE,\n") + f.write("} VCU_CH0_TX;\n") print(f"[INFO] TX enum written to {output_file}") def generate_vcu_can_transmit_single_c_file(dbc_path, output_file): @@ -254,7 +256,7 @@ void Transmit_{message.name}_CH0_0x{message.frame_id:X}(void) start_byte = signal.start // 8 start_bit = signal.start % 8 signal_length = signal.length - signal_name = f"ECU3.TX.CH0_{message.name}_0x{message.frame_id:X}.{signal.name}" + signal_name = f"VCU.TX.CH0_{message.name}_0x{message.frame_id:X}.{signal.name}" # Handle 8-bit chunks while signal_length > 0: @@ -263,6 +265,11 @@ void Transmit_{message.name}_CH0_0x{message.frame_id:X}(void) shift_expr = f"({signal_name} >> shift{shift_amount}) << shift{start_bit}" if start_bit > 0 else f"({signal_name} >> shift{shift_amount})" buffer_index = start_byte + # Ensure buffer_index is within the range of buffer_assignments + if buffer_index >= len(buffer_assignments): + print(f"[ERROR] Buffer index {buffer_index} out of range for message {message.name}") + break + # Add to the buffer assignments if buffer_assignments[buffer_index]: buffer_assignments[buffer_index] += f"\n | {shift_expr}" @@ -281,7 +288,7 @@ void Transmit_{message.name}_CH0_0x{message.frame_id:X}(void) # Add the send function call c_file_content += f""" - can_send_config(CAN_INST_0, g_messageObjectConf_ECU3_0ch_TX[ECU3_CH0_TX_{message.name}_10ms]); + can_send_config(CAN_INST_0, g_messageObjectConf_VCU_0ch_TX[VCU_CH0_TX_{message.name}_10ms]); }} """ @@ -293,14 +300,16 @@ void Transmit_{message.name}_CH0_0x{message.frame_id:X}(void) if __name__ == "__main__": dbc_file_path = sys.argv[1] - output_structs_file = "C:/Users/MSI/Desktop/DB/generated_tx_structs.h" - output_globals_file = "C:/Users/MSI/Desktop/DB/generated_tx_globals.c" - output_globals_header = "C:/Users/MSI/Desktop/DB/generated_tx_globals.h" - output_tx_functions_file = "C:/Users/MSI/Desktop/DB/generated_tx_functions.c" - output_tx_initialization = "C:/Users/MSI/Desktop/DB/generated_tx_initialization.c" - output_enum_file = "C:/Users/MSI/Desktop/DB/generated_tx_enum.h" + output_dir = sys.argv[2] + + output_structs_file = f"{output_dir}/generated_tx_structs.h" + output_globals_file = f"{output_dir}/generated_tx_globals.c" + output_globals_header = f"{output_dir}/generated_tx_globals.h" + output_tx_functions_file = f"{output_dir}/generated_tx_functions.c" + output_tx_initialization = f"{output_dir}/generated_tx_initialization.c" + output_enum_file = f"{output_dir}/generated_tx_enum.h" cycle_time = "10ms" - output_c_file = "C:/Users/MSI/Desktop/DB/Transmit_All_VCU_Messages.c" # Replace with your desired output file name + output_c_file = f"{output_dir}/Transmit_All_VCU_Messages.c" # Replace with your desired output file name generate_vcu_can_transmit_single_c_file(dbc_file_path, output_c_file) diff --git a/img/add_file.png b/img/add_file.png index ca84780d6fb564124946d0f5adf05ca1074b439e..954b12f1d720d936a83e0bcb852f7409bed3fed0 100644 GIT binary patch literal 16763 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 literal 8617 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 X|9|g5ZDEEwBUDvM>q*(8=VAW~oAI+1 literal 0 HcmV?d00001 diff --git a/img/delete_description.png b/img/delete_description.png index 0d4581d62266e0bc9865d1b9d4b022d6110986d5..7049bc11d53a86771c0061fcac70d4c29e432813 100644 GIT binary patch literal 21067 zcmd43WmJ`0_%Hg>-6`GDAs{6Uf`qhyg0vvrAhj0KwGc^Bq*J6sN-60Qq(efG2I+>i z?qvVZz2km5U(eZNFcjYz&wOhBo|rpE_purgJ{>*;K}3(#RrDbU9sCs?!o>!E9Q%)7 zf7s-+ChGPeu6JuoxE(U-0cM2Jni5A zdq4+4EYKqrMMM7&JM(@Swnm}%_s@RoHkN%W?$FYCto8a%ULJ?uqr9Af*SIz1dC_?_ zO}w#91WxF-6XKx+%zXTxGJ1JU-*7+T)Oy_~Dl3|$?6XSWA|DWt@w?PD%WE$fHr%n2 zf9l<;Wjud0DYgEQfRyZi`(F}ocsz5!PpRxgwXr0uI`{RqUzy=+Txev;NfFV}C3U~^ zwxb!uiZ%VZF7@lKFWq2QVM?D3#tWbiUO$b<*bO9&ygX{Qm(58{^gm^5tEd!6_C$PB zQn*TX-;Ejw>x&Axn)}rM9Hpy+^T$i5#X8irF+0M27-M8(b(oEf4L@42VcFPym-*%} zZF^yVE6QIV`q_LQi`8TU!>Ev?hyUvuW&y(_pS9g2Y&RGO=wX&Ug?>t{A9;vUUGQSI zV6r?N+5_8C>T|NXe}36h*|M7UDR$zr$cPW3G4sAq!kKl0{7k>L+yz|Nt^F}^&_3tZ z8CjBj8ZJFd3YBjW0uyhU37=XYZr$Kx4vj-$wauMJ zM@N6B3T=~$V(>7#a)Je37RChS<59tngf9Ey9bFac}@Yo zaIG~oIP$|R$3>xaX#A?-Ly$O*VSO7ysH}BH9x|c*SNm#(xADZH^od$DhWj ziDS6`lrmNw^v)$x7;CTrEKZt|Hh8#KOYio*`rarF!V$Zzm+~>zf3qgUNz&+bn1*N& zWsrm5!;>L!QguONuQFrEjAk#>gyEKaEHsfak-$z_X#K;{MZ-G;;cJp>RyMXnjJwO7 z$@RZIjSdtn#FlfIwAHBN*S2q0z{~uczMgol${rk=-*{A(90mT-vHi990Xl?3Wb{ZG zFkGC~>~ly#<()pg6?sgxdslNDQ&Te%J76z4h5!rhs0r94K8JcfLiXXDPr3;r+ zA{~ejb?BHiQ(B#Puyg9E?fFoPMoo}^c^`{YOv0p>;{zE=tED72P@#vkyfBag+elSrYa?<)o2EFo5I3X_| zKKFGC&d;1(#eP;bX0x`7yY?bHqLbNHHoi_+w=^o>C0cGNetUi+$}@~C(}qwiW*^{s z*P~}6gfvGG1D~05SX-r;rOydFxgPFcPt(6%7-;mze)e+;jb=)6^3m!Xv06=NO(K(g zdz}rLvff>+ z4s(znb@r8|5MlGBTPz10M%DIB__Q6S^V!|wox8_(+<))WqaQ3aZR~CTSh9rW;Gkqv z2RM(9eRK4A`VciVh4}DETegcoFQQFOtY7*_>(kUKaFks!q_?RnQj^yDOvsk$mU z@q?W1#9k@JdAPd>&O~6xCiD}-9aj?~OBhwCBk3ANbJHZ@@9`L!nj)I3vsIf((8pr& z=q@NDMt0O7{ZBKiUWrB)Jwr`%qpG7|Hk&N zbV_~>zJ}bN8nukIOkhaX#flQBP-=x;l<(kbaHngQ7&?BD3KmP@f!5v@6fashz^f%i z4))mL>@R+bnNC4x+)VMf_($ z=6f{Wp+f_ze?sNlTIzT6_OF->w{vcc-n03KL`Vp@YDUG#H=8uSK2XE;_p&A17siy9 zLQ_y-SLe_dCUm8FT)f3fc{x(>7!A@55r|sOzWQ{fZO#I7BiX6jT8Ii5Yrf+={bZiT z8}_&dc2k6w%IiwLi?hEdsJqKZUD?zY%y1p!Kp9S2^2sf{D8i42<((Egoq_!&vu-&A zDI6rpQU2RTON}s zr2uBjHomvvpTI_l$pl6>1&TO-P>K@CCfIL?&+_Ei5MpF2Eq*~noD4rd+k z{6jeXk@)he#?uCqPvT*Yli-#<@zz^*)U}zOvfC5ouCn=nH&{y^P~taqF8CwpVN-TH zRU4du5c)o!7+uCjt;s^I+2&&|i6H91`x%r+ik?}dJeKm_axtz3%hLGqPc+Z1Rt0CZ z9D4<|VR)vCn=uu%n}4B%xK#N|#)|1Z5ABhsDBr{?fs4ba2VDVR3nhLC{KDG#fBYBQ z_+u=u_2C#QFV$xbN|mYr8nMyIPkHQ`+@q%7-0oDjsHz^mxo2i(kYxfW{woz)Iao$B z#k8T>fcbybLHFtHJ0fb z5F|?%Asi`)_3$1ZE?VyP$chI9fA^?Ez1YfjRCw%;1DU~(Rz@--dIBhE`FCuDwf$X< zT}EzS@0{@k1o)*q6fNZn+tTh!6*jgn@y7G9d=Xk14aEXE4EAKj@`|V4#zWrU# zs|&hZJQX@FqSVm7WU_1#qCV3vZ$8Kp{7Os9T;t3Own1Yl6OqYQb6qLQZ4bE#_i`r`YJgVBn#pvL?>w~wEVWmo?^QeHMm!Sj@#!+uD~`loZj+Mts4WO$@)8o% zg-pW-m%DoTP2>N5kRr`|L!ZK}U;;&RmE04CBaNRcFAfOhuQ$@@{@YDu0=NbWclJ=$unQvEfQJE>yUX$sN%3>t!X46qI30s;q)Y6J9&bZ3JFWdCQ)N1$+z) zS(iQKh}v$THTyyx<}_(Nu=g+g-6NaPImE-U>YhC0NFk~80Q5^8P<-0qV`gjoS!v2Z zC;zClSZ{MTnK9-x|K1zbE9JzTn_M-^0)q_iaXkm=f3#u@uQ0*15U}BHzt68$Ypf>Z zHD%MsVCvMCkeL{V`0^bVX{JC1#za}-FS$(GJ>MC%dzhn|IOEXTwZm09z;=+~<>d&n zH+uxR&(7^U&m}`_^r*0&WDe;rUw88-q_em#?}G8J_8t)Lpxj){}Lt2N?a>TVE#cNd9HV z;4`-Bl4uP(AAeHYa^|fiwM*%c6b*K`_2i+}=^E3>sH^JLe}Vpsa@y)v+xN@AZN6|u z?lNYCOyZ1OE}T{2>gH5Ix-1P;1iOhyy!Rm&d>^}XjEpw7J1$X;SkL}7P>jj#hiJ(j z5d!=7<r-K#`R&dz-_)y){$xznc8eUzuj1 zmT(^l6hnl7OHICRbgHyW^;)q+&hE!6;j`tq5%$;E50o6$VM}_NKk?k@9-p zNpP{ULnh$z74YjC{VhoB$?Nl5pYw(>!eJ07@#MU>=qz(EAx`kAe!um}eseyD)5 z*sS|j=jvqkBDW=LR!FtgUFW60Uv~-RpB#?~Z~q|3>9Gcf+Xc(^Z@^rnz_P{vX*s^$ zL_=M|=d&9$+2PjcSLq?-L~0CNGUQ|sHKY$0my9N=Ux?f#ksFLU(Y2(So2$O=M=6YX z^jIzw3;y9!e2c(>7i~mqIxz z`&rdZXq2rQYgwa)8}k!$FUCxS4EB+{7f-yczApzpD>YQsxU)5NaCwG`bGo4nFxQa{ z+u3%i+9$|Xe$i(=b$LIR?ug+kU ziX?`DxZc)A+t%I<4fd1r6vha3sgBhK)Wp>7T59D!u{-LN=s+hLfl2+yWVRsrru&AG zQ!E@JbQlpw)5gWch2VmiW(}lDJ0Fleo%Ynjkdbq3g>)DL}wE_pr}HwL2 zwF4|xcytlFD{b_)v~?3Ax+uS&d0F=E z{@RYpsQ=OEa+AVLwO*|YB|iby+{2mb#&Ti&n}PI|z3eMCYI6^%Q39G?gfdzOx`NSH zAljOGd zu#^Xe?!OvaY4cM}uyb5=@vaOp7A^r~6!EOOYV9&R_a;frPEBugzj(ReCEH6{Ba8eq zdh_Vq)_!W8yuL_4lviI3Psr8sVIy6XooSd zH6bD$D94g{28YLU#gi2J#e(aFeh>r;wZ2Yo^~O4z9tl6_S6N954kkh(yM)+VUwzr( z*5}m5Fj&UpFZt9_Zir9x3)j27{>j%3r5r)>_G4S}qcI-`?am}It(oeAesHq%)^j_; z3R6BA{0rJjeKEm#*el}7;FIl=Tl|w>>KjuhPKr~QTWorR z>YO6-$%bo7>#c!hm6J$ClSTi z+ed=~1-}>)JpwG)Y}D}HC;zm3$Qx7pQbUSek?WgbXTO_8m<#N?g)ikHt1Ehe$P6&d zYT&PJdrElB$3{qFa#+bjf1+7PeRE~0HKz$KBoFAfn`V`IH{!!k-u&lbiu5<(t8COG zUxq_6YKV?;s_Qa)F}Cj8zoe{!7i^i4kq(3>Nw^Z(7vX}KbT%SdvE9PDJo&|jN<19( zl&%-^S@3P^Q#C%J zz0t@sUYjcYB*pgW$tJ8V_ENE|CFe3Sjg0haTpMHrT7IX9ks)K6f0I2!?%cV_e+P)T@; z^(?E?2FYNW{vHuwPgQBJ8!_c(bHh4o*!tO%4R@L|Ij_uKFAc4=_`dv0u91p>ud;<& zR_HsoOsqXHoo20d#X6Iih;A_Pk27pX3TxodQF(G*ce? zm#`b*sxX+!l!(B)&T_-dFj#aK5u>O9kCrAEMxc!Snb)w*gbxZ&f`gv*rSt2Hvf=|T z^YV*LqK%+so|#8wkHZuU_#>q@DMuO3Uq;oww07kR>pM_kA@SM@SrhVKQIn6@-VepE zl@UZ6d2dGJ}7!#O6NlpB5ne8 zfnjUhDky{hs1u!3zw6YOAGKB=j8eBi3tjUk97`^3TNu#Z8WATNOI8lV2p?va+esNP zIT&)wukv}n!_9$LnZasnhf{rB=9V`)cUPuATt$rN%NUQ?L!0kkVjRm@>DqU^`_JgL z_--)3w7oVu24D~zmT0(l>aDF-#TQkrG{HI)qofJekEK_x2!t<;4W~q8QXd9$@PgGS z0levVGslp?)X^-MuZF@0x8*PK{&Sb{9u(-eypUpAFAjP87}rvR4N)3{DaI^>2d;U9 zxctq#9a=*heu#C{cer^Y=z6%uCjJ@F#rO0#>Wc5wF~5u=7otXy8`-xAE`>47vA4DI z30?9|nbEZSw#)6{QDI@eR3*ce6!}t~vh9rI$5)q96x*&yX0QRP4E6*rfdVc7=T(O? zixJx$VOrr(rj5v;dLgU&sv`Fd+&|D66s~n7sarJtNXRI839J7d&I? z;De%?^^y3!aV4tkfC6KBzdCT-nQs}xd)bwsF^WgFTCiQGJ0Q+_A9CU}BhrfjhL5!d zN!2X`SMJc-yp2&27D!rJ(h0qbDJ=d@A!`^xvH+ZSQ1EN+U3vlqxJe_!bJPOKA8Eu6 zcm5ORggo(&kmR*NbS>AiL-eIRSDTO7cjOK8kN(44Ma3WJq%2OAs5=^2S%8$;0tZS1 z|04N_@xT7)$$3brmAvu!1abM3#cu0ad1^S^0rpqVTkarbhcnX*D)4Q`qPHc#H9apm2qgUmv7wa`Px>Qxrx!IZMaNgBS zD_D>BQAgW2hr~76uBOwym=qlig>?#@+^fcQyPh08YqWh3`1dr?yQMMO7?MYZZkBRj z;=uBP$)O_7zWB4G#q&g>=c1NuWe&%x53=qP>%JxM$lnv<3tqc68 z3SzMt5n^>*OGmbthIW9DAAswGN3Ox92-rl|1&U=u)@6fTI2(ndCxee&INl}5l@U{UhH1sOW20hf0zY30gV7|(I7av z=q+ldHlF|kMwX_|-Rcq3>vp}r;K@j{?b>8|G1Pa=MGa+d1Re7H=LNdaF8&zcCs|xr z`MOwkX)J!w(%^?$mQn_$-3NdZVHhcJFud^5U~AQU$Hm3d()!{C^&7v~EQvAfVJKD` z&TRyrA}wRrGhLZckuTM)c11p+1b|S+4^bE3j%($Q-|Wze;qybWUo=&n8;=BML{2p+ z&UtQn$;L!*LCpI1#Y`qfgn7cVnj?cUKFfbmlnRqz1c;Y@0jQV_reC`{6 zllfMC9}lMT_D*ISWkfpq?7s&3$(&4P>u4+mQy0JAShwnFldWIW=Y@=+OhRPz3u2WZ z6}fgyAWGX+&*{r6`F=#T4jm>}&%{lqBIQHg;oh(FUfGAkLU?@C5SB|TO3_YYSnF}8 zC2!N3I^~l{QimtUrJ>+FASUFO!QREF{2S{bKtD%$bDS+qIIh~Tovp6wlf=Co$tu$= z=hD0`cbnwG-VMc45MhLcpcnpg1-xbJ91&wDD}4m6lLy39H0Z!?0C0LaBjP{;WH1x3 z7YqtB2FhZQxW&kr6zT~dyWzEI&mQw2{Tyq5Rb%zV#pe%Q=L5h>)(*a9 zh`12%R}MnP0A4)VKJ7PUzmh#RfZgg8su=KNo0puOy?NG(c2n8H1!z(l!peW+`0d${ z0SeqG4jPa71JrRjXoi&M^#*|cn(rWlq$tyduQ9> zx$M#|_<3VRIe!}JtuHxgESI{BM?!j-MH-e9=(vaz$J@bu&a9)h)>}x5V}iK1Eh@Y% zsxD+6&a?h8bhM7x`}Y-T6LSFh<3_WN&ckuF{0)IrJ(5h1SZ7M9~kIj8? z%kH~!@t5_?QWf&dE-vlynu2YAVUk4e-L5$=v#*||Qk1>)WJ73|W&K!hnnt!MX9OPf z*xqGzCxMfH@Vt|iC=WE{xqeYhcwRk~QL-@6;PtV*&BBxr{nS!x@udyo$1*bv!^cgk z7Ju`{=YOB0tPT=er2e(TjFZy12CpvdGG1*)kh1!l-zCI&goTooVG8CK6BQ}5LDK~Z zN*%se&wXtShr(3L9wqh&qxy&QH)|2;MLp z3tWh~Fb-h~cyM01_X5j)A4HGy!$?(MLUaN+x#0s&K9|hsy_#y?=x{5`pT_cG$GMu{ zFOZp$@6w+~r-|yE{=LF69ea6~I9UH|V{+`+N>li35sCFwWk~e+6KB!3hTL6+E~n?T z)sXs=>Cwp0)K9iO(+Q*s`FTCDPsYlJLonZU5TBk#;f8K9%aaJ$S7F9K8Mt%TX04Eh zxS3Qo<#`jXsGLu3vAiBT+X7F{;Wc2@Mglwivilg z!Aru-ML+!^m@9CfCoj-=n}b235^F|8DFI6%@8{i*DU4P^$$4ZmWDhvCFoyPm>pP*} z6jjAfKVL9Qc03Ag6?cF8+V8|$?jmIeH@6#|CB~dP=d7z0xVHDrH z(nUty?RjK=?zmG2J5Pt9YogB7n4>vCM>v)OIw&aYSxiVLerGLP5d7mf#+HO3x1<(J zDu`2ZZ@0C0W4td^o>m<#5EvOSF>PiU%kZ3;+g7cNJmE=1<4O1>)^{ z!pp{xfu81SzTug=yRwT%Q>_QC5S|I-SiZMc+4k84h?;Wjq>cGXX7DGCts1Q!{tS03QI65~aPsdVR(JQd(rv{E+zMmGReqH%kI&XAg zilt&5B&7TMySSnK*pw=}#_rALt4E(n)U4Xjb(I?v-s^7dq%hhPd#i(rucP~g;|$ru z;U0R7o2oxpAvxFvF8%yl3o#L@_A}=YO8p?JtDzd2X5R z=?hD#w!|@H$LwB^!p)qDEDOtl_Wm0+% zMp#(43vg)Gj{&rhtWzBL?Ij?49lk?5T2f26WXMbF@6xzKo7)cdy%{j>MN}mV*6Kb+ zk$4FZymxIF%FaHgG$Y>Mu9b({e5yC^)^q#ZSNqJV{q;Tu3BLu8jFLkYG~U~WA5ny2 zk5u{;;%RH~Jao79CTxdxC4a;do?U!{W;s{6r+k{~P9ll!ID}4EPI$JLp9UDz_Sx{w zvu{s)Z85!eT34v(AINGJWUjzbTg1#bK5kX{`zJ-)FK16qwXA zuycC9=NJguxX()iUlNLygN^;9M6@tf*t^j6Drv}v!TEe40V#;aTI?0#c&s*?h|hDno6K(*F(6Ca+;MgVqYm;a7{hg# zP|@~?xOil^hJ`%-v*5!eL1u%MdPYlLmlt?P&8Yk?@+t{pnnoUSFJ${BMdKfj8Wm_QHG=BgBdX^{>R6PB|xIc^d*?(hB{98lag@{{=IAo2~Wb zmmSK`Zm>w|WR(fT#YM;o50gjR8ib%N{#ebEOc@p zEj@ZqobzK%poSfSw6w!2E{=XwWU{0|#K>AcbB7VCR{|xTL`1wkYXRsb(+jLJ=nzZU zmvy5tcRUClNr6cF@PffN1@uAmQ-K-jCAsXCZS1e&7#+=&!(y@8*emSvf6oIP3T7Ql znYmP~Say)Oz6OAm*{fhj(xzS$oKhz+_NDaU8w&^ovB3V6lGtOzB4MAHczk@?eHdm$ zAow~eu=A^PdFyF_g%A!PKUi-yGj|lHlm*0I>ebD+E-4S+WebmPaSv~wl^D5TP|n{b=6z##-7(+x(T4Rha&XVX$3X zk>hiBsuaphZ6Z2qD6yml(-I#U>lDG+Cc|*;G;C-~om0>oRm!rwv6Q5*R=k4?LCN*d zB&DXpiN}7ra;lS>hYSJSc>J6QN4Kz2#}^Y))`Se7@uN+2v|BJ4Bz1K3-#D6ShDGOx zsqtc%&X7S>Q11_NVGoAu)mU!N-73n)H0&h0)<19$MjT%`5C?*K&^r_K?!>Uxph&hr zsJvaV0YRr@L_~)mW~!>$`ff=?4V8ich_F^VE!BVMfP=n|6G#jdJASoeJn>ZkyfJ)L zqL%TW`M`WO@aGi`@93^)(s68EM`Ea?p1>3U0)5SCY0Gduk;mh`TUAqLW)K#E)rL`4 zYb1wmBEXM!)zfYvt5hONkkcnw74Xtnm@LHj&p7s&%NW>~QzjaU zuoKu?7cBJ(KjZ&|&XxYNi)@dHhDgaex~cITAZN%Pawz|y3ykh6k#{ay5@QK4jilrr zMjQ5$kfI`=p40D5RS%sT zyty?!n8B)YIPXB2Vh8#XmiU4woQ{N}zyq+qQDSlcAz~HAx45*l=Tv5Ql)lY%l&}f(9ppRE zjAqNWxxp%Wcz>7V<2l>X%~a{&FUk&bd2gq(P`;}6#BP&Empv!3!P{q4ONzrKfJ^+( zK~o2`p%&8Eb{MTDe7MAe2$&q57&yfUm;~@cKf%O*D@qtPMwZl6OaDhozjx~A-uLOJ z0xAEIVo^mkqgK%0y>%-CI8)*P0s`T?T`tpgR5d2|@Dp3SHgzsrHCzrL4BB_Kz?jD0 zwdBux>@Q+z!bkagk{Hn-%Ys`069KUdYCQzz1hngzu{kCTC0B*Xt(h7ICseH{y%hnP z(F@3|;RBW~E)ELA5>FR_Vf=1PMf?Bv75ayv3(7}&;A1Q=J%rY#^~p<{h#YL5QCfSC zCIFzdo^}|a33`fEqhmQr8JD&+1-R8tu(lQ5h>ZyFL=ctHLMLk%C^&&py44fs`<5K! zw@nuhZ&h0*)eahXf%YaM424;Rsc!7+4D1_vkwrH(dh4m8O^dsWQt#PA1xrg7So~=E zr8Sss&!A>Ne3H7s7jS$yzCGlK2!l~oW2zfG`8!MIqPOytP6cp1M*AHoMM#F0mnb9vID;v&I`s2`^#$pWW4+Yv_cY z(p21YdZpOi-imF4?pWmf>5vlgsVGzgXCzCV{H$?59qoH(dut^4m{-tS41;Sz&u@LK zw`bfv45dd&Lk|=?+bz)3pkXSbixC#gyrHe24E$S9x$!IG-dQEkCVBz;4?ElKt$Xj% zN6rQ{0UR23$CC`>Y$GT$6J;YJ8euEip$)yg@Qm)GQ@d#ThPU0SxK``=0}B%5cI7v; z?aF4R|KP>XbD;4wUR+=*B~*b5jKgYEt}ZpOQ-g%P8LD^_PYBUlb*@NAkQH_v{~xF@ zBQD`p%T4I;P_4+ly;pPp?wHi=oxtWlq5N~4dYh+2Y^gDwyqx0HPy zxZkPx#fy%w`J?|EME6A3p-)&U5PbOWZUqVkvA7xAs_lPeAwhPSpyNXLX-Zg@Y0^_8 zxAN7s9p$k5hq*-9b{=81&)iL}0LTViFE4_#z=^@_Tpi9vH0jA;hd4b3;r8tcKR!9n zRZ-4BIirM*w`6D)(umljb#ukv5&(DS<@UT{ZaYCe1#UG%!^z~8YSHO6%iw<>_x0>R z$EE$LSTB%%+6NgB8)O;I&VRZ`jC8Zc!%hFLBnt5?pl^WUcp~TeU?fvq9|FyC!&~Sd zhNLhtGSCJOH>zeOr(7LvBwyqwG!D{WJ>eDXJ|jUhBEJ1RVqL{_#K@~2a?+rSSm}EF zVj7|F5rCl469JsN7e~{Fs4{q*E77PSd7c>0$uf;ib?KfnDlQ7Bab)>oTMd}G${(kL zHI0FT`UUplnlf@qc7IVVJvGQ;gH{rHoEJfwNf#Ek(xkC_ocj6V*w1sHnSIKm>JN^@ z1yb*a_TH=F9ghCqIV#E6-zXt5qRj}LJ_H#^6^dJOB&!c*faJwvGi+LY*kDq|K_6^+ zNuC%qb=>$!oHt<(p8v%vfz6TCBy+PG>#Zv*TAw;^!~h(g3xW~$ml0`b*d`EZ)@ZzG zdN5!$=6N$Fu69THa4;cAZOrHu4Dfnu_wxU_gnb5pJ6hxYQ(i<^9$WoY@4XcR8YP`> zyB=B^Dr}V1?S@~cu6%XiAGIte?d5r8A`P)LKhK33H9f&*Bv42YV+hI6&%Xat+zSWI)b^C9&zTU=L8OEJvqg9Vg?r$ z!qAes@}42#mDjZlIjZ0q zcFfbMJ_`!?gRVkH2jV?OY6uUs%{=xEpFigH71@t9Fm&qo(owuUh@F(e$&|WyLq&il zY^djxk2WE}f1~A}l-fb7MHsUBo4e_ZR;{le0D3w+6$L_r9r=4>!T|a;z z19^3FmG_x%o;N7?#?O1x#MQ9-|703$-vS|wjgS@XbyVqh2Hnlguq?h_#Gl6JUH4IT z)ItwytM&dTL!t7Or}Dd9#IkK$d#V$VopuIL(6XPHe<=f9{Btd5din0pO%+Uk71jc| zs+ZD86I|^qI|$m)+er?k!G0cK1pLPj$#W6|4=&54%B}DBzmFQ|I~D0TpeMM=KlP0t z0a*}^(GmEd_1DLR^xU7m-rtC5DYgjz)OI&V7>LGjmUiO_|1s~I4oy2O5@bJvCobq@ z1SShIJLIJjC#$^mawaZMd`V>!W%#twQEMJJl}8Y;~qSIT^nO6qo7ufl3gL1+?~+|00)!spPslBgfz`+2(J)9=r) zryQ@>R!kvVKxgk@!LM`QuOA<;HwZRi$Pwty&LU2~F_m8ouP(L1?xkZ${|kT$ceBJ% zjbF#j`G4r`j-jf1+SD&rynp6^`Of{NcLxwv=?m6)Y59{~d9!slhk}2fRDPNnURjdA zcV__YLgGG%wEumc8BT8ZHD7&<#DMn|f8>x++PF^B0x5()4Mq-p;%Ec~y;+ zN4*b2NfM^QLFZ2eP9$+7YM^aD|peKq~S!enGT%z*-WaPh*wq=cPI+kl) z_{#rx!6Y%1#zJv8J6pL?cDnvzm&e`|_%M)X)byO>A7`%9@+F*QWia;1&Ink$+V4&b z0oTX#**L605d-MQmzTx0%@lL6VCFj1rJMs9#ji=~j0B<)3Xg_53_h9Y(Njd3miE|& z)at!}Y=75{CyK13FP#-^HALgR@s*}5*YUai&hlzMGgeslEKL3!8O(|;$~p;gMH+xO zK2l;{F-)o2D-MZ1cslGa zq@tcie)AgCsXiBHW6M&5e49*De0wc`u&yxAtENeh5GFG*pyT>?B0Ig1~urohq;Z zm#opfy7>)At7nH7@qDYju8GQ8o7X*RGw#+Nof*Ff0Wt(P7k^n))G1e)_Bj|I*aUDy+#= zRqa>8Us_&Dp}7B7Q8G_JAftTW;7fpp>H?Jl$D@Usl!Zjm)s$qi_k&+ysnrm-D`-Gg z$N+fy>TgrqWY9+(OtOiL-KOa@W3MTB$f2lD2PFq;T@4OiqQD!x1>@|bh-Z%+Kgv9& zG~B)TKAO1YDtjXvegA$xD3}6}8G48L0eygB^B7tbkzqgWlEHqoV_vISH~h8EC4EuP zN(M3!1!|@Vpdv$}!le!RnI}S&U4$t8omi53G!UP!k6l za_J{+qd)Tu(_lUob^fW!9Qv*gG$^dxHYj{9&U)QsrwIV2-mki^=m z@9#zsxoOx}M}O3R5YZCA+Oz?^@Ja+)0MDaIKFN~PG*;20Pa^re;_u@e|lX|Ukoql`W zci8>@$5&Bj?BcMGprZ*3bjyfbWy^tA6u_wBXY0Pp-a9#IH2w1lvVq>(9t}7-4~Okm{3af3K>IB z83JU(FzhaC)slrA!IyRmW^M=X+t#H&(H$bYgJ*r9*GaZ;bflY`IarBJnv_PcZq=*B zY%TMYWKXR_PYswblNB0n)eQ5E{Wzm%6(Bq9vtgBoJ84=6wF2^mjNpBuHQ}X>XV166 z>xdl!p*M_S4?tg>rP5UO#-R|~>@>Gbe+HEc0X@za?zt^_;#3EV{_kAP_#Y0db^=pt3`YSvxr|FD~)IOvRGJCZxWTYMnxZvn3F`?ffGH7+xH(Y^-049*M;$0tVu`Zz;9 zz)C<%zyv9QLbO8?E^*7DQ}liDKEyp&W%^Io!MTN&eQA8tZ-y?LG9J>?SD!msgi?zD zU8e&Y@~*ewk>t5Nk|=jsDJvr=$)BdNI zur!jLxaV3^o=2uToT#$dm+DnI^lI2A%J;&JZt(Jux>a`Qrn9R={#qBbM}o#J()U6A zk1|3|O>1lnL*u~J@;)eFQT#%ArmmVN{p3UtWj+KPL2b*rAsEj_4S(}K_z#wY+#ksq zkuo+nQxkb%c!hP+FnJEI=P#hb!SJ;AnK}>9zQ_du1Lb&!LPX_nk)spHoe5PPVjZ`f zzugg|SVITiBuT({BvXrJ?I@U-!?>@mS|D5PSC7o~*|>YBm5KX|eb8C0ZkgOqh!os& z2UO|#uA8hi`G(qkcV-JF^tku;S?EN8FrRZ<2H&SIX>WC%(dS3bQjv1GodF*`s~D$J z^|!y0^)|V{Z8TxPYc=0C;_4zuFydg#M^!%j;@5UZ&l!_Ch}ifqE~!S?$Zoq>`Jvim zri4FBe65J_2dIzK4MJ%vmVt7K31MN}(?M0FyU*Hdszqd?>&%E#;VxX-KR+gfRbESM z95n237m$K&6F#ahEuk97|7+GLZOU`OIz`u6kuW2bSgi@=k3M*5;L$5l5uWt851|xm zg_hHt;d6)KdWetg{XJ7(N*zL-17B)_szyQ5r*$iN`6jr>|KoEwZFC}y-_G6;>DE~vi_do zdK0{b*?6P2 zr`8B{YWU50E;c|z#Dg)WKMvv}D8 z%@^LM_HAT(pGw*0F6N7mC{~sCbk%E@s7U&nxQe)3(@^Ka*U?3}g5-)^t!}^w!3F zck9Vq9N#jkHobMp|76nH#JD{o+hxsNT=1#Tc5Z_wwTkt9*K8Y5G*XT;|4F?~%VFsljb>A3u$VG7fY|^K^hW6-i=54ohCsXI-Ij zukEa=tgWi_{~XbsvP$_8r(Iu7`L~f6VSyJUsyKCMwJL^|Nn9 z$e56w$y$W0WlOdp{G>ryCq=R^W1i!A{(WAr=l=11-Fxmi=icu*=XK7#=X~Dhmysiu zKA3N_JE`)nT9w%-BY>T#dOWF?a-L@h)y5@ql&;hB>1GU}tmk@yqSC;!;96|WA)hX> zCj-Qu`l%pe%&y#+xh%m3D*9ePxd;EISl~R28hvpfwoLeT19AIL-SMmP-C(~Qc5`h# z!21kywfT#f+pqQ-hb^+ZxGhW;duzz5DZ^{HGAwtTT}NChz^EDV4PjaWBs;%#=&eRR z|AaDS4)Cffs`bZ&>2vSBzQUk?%;A7;deQnRVn5nl{g}xyW`I3)`=w?(5mzZ6aEn2|mMrlK|jtf)zme zOJsAhNmTf4U>|WvKw&B@l}_TC|ghuIC~SHu4~-mBs!ZkmV-r%I|gc+`7oBGRp%2`u-3(UnyfaO@20_xOfU|xRue2A4|>z6ymh6;;|zQ6FSh&u2k z^-jqJ#QE!@e-C>3hVWiIRdvhK#FvBQX>*D6R8Xg4It3Ggbl3 z3h0_}9ydroX69wO%|@daZ6|XmqNbKFJZj(%+sOcRZr0aL)vaVD3Y)mcnmc0kLgOF3 zGMOZmkf6(OyPB>9otZj-PWG_Y3Ip$A3_69NqzkWZT{=j0X|=&`+t?2-cXQ!ja8&&! zgPEB!Gn^VueG2CLdeAIwcl5?jo7L&XC-%(xANo4@WQvBsVfzh_ygA?ctWSUpGc@QU zhr3KRasUn^ZXFPf_bO#Icxkl^nyhQk!lQ$q9dRYo+9X>*9I9#Y9gt=2s=s}_YiC1g z+cQJjou5u@hx34;Hn3-ZA-thF@hRv6x?_}8oWG_uk&2fwKz?7J-j5J>)bGuTJSap! zBfIEHsDp293x@}-nyPDWujNix9&n7Tk21%SlE8w>v-|sz7eOx~p)~Q?@VhgccqkA1 z`Q-;P$i!fc16?Z68p}`&b?==$bz}&;=uzl20-OIYSA|4@hRc5$`Mzfr^LJ`MBVWcH z7D`==rFi2?NU9W1eL^bVWLWxqR;;^G>hz&T+wGnU(R{J*Q5FjcGmR%^$Gxki}C;9=7Z8vYz=@tb&Vmc1N1d^5pJzSFd-*BhUxA;QT?dXuBYCEr+-@5qeVBN9zJ+29fEq@=l6 z9mL|7!u*GuMXW6Y`W9VG>9XpAzZ^Qen@X+TihcX3cK+j8&TvY?A%rjtDw`@T!c9}l z-9Mx`j0~hJ?yNQDBAI!yhdJndg80(wrS0;|*7S|r3J&E%(WIOgPz&BT{o1-l)-`6| zJnH^x>P})7j`hKkEaG}kQ)LCOXVpBdhWas)k3-M-3%8s=K(*Go)4ZtAMPj=nCYu)O zFi@zM$atj~>T)HF*9CnQ?=|YVvSfeYdO_UXT^|)VbfZ5I9rMz$uxp1%78S&?qAihV z=8Mz2JCuY7^buuLamYNku49nqzI)@4FR73N1_ef8kocE=Sx(P){R`h*(-x!9rWnVS z#sc0m+`CBN-p^F-;h%vC_-&F*HUydR#I++9<1X8B><8Hm; z3s+Q)2bZW|rWZLYb8w+kz<+ny4YUABljB@!BISA8C6Xl$%?_vx4a8VQ!sdFIFb*OK z2Qt})y_aykbKC}lI%bJi`$Au~$=Dm-sLvaFVjjtN!MjO6<=xMp@Nx$rfFQ!#r%m

GY#a=nb>=b%*0R zbFtIB;pFK6BTKK?vsuB`O+NWUG-wo*pzaK3q*$GcxWR{XAv&Y6EILz^&R`6;ReO;e zCJNKPj&tsNhOG#ujD9L{8nXa-z?D1sV>(#;w(~$pjO9uyJQ14SV%fdbZAGiq;g2`URCV3&6X}hM^StA2?C0!EHjz@&P%fxz zqxX;4O1rtHP|`y#PMj|N@q;o~SP169u-Jl^#vRTxTpZE{ng41=&t4I7wz9rnT;-D= zl#=p0{CxoCnso` z?1cD^)npC`LOgoHTilW72P3G;dw|!djLSnlu7Uzf_cOBOASheV+ak>}-XIu8&`Oh* zUOfQ>Mu-~<=>sWNk1S4-3QjAYDLyCv1SHfHVrUt~eqc(pJe=sibQ}U2o;?4v&wUyE z5Y<^N|38l=qMzUN;3u_uilit#wG@XS9L^dkTrv{v-%)^vl!X+%@+9lpfrH_<@*M9f zxGF!dWR$}QYl;SbV-X-2hFV@(5MXedzJ=OO&BdS|XuLHB@7Thvf=_?C%$jsl7+YO8 z-!)b!=1kfX>O9Cu;Y==SC5mAh@F*_zP}8Vf2-z37h117;n3<7x34~#j${ecM_-K=H zua$>xvq9Jirt|5X(tg2Y+V@5w0f^CBN_v&_Zp<5a^xFxoR-TZm?ssX3OR*m2<7k;u z=bd-gklgS35P}}RQoBxc_4}Px1*F3Ws&ez2tB0k>yf=a8RZgX}*1-7tGUFn*>>;UQ zHK&j>jB%$BP@gd_4p$FnNX}iW`yoYjgRYbZ{IgU!XqR+y);Sc^d1c2fqIlZf{mt2Y zNZ-QoUD>m&(YsQm{i9ddpq4}Pmqi;>KitBw%uL@vqBU~f`^myIWdlqqzMB{Ye6c+( zEkcfVw`(%pw-7Cd&_8yHZX2Cmmo(Uwy3gr*41x^5Q1T=d)Soh>Fbr9Jw%TQf6I%%> z8-ErzJqD$ht#eFY-6<|aH1^rKaCLo6&X!=e()D4kMa~ZQv=oPngUH#HjYAN`X)|cZ z0+WnhMDHS7nL+zO6#?BdP*%X0Z79L!+)HyWixSk}DIvV-6BtCwsUp7~tkv5ww!T(C lC8`a11c3tjUkBD>TP)hR;^v+{N6Eo`16@;{GA+Vi{|1UX;1B=+ literal 24092 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 LtDnm{r-UW|8L3%k diff --git a/img/delete_file.png b/img/delete_file.png index 3accae48cbbb3709275c661988f314e9078ffc7d..cbe3abe6cc90b28b8cf3db9f655b6e2fea035750 100644 GIT binary patch literal 16907 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 T$5id4iw4S%)#Wh{Enod#X=3$q literal 13573 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