From 78104b724bd45bb344303bc27a250b5a08da4edc Mon Sep 17 00:00:00 2001 From: Robofish <1683502971@qq.com> Date: Wed, 18 Jun 2025 14:30:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E7=8B=AC=E7=9A=84=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=9E=B6=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LICENSE | 21 - MR_Tool.py | 2339 ---------------------------------------- MRobot.py | 673 ------------ MRobot_old.py | 719 ------------ README.md | 93 -- fluentui.py | 168 --- img/.DS_Store | Bin 6148 -> 0 bytes img/M.ico | Bin 34573 -> 0 bytes img/M.png | Bin 107206 -> 0 bytes img/MR.ico | Bin 33309 -> 0 bytes img/MR.png | Bin 132709 -> 0 bytes img/MRobot.ico | Bin 14097 -> 0 bytes img/MRobot.png | Bin 97868 -> 0 bytes mr_tool_img/MRobot.png | Bin 97868 -> 0 bytes pngico.py | 42 - polynomial.py | 286 ----- src/freertos.c | 131 --- 开发要求.md | 105 -- 18 files changed, 4577 deletions(-) delete mode 100644 LICENSE delete mode 100644 MR_Tool.py delete mode 100644 MRobot.py delete mode 100644 MRobot_old.py delete mode 100644 README.md delete mode 100644 fluentui.py delete mode 100644 img/.DS_Store delete mode 100644 img/M.ico delete mode 100644 img/M.png delete mode 100644 img/MR.ico delete mode 100644 img/MR.png delete mode 100644 img/MRobot.ico delete mode 100644 img/MRobot.png delete mode 100644 mr_tool_img/MRobot.png delete mode 100644 pngico.py delete mode 100644 polynomial.py delete mode 100644 src/freertos.c delete mode 100644 开发要求.md diff --git a/LICENSE b/LICENSE deleted file mode 100644 index cb386d0..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2025 zucheng Lv - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/MR_Tool.py b/MR_Tool.py deleted file mode 100644 index 29bf82c..0000000 --- a/MR_Tool.py +++ /dev/null @@ -1,2339 +0,0 @@ -import sys -import os -import numpy as np -import pandas as pd -import requests -import webbrowser -import serial -import serial.tools.list_ports -from PyQt5.QtWidgets import ( - QApplication, QWidget, QLabel, QPushButton, QTextEdit, QVBoxLayout, - QHBoxLayout, QStackedWidget, QSizePolicy, QFrame, QGraphicsDropShadowEffect, - QSpinBox, QTableWidget, QTableWidgetItem, QFileDialog, QComboBox, QMessageBox, QHeaderView, - QGroupBox, QGridLayout, QLineEdit, QTextBrowser, QCheckBox -) -from PyQt5.QtGui import QPixmap, QFont, QIcon, QPainter, QPen, QColor -from PyQt5.QtCore import Qt, QTimer, QPointF, pyqtSlot -import matplotlib -from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas -from matplotlib.figure import Figure -from PyQt5.QtCore import pyqtSignal, pyqtSlot -from PyQt5.QtWebEngineWidgets import QWebEngineView # 新增 -from PyQt5.QtCore import QUrl -from PyQt5.QtCore import QThread -from PyQt5.QtWebEngineWidgets import QWebEngineProfile -from PyQt5.QtWidgets import QFileDialog -from PyQt5.QtWebEngineWidgets import QWebEngineView -from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineProfile, QWebEnginePage -from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage -from PyQt5.QtWidgets import QSplashScreen -from PyQt5.QtCore import Qt, QTimer -from PyQt5.QtGui import QPixmap - - -def resource_path(relative_path): - """兼容PyInstaller打包后资源路径""" - if hasattr(sys, '_MEIPASS'): - return os.path.join(sys._MEIPASS, relative_path) - return os.path.join(os.path.abspath("."), relative_path) - -# --------- 主页 --------- -class HomePage(QWidget): - def __init__(self): - super().__init__() - layout = QVBoxLayout(self) - layout.setContentsMargins(60, 60, 60, 60) - layout.setSpacing(32) - self.setStyleSheet(""" - QWidget { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #f8fbfd, stop:1 #eaf6fb); - border-radius: 18px; - } - """) - - # 欢迎标题 - title = QLabel("欢迎来到 MRobot 工具箱!") - title.setFont(QFont("微软雅黑", 26, QFont.Bold)) - title.setAlignment(Qt.AlignCenter) - title.setStyleSheet("color: #2980b9; letter-spacing: 3px;") - layout.addWidget(title) - # 设置高度 - title.setFixedHeight(120) - - # 分割线 - line = QFrame() - line.setFrameShape(QFrame.HLine) - line.setFrameShadow(QFrame.Sunken) - line.setStyleSheet("color: #d6eaf8; background: #d6eaf8; min-height: 2px;") - layout.addWidget(line) - - # 介绍内容 - desc = QLabel( - "🤖 本工具箱由青岛理工大学(QUT)机器人战队开发,\n" - "涵盖沧溟(Robocon)与MOVE(Robomaster)两支队伍。\n\n" - "集成了常用小工具与助手功能,持续更新中ing!\n" - "👉 可通过左侧选择不同模块,助力更高效的机器人开发,\n" - "节约开发时间,减少繁琐操作。\n\n" - "欢迎反馈建议,共同完善工具箱!" - ) - desc.setFont(QFont("微软雅黑", 16)) - desc.setAlignment(Qt.AlignCenter) - desc.setStyleSheet("color: #34495e;") - desc.setWordWrap(True) - layout.addWidget(desc) - - # 作者&版本信息 - info = QLabel( - "作者: QUT RMer & RCer   |   " - "版本: 0.0.2   |   " - "联系方式: QQ群 : 857466609" - ) - info.setFont(QFont("微软雅黑", 14)) - info.setAlignment(Qt.AlignCenter) - info.setStyleSheet("color: #7f8c8d; margin-top: 24px;") - info.setFixedHeight(100) # 修改为固定高度 - layout.addWidget(info) - - # 页脚 - footer = QLabel("© 2025 MRobot. 保留所有权利。") - footer.setFont(QFont("微软雅黑", 12)) - footer.setAlignment(Qt.AlignCenter) - footer.setStyleSheet("color: #b2bec3; margin-top: 18px;") - footer.setFixedHeight(100) # 修改为固定高度 - layout.addWidget(footer) - -# --------- 功能一:多项式拟合工具页面 --------- -class PolyFitApp(QWidget): - def __init__(self): - super().__init__() - self.setFont(QFont("微软雅黑", 15)) - self.data_x = [] - self.data_y = [] - self.last_coeffs = None - self.last_xmin = None - self.last_xmax = None - - # 统一背景和边框 - self.setStyleSheet(""" - QWidget { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #eaf6fb, stop:1 #d6eaf8); - border-radius: 16px; - border: 1px solid #d6eaf8; - } - """) - - main_layout = QHBoxLayout(self) - main_layout.setContentsMargins(24, 24, 24, 24) - main_layout.setSpacing(24) - left_layout = QVBoxLayout() - left_layout.setSpacing(18) - right_layout = QVBoxLayout() - right_layout.setSpacing(18) - main_layout.addLayout(left_layout, 0) - main_layout.addLayout(right_layout, 1) - - # 标题 - title = QLabel("曲线拟合工具") - # title.setFont(QFont("微软雅黑", 2, QFont.Bold)) - # 设置文字大小 - title.setFont(QFont("微软雅黑", 14, QFont.Bold)) - title.setAlignment(Qt.AlignCenter) - title.setStyleSheet("color: #2980b9; letter-spacing: 2px;") - left_layout.addWidget(title) - - # 数据表 - self.table = QTableWidget(0, 2) - self.table.setFont(QFont("Consolas", 16)) - self.table.setHorizontalHeaderLabels(["x", "y"]) - self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) - self.table.setSelectionBehavior(QTableWidget.SelectRows) - self.table.setStyleSheet(""" - QTableWidget { - background: #f8fbfd; - border-radius: 10px; - border: 1px solid #d6eaf8; - font-size: 16px; - } - QHeaderView::section { - background-color: #eaf6fb; - color: #2980b9; - font-size: 16px; - font-weight: bold; - border: 1px solid #d6eaf8; - height: 36px; - } - """) - self.table.setMinimumHeight(200) # 设置最小高度 - left_layout.addWidget(self.table, stretch=1) # 让表格尽量撑大 - - # 添加/删除行 - btn_row = QHBoxLayout() - self.add_row_btn = QPushButton("添加数据") - self.add_row_btn.setFont(QFont("微软雅黑", 20, QFont.Bold)) - self.add_row_btn.setMinimumHeight(44) - self.add_row_btn.clicked.connect(self.add_point_row) - self.del_row_btn = QPushButton("删除选中行") - self.del_row_btn.setFont(QFont("微软雅黑", 20, QFont.Bold)) - self.del_row_btn.setMinimumHeight(44) - self.del_row_btn.clicked.connect(self.delete_selected_rows) - for btn in [self.add_row_btn, self.del_row_btn]: - btn.setStyleSheet(""" - QPushButton { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #eaf6fb, stop:1 #d6eaf8); - color: #2980b9; - border-radius: 20px; - font-size: 20px; - font-weight: 600; - padding: 10px 0; - border: 1px solid #d6eaf8; - } - QPushButton:hover { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #f8fffe, stop:1 #cfe7fa); - color: #1a6fae; - border: 1.5px solid #b5d0ea; - } - QPushButton:pressed { - background: #e3f0fa; - color: #2471a3; - border: 1.5px solid #a4cbe3; - } - """) - btn_row.addWidget(self.add_row_btn) - btn_row.addWidget(self.del_row_btn) - left_layout.addLayout(btn_row) - - # 导入/导出 - file_btn_row = QHBoxLayout() - self.import_btn = QPushButton("导入Excel文件") - self.import_btn.setFont(QFont("微软雅黑", 18, QFont.Bold)) - self.import_btn.setMinimumHeight(44) - self.import_btn.clicked.connect(self.load_excel) - self.export_btn = QPushButton("导出Excel文件") - self.export_btn.setFont(QFont("微软雅黑", 18, QFont.Bold)) - self.export_btn.setMinimumHeight(44) - self.export_btn.clicked.connect(self.export_excel_and_plot) - for btn in [self.import_btn, self.export_btn]: - btn.setStyleSheet(""" - QPushButton { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #eaf6fb, stop:1 #d6eaf8); - color: #2980b9; - border-radius: 20px; - font-size: 20px; - font-weight: 600; - padding: 10px 0; - border: 1px solid #d6eaf8; - } - QPushButton:hover { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #f8fffe, stop:1 #cfe7fa); - color: #1a6fae; - border: 1.5px solid #b5d0ea; - } - QPushButton:pressed { - background: #e3f0fa; - color: #2471a3; - border: 1.5px solid #a4cbe3; - } - """) - file_btn_row.addWidget(self.import_btn) - file_btn_row.addWidget(self.export_btn) - left_layout.addLayout(file_btn_row) - - # 阶数选择 - param_layout = QHBoxLayout() - label_order = QLabel("多项式阶数:") - # 文字居中 - label_order.setAlignment(Qt.AlignCenter) - # 文字加粗 - label_order.setStyleSheet("color: #2980b9;") - param_layout.addWidget(label_order) - self.order_spin = QSpinBox() - self.order_spin.setFont(QFont("微软雅黑", 18)) - self.order_spin.setRange(1, 10) - self.order_spin.setValue(2) - self.order_spin.setStyleSheet(""" - QSpinBox { - background: #f8fbfd; - border-radius: 10px; - border: 1px solid #d6eaf8; - font-size: 18px; - padding: 4px 12px; - } - """) - param_layout.addWidget(self.order_spin) - left_layout.addLayout(param_layout) - - # 拟合按钮 - self.fit_btn = QPushButton("拟合并显示") - self.fit_btn.setFont(QFont("微软雅黑", 20, QFont.Bold)) - self.fit_btn.setMinimumHeight(48) - self.fit_btn.clicked.connect(self.fit_and_plot) - self.fit_btn.setStyleSheet(""" - QPushButton { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #eaf6fb, stop:1 #d6eaf8); - color: #2980b9; - border-radius: 20px; - font-size: 22px; - font-weight: 600; - padding: 12px 0; - border: 1px solid #d6eaf8; - } - QPushButton:hover { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #f8fffe, stop:1 #cfe7fa); - color: #1a6fae; - border: 1.5px solid #b5d0ea; - } - QPushButton:pressed { - background: #e3f0fa; - color: #2471a3; - border: 1.5px solid #a4cbe3; - } - """) - left_layout.addWidget(self.fit_btn) - # 输出区 - self.output = QTextEdit() - self.output.setReadOnly(False) - self.output.setFont(QFont("Consolas", 16)) - self.output.setMaximumHeight(160) - self.output.setStyleSheet(""" - QTextEdit { - background: #f4f6f7; - border-radius: 8px; - border: 1px solid #d6eaf8; - font-size: 16px; - color: #2c3e50; - padding: 10px; - } - """) - # self.table.setFixedHeight(400) # 设置表格高度为260像素 - left_layout.addWidget(self.output) - # 代码生成 - code_layout = QHBoxLayout() - label_code = QLabel("输出代码格式:") - # label_code.setFont(QFont("微软雅黑", 18, QFont.Bold)) - label_code.setStyleSheet("color: #2980b9;") - code_layout.addWidget(label_code) - self.code_type = QComboBox() - self.code_type.setFont(QFont("微软雅黑", 18)) - self.code_type.addItems(["C", "C++", "Python"]) - self.code_type.setStyleSheet(""" - QComboBox { - background: #f8fbfd; - border-radius: 10px; - border: 1px solid #d6eaf8; - font-size: 18px; - padding: 4px 12px; - } - """) - code_layout.addWidget(self.code_type) - self.gen_code_btn = QPushButton("生成代码") - self.gen_code_btn.setFont(QFont("微软雅黑", 18, QFont.Bold)) - self.gen_code_btn.setMinimumHeight(44) - self.gen_code_btn.clicked.connect(self.generate_code) - self.gen_code_btn.setStyleSheet(""" - QPushButton { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #eaf6fb, stop:1 #d6eaf8); - color: #2980b9; - border-radius: 20px; - font-size: 20px; - font-weight: 600; - padding: 10px 0; - border: 1px solid #d6eaf8; - } - QPushButton:hover { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #f8fffe, stop:1 #cfe7fa); - color: #1a6fae; - border: 1.5px solid #b5d0ea; - } - QPushButton:pressed { - background: #e3f0fa; - color: #2471a3; - border: 1.5px solid #a4cbe3; - } - """) - code_layout.addWidget(self.gen_code_btn) - left_layout.addLayout(code_layout) - - - # 曲线区加圆角和阴影 - curve_frame = QFrame() - curve_frame.setStyleSheet(""" - QFrame { - background: #fff; - border-radius: 16px; - border: 1px solid #d6eaf8; - } - """) - curve_shadow = QGraphicsDropShadowEffect(self) - curve_shadow.setBlurRadius(24) - curve_shadow.setOffset(0, 4) - curve_shadow.setColor(Qt.gray) - curve_frame.setGraphicsEffect(curve_shadow) - curve_layout = QVBoxLayout(curve_frame) - curve_layout.setContentsMargins(10, 10, 10, 10) - self.figure = Figure(figsize=(6, 5)) - self.canvas = FigureCanvas(self.figure) - curve_layout.addWidget(self.canvas) - right_layout.addWidget(curve_frame) - - # 默认显示空坐标系 - self.figure.clear() - ax = self.figure.add_subplot(111) - # ax.set_title("拟合结果", fontsize=22, fontweight='bold') - ax.set_xlabel("x", fontsize=18) - ax.set_ylabel("y", fontsize=18) - ax.tick_params(labelsize=15) - # ax.set_title("拟合结果", fontsize=22, fontweight='bold') # 中文标题 - self.canvas.draw() - - def add_point_row(self, x_val="", y_val=""): - row = self.table.rowCount() - self.table.insertRow(row) - self.table.setItem(row, 0, QTableWidgetItem(str(x_val))) - self.table.setItem(row, 1, QTableWidgetItem(str(y_val))) - - def delete_selected_rows(self): - selected = self.table.selectionModel().selectedRows() - for idx in sorted(selected, reverse=True): - self.table.removeRow(idx.row()) - - def load_excel(self): - file, _ = QFileDialog.getOpenFileName(self, "选择Excel文件", "", "Excel Files (*.xlsx *.xls)") - if file: - try: - data = pd.read_excel(file, usecols=[0, 1]) - new_x = data.iloc[:, 0].values.tolist() - new_y = data.iloc[:, 1].values.tolist() - for x, y in zip(new_x, new_y): - self.add_point_row(x, y) - QMessageBox.information(self, "成功", "数据导入成功!") - except Exception as e: - QMessageBox.critical(self, "错误", f"读取Excel失败: {e}") - - def export_excel_and_plot(self): - file, _ = QFileDialog.getSaveFileName(self, "导出Excel文件", "", "Excel Files (*.xlsx *.xls)") - if file: - x_list, y_list = [], [] - for row in range(self.table.rowCount()): - try: - x = float(self.table.item(row, 0).text()) - y = float(self.table.item(row, 1).text()) - x_list.append(x) - y_list.append(y) - except Exception: - continue - if not x_list or not y_list: - QMessageBox.warning(self, "导出失败", "没有可导出的数据!") - return - df = pd.DataFrame({'x': x_list, 'y': y_list}) - try: - df.to_excel(file, index=False) - png_file = file - if png_file.lower().endswith('.xlsx') or png_file.lower().endswith('.xls'): - png_file = png_file.rsplit('.', 1)[0] + '.png' - else: - png_file = png_file + '.png' - self.figure.savefig(png_file, dpi=150, bbox_inches='tight') - QMessageBox.information(self, "导出成功", f"数据已成功导出到Excel文件!\n图像已导出为:{png_file}") - except Exception as e: - QMessageBox.critical(self, "导出错误", f"导出Excel或图像失败: {e}") - - def get_manual_points(self): - x_list, y_list = [], [] - for row in range(self.table.rowCount()): - try: - x = float(self.table.item(row, 0).text()) - y = float(self.table.item(row, 1).text()) - x_list.append(x) - y_list.append(y) - except Exception: - continue - return x_list, y_list - - def fit_and_plot(self): - self.data_x, self.data_y = self.get_manual_points() - try: - order = int(self.order_spin.value()) - except ValueError: - QMessageBox.warning(self, "输入错误", "阶数必须为整数!") - return - n_points = len(self.data_x) - if n_points < order + 1: - QMessageBox.warning(self, "数据不足", "数据点数量不足以拟合该阶多项式!") - return - x = np.array(self.data_x, dtype=np.float64) - y = np.array(self.data_y, dtype=np.float64) - x_min, x_max = x.min(), x.max() - if x_max - x_min == 0: - QMessageBox.warning(self, "数据错误", "所有x值都相同,无法拟合!") - return - try: - coeffs = np.polyfit(x, y, order) - except Exception as e: - QMessageBox.critical(self, "拟合错误", f"多项式拟合失败:{e}") - return - poly = np.poly1d(coeffs) - expr = "y = " + " + ".join([f"{c:.6g}*x^{order-i}" for i, c in enumerate(coeffs)]) - self.output.setPlainText(f"{expr}\n") - self.figure.clear() - ax = self.figure.add_subplot(111) - # ax.set_title("拟合结果", fontsize=22, fontweight='bold') - ax.set_xlabel("x", fontsize=18) - ax.set_ylabel("y", fontsize=18) - ax.scatter(x, y, color='red', label='Data') - x_fit = np.linspace(x_min, x_max, 200) - y_fit = poly(x_fit) - ax.plot(x_fit, y_fit, label='Fit Curve') - ax.legend() - self.canvas.draw() - self.last_coeffs = coeffs - self.last_xmin = x_min - self.last_xmax = x_max - - def generate_code(self): - if self.last_coeffs is None: - QMessageBox.warning(self, "未拟合", "请先拟合数据!") - return - coeffs = self.last_coeffs - code_type = self.code_type.currentText() - if code_type == "C": - code = self.create_c_function(coeffs) - elif code_type == "C++": - code = self.create_cpp_function(coeffs) - else: - code = self.create_py_function(coeffs) - self.output.setPlainText(code) - - def create_c_function(self, coeffs): - lines = ["#include ", "double polynomial(double x) {", " return "] - n = len(coeffs) - terms = [] - for i, c in enumerate(coeffs): - exp = n - i - 1 - if exp == 0: - terms.append(f"{c:.8g}") - elif exp == 1: - terms.append(f"{c:.8g}*x") - else: - terms.append(f"{c:.8g}*pow(x,{exp})") - lines[-1] += " + ".join(terms) + ";" - lines.append("}") - return "\n".join(lines) - - def create_cpp_function(self, coeffs): - lines = ["#include ", "double polynomial(double x) {", " return "] - n = len(coeffs) - terms = [] - for i, c in enumerate(coeffs): - exp = n - i - 1 - if exp == 0: - terms.append(f"{c:.8g}") - elif exp == 1: - terms.append(f"{c:.8g}*x") - else: - terms.append(f"{c:.8g}*pow(x,{exp})") - lines[-1] += " + ".join(terms) + ";" - lines.append("}") - return "\n".join(lines) - - def create_py_function(self, coeffs): - n = len(coeffs) - lines = ["def polynomial(x):", " return "] - terms = [] - for i, c in enumerate(coeffs): - exp = n - i - 1 - if exp == 0: - terms.append(f"{c:.8g}") - elif exp == 1: - terms.append(f"{c:.8g}*x") - else: - terms.append(f"{c:.8g}*x**{exp}") - lines[-1] += " + ".join(terms) - return "\n".join(lines) - -# --------- 功能二:下载 --------- -class DownloadPage(QWidget): - def __init__(self): - super().__init__() - self.setFont(QFont("微软雅黑", 15)) - self.setStyleSheet(""" - QWidget { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #eaf6fb, stop:1 #d6eaf8); - border-radius: 18px; - border: 1px solid #d6eaf8; - } - """) - main_layout = QVBoxLayout(self) - main_layout.setContentsMargins(60, 60, 60, 60) - main_layout.setSpacing(32) - - # 标题 - title = QLabel("常用工具下载") - title.setFont(QFont("微软雅黑", 26, QFont.Bold)) - title.setAlignment(Qt.AlignCenter) - title.setStyleSheet("color: #2980b9; letter-spacing: 3px; margin-bottom: 10px;") - main_layout.addWidget(title) - - # 分割线 - line = QFrame() - line.setFrameShape(QFrame.HLine) - line.setFrameShadow(QFrame.Sunken) - line.setStyleSheet("color: #d6eaf8; background: #d6eaf8; min-height: 2px;") - main_layout.addWidget(line) - - # # 说明 - # desc = QLabel("点击下方按钮可直接跳转到常用工具或开发软件的官方下载页面:") - # desc.setFont(QFont("微软雅黑", 17)) - # desc.setAlignment(Qt.AlignCenter) - # desc.setStyleSheet("color: #34495e; margin-bottom: 18px;") - # main_layout.addWidget(desc) - - spacer = QFrame() - spacer.setFixedHeight(4) # 可根据需要调整间隔高度 - spacer.setStyleSheet("background: transparent; border: none;") - main_layout.addWidget(spacer) - - # 小工具类 - tools_tools = [ - ("Geek Uninstaller", "https://geekuninstaller.com/download", "🧹"), - ("Neat Download Manager", "https://www.neatdownloadmanager.com/index.php/en/", "⬇️"), - ("Everything", "https://www.voidtools.com/zh-cn/downloads/", "🔍"), - ("Bandizip", "https://www.bandisoft.com/bandizip/", "🗜️"), - ("PotPlayer", "https://potplayer.daum.net/", "🎬"), - ("Typora", "https://typora.io/", "📝"), - ("Git", "https://git-scm.com/download/win", "🟥"), - ("Python", "https://www.python.org/downloads/", "🐍"), - ] - tools_group = QGroupBox("常用小工具") - tools_group.setFont(QFont("微软雅黑", 14, QFont.Bold)) - tools_group.setStyleSheet(""" - QGroupBox { - border: 2px solid #b5d0ea; - border-radius: 12px; - margin-top: 16px; - background: #f8fbfd; - color: #2471a3; - padding: 10px 0 0 0; - } - QGroupBox:title { - subcontrol-origin: margin; - left: 18px; - top: -10px; - background: transparent; - padding: 0 8px; - } - """) - tools_layout = QGridLayout() - tools_layout.setSpacing(18) - tools_layout.setContentsMargins(24, 24, 24, 24) - for idx, (name, url, icon) in enumerate(tools_tools): - btn = QPushButton(f"{icon} {name}") - btn.setFont(QFont("微软雅黑", 16, QFont.Bold)) - btn.setMinimumHeight(60) - btn.setCursor(Qt.PointingHandCursor) - btn.setStyleSheet(""" - QPushButton { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #eaf6fb, stop:1 #d6eaf8); - color: #2471a3; - border-radius: 14px; - font-size: 16px; - font-weight: 600; - padding: 8px 0; - border: 1.5px solid #d6eaf8; - letter-spacing: 1px; - } - QPushButton:hover { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #f8fffe, stop:1 #cfe7fa); - color: #1a6fae; - border: 2px solid #b5d0ea; - } - QPushButton:pressed { - background: #e3f0fa; - color: #2471a3; - border: 2px solid #a4cbe3; - } - """) - btn.clicked.connect(lambda checked, link=url: webbrowser.open(link)) - row, col = divmod(idx, 4) - tools_layout.addWidget(btn, row, col) - tools_group.setLayout(tools_layout) - main_layout.addWidget(tools_group) - spacer = QFrame() - spacer.setFixedHeight(4) # 可根据需要调整间隔高度 - spacer.setStyleSheet("background: transparent; border: none;") - main_layout.addWidget(spacer) - - # 开发/设计软件类 - dev_tools = [ - ("STM32CubeMX", "https://www.st.com/zh/development-tools/stm32cubemx.html", "🟦"), - ("Keil MDK", "https://www.keil.com/download/product/", "🟩"), - ("Visual Studio Code", "https://code.visualstudio.com/", "🟦"), - ("CLion", "https://www.jetbrains.com/clion/download/", "🟧"), - ("MATLAB", "https://www.mathworks.com/downloads/", "🟨"), - ("SolidWorks", "https://www.solidworks.com/sw/support/downloads.htm", "🟫"), - ("Altium Designer", "https://www.altium.com/zh/altium-designer/downloads", "🟪"), - ("原神", "https://download-porter.hoyoverse.com/download-porter/2025/03/27/GenshinImpact_install_202503072011.exe?trace_key=GenshinImpact_install_ua_679d0b4e9b10", "🟫"), - ] - dev_group = QGroupBox("开发/设计软件") - dev_group.setFont(QFont("微软雅黑", 14, QFont.Bold)) - dev_group.setStyleSheet(""" - QGroupBox { - border: 2px solid #b5d0ea; - border-radius: 12px; - margin-top: 16px; - background: #f8fbfd; - color: #2471a3; - padding: 10px 0 0 0; - } - QGroupBox:title { - subcontrol-origin: margin; - left: 18px; - top: -10px; - background: transparent; - padding: 0 8px; - } - """) - dev_layout = QGridLayout() - dev_layout.setSpacing(18) - dev_layout.setContentsMargins(24, 24, 24, 24) - for idx, (name, url, icon) in enumerate(dev_tools): - btn = QPushButton(f"{icon} {name}") - btn.setFont(QFont("微软雅黑", 16, QFont.Bold)) - btn.setMinimumHeight(60) - btn.setCursor(Qt.PointingHandCursor) - btn.setStyleSheet(""" - QPushButton { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #eaf6fb, stop:1 #d6eaf8); - color: #2471a3; - border-radius: 14px; - font-size: 16px; - font-weight: 600; - padding: 8px 0; - border: 1.5px solid #d6eaf8; - letter-spacing: 1px; - } - QPushButton:hover { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #f8fffe, stop:1 #cfe7fa); - color: #1a6fae; - border: 2px solid #b5d0ea; - } - QPushButton:pressed { - background: #e3f0fa; - color: #2471a3; - border: 2px solid #a4cbe3; - } - """) - btn.clicked.connect(lambda checked, link=url: webbrowser.open(link)) - row, col = divmod(idx, 4) - dev_layout.addWidget(btn, row, col) - dev_group.setLayout(dev_layout) - main_layout.addWidget(dev_group) - - main_layout.addStretch(1) - - # 页脚 - footer = QLabel("如有问题或建议,欢迎反馈至QQ群:857466609") - footer.setFont(QFont("微软雅黑", 13)) - footer.setAlignment(Qt.AlignCenter) - footer.setStyleSheet("color: #b2bec3; margin-top: 18px;") - main_layout.addWidget(footer) - -# --------- 功能三:串口助手 --------- -class SerialAssistant(QWidget): - def __init__(self): - super().__init__() - self.setFont(QFont("微软雅黑", 15)) - self.ser = None - self.timer = None - self.recv_buffer = b"" - self.plot_data = {} - self.curve_colors = ["#e74c3c", "#2980b9", "#27ae60", "#f1c40f", "#8e44ad", "#16a085"] - self.data_types = ["float", "int16", "uint16", "int8", "uint8"] - self.data_type = "float" - self.data_count = 2 - self.sample_idx = 0 - - # 新增:HEX模式复选框 - self.hex_send_chk = QCheckBox("HEX发送") - self.hex_recv_chk = QCheckBox("HEX接收") - self.hex_send_chk.setFont(QFont("微软雅黑", 12)) - self.hex_recv_chk.setFont(QFont("微软雅黑", 12)) - self.hex_send_chk.setChecked(False) - self.hex_recv_chk.setChecked(False) - - # 主体布局 - main_layout = QHBoxLayout(self) - main_layout.setContentsMargins(32, 32, 32, 32) - main_layout.setSpacing(28) - - # 左侧面板 - left_panel = QVBoxLayout() - left_panel.setSpacing(20) - left_panel.setContentsMargins(0, 0, 0, 0) - - # 串口配置区 - config_group = QGroupBox("串口配置") - config_group.setFont(QFont("微软雅黑", 14, QFont.Bold)) - config_group.setStyleSheet(""" - QGroupBox { - border: 2px solid #b5d0ea; - border-radius: 12px; - margin-top: 12px; - background: #f8fbfd; - color: #2471a3; - padding: 8px 0 0 0; - } - QGroupBox:title { - subcontrol-origin: margin; - left: 16px; - top: -8px; - background: transparent; - padding: 0 8px; - } - """) - config_layout = QGridLayout() - config_layout.setSpacing(12) - config_layout.setContentsMargins(16, 16, 16, 16) - config_layout.addWidget(QLabel("串口号:"), 0, 0) - self.port_box = QComboBox() - self.port_box.setMinimumWidth(120) - self.refresh_ports() - config_layout.addWidget(self.port_box, 0, 1) - config_layout.addWidget(QLabel("波特率:"), 1, 0) - self.baud_box = QComboBox() - self.baud_box.addItems(["9600", "115200", "57600", "38400", "19200", "4800"]) - self.baud_box.setCurrentText("115200") - config_layout.addWidget(self.baud_box, 1, 1) - self.refresh_btn = QPushButton("刷新串口") - self.refresh_btn.clicked.connect(self.refresh_ports) - self.refresh_btn.setStyleSheet(self._btn_style()) - config_layout.addWidget(self.refresh_btn, 2, 0) - self.open_btn = QPushButton("打开串口") - self.open_btn.setCheckable(True) - self.open_btn.clicked.connect(self.toggle_serial) - self.open_btn.setStyleSheet(self._btn_style("#27ae60")) - config_layout.addWidget(self.open_btn, 2, 1) - config_group.setLayout(config_layout) - left_panel.addWidget(config_group) - - # 数据协议配置区 - proto_group = QGroupBox("数据协议配置") - proto_group.setFont(QFont("微软雅黑", 14, QFont.Bold)) - proto_group.setStyleSheet(config_group.styleSheet()) - proto_layout = QHBoxLayout() - proto_layout.setSpacing(18) - proto_layout.setContentsMargins(16, 16, 16, 16) - proto_layout.addWidget(QLabel("数据数量:")) - self.data_count_spin = QSpinBox() - self.data_count_spin.setRange(1, 16) - self.data_count_spin.setValue(self.data_count) - self.data_count_spin.setFixedWidth(80) - self.data_count_spin.valueChanged.connect(self.apply_proto_config) - proto_layout.addWidget(self.data_count_spin) - proto_layout.addSpacing(18) - proto_layout.addWidget(QLabel("数据类型:")) - self.data_type_box = QComboBox() - self.data_type_box.addItems(self.data_types) - self.data_type_box.setCurrentText(self.data_type) - self.data_type_box.setFixedWidth(100) - self.data_type_box.currentTextChanged.connect(self.apply_proto_config) - proto_layout.addWidget(self.data_type_box) - # proto_layout.addStretch(1) - proto_group.setLayout(proto_layout) - left_panel.addWidget(proto_group) - - # 发送数据区美化 - send_group = QGroupBox("发送数据") - send_group.setFont(QFont("微软雅黑", 14, QFont.Bold)) - send_group.setStyleSheet(""" - QGroupBox { - border: 2px solid #b5d0ea; - border-radius: 12px; - margin-top: 12px; - background: #f8fbfd; - color: #2471a3; - padding: 8px 0 0 0; - } - QGroupBox:title { - subcontrol-origin: margin; - left: 16px; - top: -8px; - background: transparent; - padding: 0 8px; - } - """) - send_layout = QVBoxLayout() - send_layout.setSpacing(16) - send_layout.setContentsMargins(18, 18, 18, 18) - - # 输入框(多行) - self.send_edit = QTextEdit() - self.send_edit.setFont(QFont("Consolas", 18)) - self.send_edit.setPlaceholderText("输入要发送的数据,可多行(支持HEX/文本)...") - self.send_edit.setMinimumHeight(140) - self.send_edit.setMaximumHeight(220) - self.send_edit.setStyleSheet(""" - QTextEdit { - background: #f8fbfd; - border-radius: 12px; - border: 2px solid #d6eaf8; - font-size: 18px; - padding: 14px 20px; - } - """) - send_layout.addWidget(self.send_edit) - - # HEX复选框和按钮行 - row1 = QHBoxLayout() - row1.setSpacing(24) - self.hex_send_chk.setStyleSheet(""" - QCheckBox { - color: #2471a3; - font-size: 15px; - } - QCheckBox::indicator { - width: 22px; - height: 22px; - } - QCheckBox::indicator:checked { - background-color: #2980b9; - border: 1.5px solid #2980b9; - } - QCheckBox::indicator:unchecked { - background-color: #fff; - border: 1.5px solid #b5d0ea; - } - """) - self.hex_recv_chk.setStyleSheet(self.hex_send_chk.styleSheet()) - row1.addWidget(self.hex_send_chk) - row1.addWidget(self.hex_recv_chk) - row1.addStretch(1) - send_layout.addLayout(row1) - - # 发送和持续发送按钮+频率(优化为“每秒发送次数”) - row2 = QHBoxLayout() - row2.setSpacing(18) - self.send_btn = QPushButton("发送") - self.send_btn.clicked.connect(self.send_data) - self.send_btn.setFont(QFont("微软雅黑", 16, QFont.Bold)) - self.send_btn.setFixedHeight(44) - self.send_btn.setFixedWidth(120) - self.send_btn.setStyleSheet(self._btn_style("#2980b9")) - row2.addWidget(self.send_btn) - - self.cont_send_btn = QPushButton("持续发送") - self.cont_send_btn.setCheckable(True) - self.cont_send_btn.setFont(QFont("微软雅黑", 15)) - self.cont_send_btn.setFixedHeight(44) - self.cont_send_btn.setFixedWidth(120) - self.cont_send_btn.setStyleSheet(self._btn_style("#f1c40f")) - self.cont_send_btn.clicked.connect(self.toggle_cont_send) - row2.addWidget(self.cont_send_btn) - - freq_label = QLabel(" 每秒发送次数:") - freq_label.setFont(QFont("微软雅黑", 8)) - freq_label.setFixedWidth(180) - #文本居中 - # freq_label.setAlignment(Qt.AlignRight | Qt.AlignVCenter) - row2.addWidget(freq_label) - - self.freq_input = QSpinBox() - self.freq_input.setRange(1, 1000) - self.freq_input.setValue(5) - self.freq_input.setFont(QFont("Consolas", 14)) - self.freq_input.setFixedWidth(100) - self.freq_input.setStyleSheet(""" - QSpinBox { - background: #f8fbfd; - border-radius: 8px; - border: 1px solid #d6eaf8; - font-size: 15px; - padding: 2px 8px; - } - """) - row2.addWidget(self.freq_input) - - # freq_unit = QLabel("次/秒") - # freq_unit.setFont(QFont("微软雅黑", 13)) - # freq_unit.setFixedWidth(40) - # row2.addWidget(freq_unit) - row2.addStretch(1) - send_layout.addLayout(row2) - - self.cont_send_timer = QTimer(self) - self.cont_send_timer.timeout.connect(self.send_data) - - send_group.setLayout(send_layout) - left_panel.addWidget(send_group, stretch=1) # 让发送区弹性填充 - - # 使用说明始终在最下方 - usage_group = QGroupBox("使用说明") - usage_group.setFont(QFont("微软雅黑", 13, QFont.Bold)) - usage_group.setStyleSheet(""" - QGroupBox { - border: 2px solid #b5d0ea; - border-radius: 10px; - margin-top: 10px; - background: #f8fbfd; - color: #2471a3; - padding: 6px 0 0 0; - } - QGroupBox:title { - subcontrol-origin: margin; - left: 10px; - top: -8px; - background: transparent; - padding: 0 6px; - } - """) - usage_layout = QVBoxLayout() - usage_label = QLabel( - "1. 在“数据协议配置”中选择数据数量和数据类型。\n" - "2. 下位机发送格式:\n" - " 0x55 + 数据数量(1字节) + 数据 + 校验和(1字节)\n" - " 校验和为包头到最后一个数据字节的累加和的低8位。\n" - "3. 每包数据自动绘制曲线,X轴为采样点(或时间),Y轴为各通道数据。\n" - ) - usage_label.setWordWrap(True) - usage_label.setFont(QFont("微软雅黑", 9)) - usage_layout.addWidget(usage_label) - usage_group.setLayout(usage_layout) - left_panel.addWidget(usage_group) - - # 清空按钮紧贴使用说明 - self.clear_btn = QPushButton("清空接收和曲线") - self.clear_btn.clicked.connect(self.clear_all) - self.clear_btn.setStyleSheet(self._btn_style("#e74c3c")) - self.clear_btn.setFixedHeight(38) - left_panel.addWidget(self.clear_btn) - - main_layout.addLayout(left_panel, 0) - - # 右侧面板 - right_panel = QVBoxLayout() - right_panel.setSpacing(20) - - # 接收区 - recv_group = QGroupBox("串口接收区") - recv_group.setFont(QFont("微软雅黑", 14, QFont.Bold)) - recv_group.setStyleSheet(config_group.styleSheet()) - recv_layout = QVBoxLayout() - self.recv_box = QTextEdit() - self.recv_box.setFont(QFont("Consolas", 13)) - self.recv_box.setReadOnly(True) - self.recv_box.setMinimumHeight(120) - self.recv_box.setStyleSheet(""" - QTextEdit { - background: #f8fbfd; - border-radius: 10px; - border: 1px solid #d6eaf8; - font-size: 15px; - color: #2c3e50; - padding: 8px; - } - """) - recv_layout.addWidget(self.recv_box) - recv_group.setLayout(recv_layout) - right_panel.addWidget(recv_group) - - # 曲线绘图区 - plot_frame = QFrame() - plot_frame.setStyleSheet(""" - QFrame { - background: #fff; - border-radius: 16px; - border: 1px solid #d6eaf8; - } - """) - plot_shadow = QGraphicsDropShadowEffect(self) - plot_shadow.setBlurRadius(18) - plot_shadow.setOffset(0, 4) - plot_shadow.setColor(Qt.gray) - plot_frame.setGraphicsEffect(plot_shadow) - plot_layout2 = QVBoxLayout(plot_frame) - plot_layout2.setContentsMargins(10, 10, 10, 10) - self.figure = Figure(figsize=(7, 4)) - self.canvas = FigureCanvas(self.figure) - plot_layout2.addWidget(self.canvas) - right_panel.addWidget(plot_frame, 2) - - main_layout.addLayout(right_panel, 1) - - # 定时器接收 - self.timer = QTimer(self) - self.timer.timeout.connect(self.read_serial) - - # 新增:正弦波测试定时器 - self.sine_timer = QTimer(self) - self.sine_timer.timeout.connect(self.send_sine_data) - self.sine_phase = 0 - # 默认配置 - self.apply_proto_config() - - def parse_hex_string(self, s): - """支持 0x11 0x22 33 44 格式转bytes""" - s = s.strip().replace(',', ' ').replace(';', ' ') - parts = s.split() - result = [] - for part in parts: - if part.startswith('0x') or part.startswith('0X'): - try: - result.append(int(part, 16)) - except Exception: - pass - else: - try: - result.append(int(part, 16)) - except Exception: - pass - return bytes(result) - - def send_data(self): - if self.ser and self.ser.is_open: - data = self.send_edit.toPlainText() - try: - if self.hex_send_chk.isChecked(): - # 支持 0x11 0x22 33 44 格式 - data_bytes = self.parse_hex_string(data) - if not data_bytes: - self.recv_box.append("HEX格式错误,未发送。") - return - self.ser.write(data_bytes) - self.recv_box.append(f"发送(HEX): {' '.join(['%02X'%b for b in data_bytes])}") - else: - self.ser.write(data.encode('utf-8')) - self.recv_box.append(f"发送: {data}") - except Exception as e: - self.recv_box.append(f"发送失败: {e}") - else: - self.recv_box.append("串口未打开,无法发送。") - - def toggle_cont_send(self): - if self.cont_send_btn.isChecked(): - try: - interval = int(self.freq_box.currentText()) - except Exception: - interval = 200 - self.cont_send_timer.start(interval) - self.cont_send_btn.setText("停止发送") - else: - self.cont_send_timer.stop() - self.cont_send_btn.setText("持续发送") - - def simulate_data(self): - """模拟一包数据并自动解析绘图""" - import struct - import random - # 构造协议包 - head = 0x55 - count = self.data_count - dtype = self.data_type - # 随机生成数据 - if dtype == "float": - vals = [random.uniform(-10, 10) for _ in range(count)] - data_bytes = struct.pack(f"<{count}f", *vals) - elif dtype == "int16": - vals = [random.randint(-30000, 30000) for _ in range(count)] - data_bytes = struct.pack(f"<{count}h", *vals) - elif dtype == "uint16": - vals = [random.randint(0, 65535) for _ in range(count)] - data_bytes = struct.pack(f"<{count}H", *vals) - elif dtype == "int8": - vals = [random.randint(-128, 127) for _ in range(count)] - data_bytes = struct.pack(f"<{count}b", *vals) - elif dtype == "uint8": - vals = [random.randint(0, 255) for _ in range(count)] - data_bytes = struct.pack(f"<{count}B", *vals) - else: - vals = [0] * count - data_bytes = b"\x00" * (count * self._type_size()) - # 拼包 - pkt = bytes([head, count]) + data_bytes - checksum = sum(pkt) & 0xFF - pkt += bytes([checksum]) - # 加入接收缓冲区并解析 - self.recv_buffer += pkt - self.parse_and_plot_bin() - - def _btn_style(self, color="#2980b9"): - return f""" - QPushButton {{ - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #eaf6fb, stop:1 #d6eaf8); - color: {color}; - border-radius: 14px; - font-size: 16px; - font-weight: 600; - padding: 8px 0; - border: 1.5px solid #d6eaf8; - letter-spacing: 1px; - }} - QPushButton:hover {{ - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #f8fffe, stop:1 #cfe7fa); - color: #1a6fae; - border: 2px solid #b5d0ea; - }} - QPushButton:pressed {{ - background: #e3f0fa; - color: {color}; - border: 2px solid #a4cbe3; - }} - """ - - def apply_proto_config(self): - self.data_count = self.data_count_spin.value() - self.data_type = self.data_type_box.currentText() - self.plot_data = {i: [[], []] for i in range(self.data_count)} - self.sample_idx = 0 - self.update_plot() - - def refresh_ports(self): - self.port_box.clear() - ports = serial.tools.list_ports.comports() - for port in ports: - self.port_box.addItem(port.device) - if self.port_box.count() == 0: - self.port_box.addItem("无可用串口") - - def toggle_serial(self): - if self.open_btn.isChecked(): - port = self.port_box.currentText() - baud = int(self.baud_box.currentText()) - try: - self.ser = serial.Serial(port, baud, timeout=0.1) - self.open_btn.setText("关闭串口") - self.recv_box.append(f"已打开串口 {port} @ {baud}bps") - self.timer.start(50) - except Exception as e: - self.recv_box.append(f"打开串口失败: {e}") - self.open_btn.setChecked(False) - else: - if self.ser and self.ser.is_open: - self.ser.close() - self.open_btn.setText("打开串口") - self.recv_box.append("串口已关闭") - self.timer.stop() - - def send_multi_data(self): - if self.ser and self.ser.is_open: - text = self.send_edit.text() - lines = text.split(";") - for line in lines: - if line.strip(): - try: - if self.hex_send_chk.isChecked(): - data_bytes = self.parse_hex_string(line.strip()) - self.ser.write(data_bytes) - self.recv_box.append(f"发送(HEX): {' '.join(['%02X'%b for b in data_bytes])}") - else: - self.ser.write(line.strip().encode('utf-8')) - self.recv_box.append(f"发送: {line.strip()}") - except Exception as e: - self.recv_box.append(f"发送失败: {e}") - else: - self.recv_box.append("串口未打开,无法发送。") - - def read_serial(self): - if self.ser and self.ser.is_open: - try: - data = self.ser.read_all() - if data: - if self.hex_recv_chk.isChecked(): - self.recv_box.append(f"接收(HEX): {data.hex(' ').upper()}") - else: - try: - self.recv_box.append(f"接收: {data.decode('utf-8', errors='replace')}") - except Exception: - self.recv_box.append(f"接收(HEX): {data.hex(' ').upper()}") - self.recv_buffer += data - self.parse_and_plot_bin() - except Exception as e: - self.recv_box.append(f"接收失败: {e}") - - def toggle_sine_test(self): - if self.test_btn.isChecked(): - self.test_btn.setText("停止测试") - self.sine_phase = 0 - self.sine_timer.start(80) # 80ms周期 - else: - self.test_btn.setText("测试正弦波(持续)") - self.sine_timer.stop() - - def send_sine_data(self): - import struct, math - head = 0x55 - count = self.data_count - dtype = self.data_type - t = self.sine_phase - vals = [] - for i in range(count): - # 多通道不同相位 - val = math.sin(t / 10.0 + i * math.pi / 4) * 10 - if dtype == "float": - vals.append(float(val)) - elif dtype == "int16": - vals.append(int(val * 1000)) - elif dtype == "uint16": - vals.append(int(val * 1000 + 20000)) - elif dtype == "int8": - vals.append(int(val * 10)) - elif dtype == "uint8": - vals.append(int(val * 10 + 100)) - # 打包 - if dtype == "float": - data_bytes = struct.pack(f"<{count}f", *vals) - elif dtype == "int16": - data_bytes = struct.pack(f"<{count}h", *vals) - elif dtype == "uint16": - data_bytes = struct.pack(f"<{count}H", *vals) - elif dtype == "int8": - data_bytes = struct.pack(f"<{count}b", *vals) - elif dtype == "uint8": - data_bytes = struct.pack(f"<{count}B", *vals) - else: - data_bytes = b"\x00" * (count * self._type_size()) - pkt = bytes([head, count]) + data_bytes - checksum = sum(pkt) & 0xFF - pkt += bytes([checksum]) - # 直接走接收流程模拟 - self.recv_buffer += pkt - self.parse_and_plot_bin() - # 在接收区实时显示理论值 - self.recv_box.append(f"理论: {['%.3f'%v for v in vals]}") - self.sine_phase += 1 - - def parse_and_plot_bin(self): - # 协议:0x55 + 数据数量(1B) + 数据 + 校验(1B) - min_len = 1 + 1 + self.data_count * self._type_size() + 1 - while len(self.recv_buffer) >= min_len: - idx = self.recv_buffer.find(b'\x55') - if idx == -1: - self.recv_buffer = b"" - break - if idx > 0: - self.recv_buffer = self.recv_buffer[idx:] - if len(self.recv_buffer) < min_len: - break - # 检查数量 - count = self.recv_buffer[1] - if count != self.data_count: - self.recv_buffer = self.recv_buffer[2:] - continue - data_bytes = self.recv_buffer[2:2+count*self._type_size()] - checksum = self.recv_buffer[2+count*self._type_size()] - calc_sum = (sum(self.recv_buffer[:2+count*self._type_size()])) & 0xFF - if checksum != calc_sum: - self.recv_box.append("校验和错误,丢弃包") - self.recv_buffer = self.recv_buffer[1:] - continue - # 解析数据 - values = self._unpack_data(data_bytes, count) - self.recv_box.append(f"接收: {values}") - for i, v in enumerate(values): - self.plot_data[i][0].append(self.sample_idx) - self.plot_data[i][1].append(v) - if len(self.plot_data[i][0]) > 200: - self.plot_data[i][0].pop(0) - self.plot_data[i][1].pop(0) - self.sample_idx += 1 - self.recv_buffer = self.recv_buffer[min_len:] - self.update_plot() - - def _type_size(self): - if self.data_type == "float": - return 4 - elif self.data_type in ("int16", "uint16"): - return 2 - elif self.data_type in ("int8", "uint8"): - return 1 - return 4 - - def _unpack_data(self, data_bytes, count): - import struct - fmt = { - "float": f"<{count}f", - "int16": f"<{count}h", - "uint16": f"<{count}H", - "int8": f"<{count}b", - "uint8": f"<{count}B" - }[self.data_type] - try: - return struct.unpack(fmt, data_bytes) - except Exception: - return [0] * count - - def update_plot(self): - self.figure.clear() - ax = self.figure.add_subplot(111) - ax.set_xlabel("Sample", fontsize=14) - ax.set_ylabel("Value", fontsize=14) - has_curve = False - for idx in range(self.data_count): - color = self.curve_colors[idx % len(self.curve_colors)] - x_list, y_list = self.plot_data.get(idx, ([], [])) - if x_list and y_list: - ax.plot(x_list, y_list, label=f"CH{idx+1}", color=color, linewidth=2) - has_curve = True - if has_curve: - ax.legend() - ax.grid(True, linestyle="--", alpha=0.5) - self.canvas.draw() - - def clear_all(self): - self.recv_box.clear() - self.plot_data = {i: [[], []] for i in range(self.data_count)} - self.sample_idx = 0 - self.update_plot() - -# --------- 功能四:MRobot架构生成 --------- -class GenerateMRobotCode(QWidget): - repo_ready_signal = pyqtSignal() - - def __init__(self): - super().__init__() - self.setFont(QFont("微软雅黑", 15)) - self.setStyleSheet(""" - QWidget { - background: #f8fbfd; - border-radius: 16px; - padding: 20px; - } - """) - # 变量初始化 - self.repo_dir = "MRobot_repo" - self.repo_url = "http://gitea.qutrobot.top/robofish/MRobot.git" - self.header_file_vars = {} - self.task_vars = [] - self.ioc_data = None - self.add_gitignore = False - self.auto_configure = False - self.repo_ready = False # 标志:仓库是否已准备好 - self.init_ui() - self.repo_ready_signal.connect(self.on_repo_ready) - - def showEvent(self, event): - super().showEvent(event) - if not self.repo_ready: - self.log("首次进入,正在克隆MRobot仓库...") - self.clone_repo_and_refresh() - - def clone_repo_and_refresh(self): - import threading - def do_clone(): - self.clone_repo() - self.repo_ready = True - self.ioc_data = self.find_and_read_ioc_file() - self.repo_ready_signal.emit() - threading.Thread(target=do_clone).start() - - @pyqtSlot() - def on_repo_ready(self): - self.update_freertos_status() - self.update_header_files() - self.update_task_ui() - self.log("仓库准备完成!") - - def init_ui(self): - main_layout = QVBoxLayout(self) - main_layout.setSpacing(18) - main_layout.setContentsMargins(32, 32, 32, 32) - self.setStyleSheet(""" - QWidget { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #eaf6fb, stop:1 #d6eaf8); - border-radius: 16px; - } - """) - - # 顶部标题区 - title = QLabel("MRobot 架构生成工具") - title.setFont(QFont("微软雅黑", 22, QFont.Bold)) - title.setAlignment(Qt.AlignCenter) - title.setStyleSheet("color: #2980b9; letter-spacing: 2px; margin-bottom: 2px;") - main_layout.addWidget(title) - - desc = QLabel("快速生成 MRobot 项目代码,自动管理模块、任务与环境配置。") - desc.setFont(QFont("微软雅黑", 13)) - desc.setAlignment(Qt.AlignCenter) - desc.setStyleSheet("color: #34495e; margin-bottom: 8px;") - main_layout.addWidget(desc) - - # 状态与选项区 - status_opt_row = QHBoxLayout() - status_opt_row.setSpacing(24) - - # 状态区 - status_col = QVBoxLayout() - self.freertos_status_label = QLabel("FreeRTOS 状态: 检测中...") - self.freertos_status_label.setFont(QFont("微软雅黑", 12)) - self.freertos_status_label.setStyleSheet("color: #2471a3;") - status_col.addWidget(self.freertos_status_label) - status_col.addStretch(1) - status_opt_row.addLayout(status_col, 1) - - # 选项区 - option_col = QVBoxLayout() - self.gitignore_chk = QCheckBox("生成 .gitignore") - self.gitignore_chk.setFont(QFont("微软雅黑", 12)) - self.gitignore_chk.stateChanged.connect(lambda x: setattr(self, "add_gitignore", x == Qt.Checked)) - option_col.addWidget(self.gitignore_chk) - self.auto_env_chk = QCheckBox("自动环境配置") - self.auto_env_chk.setFont(QFont("微软雅黑", 12)) - self.auto_env_chk.stateChanged.connect(lambda x: setattr(self, "auto_configure", x == Qt.Checked)) - option_col.addWidget(self.auto_env_chk) - option_col.addStretch(1) - status_opt_row.addLayout(option_col, 1) - - status_opt_row.addStretch(2) - main_layout.addLayout(status_opt_row) - - # 主体分区:左侧模块选择,右侧任务管理 - body_layout = QHBoxLayout() - body_layout.setSpacing(24) - - # 左侧:模块文件选择 - left_col = QVBoxLayout() - self.header_group = QGroupBox("模块文件选择") - self.header_group.setFont(QFont("微软雅黑", 15, QFont.Bold)) - self.header_group.setStyleSheet(""" - QGroupBox { - border: 2px solid #b5d0ea; - border-radius: 12px; - margin-top: 8px; - background: #f8fbfd; - color: #2471a3; - padding: 10px 0 0 0; - } - QGroupBox:title { - subcontrol-origin: margin; - left: 18px; - top: -10px; - background: transparent; - padding: 0 8px; - } - """) - self.header_layout = QVBoxLayout(self.header_group) - self.header_layout.setSpacing(8) - left_col.addWidget(self.header_group) - left_col.addStretch(1) - body_layout.addLayout(left_col, 2) - - # 右侧:任务管理 - right_col = QVBoxLayout() - self.task_group = QGroupBox("任务管理 (FreeRTOS)") - self.task_group.setFont(QFont("微软雅黑", 15, QFont.Bold)) - self.task_group.setStyleSheet(self.header_group.styleSheet()) - self.task_layout = QVBoxLayout(self.task_group) - self.task_layout.setSpacing(8) - right_col.addWidget(self.task_group) - right_col.addStretch(1) - body_layout.addLayout(right_col, 2) - - main_layout.addLayout(body_layout) - - # 生成按钮区 - btn_row = QHBoxLayout() - btn_row.addStretch(1) - self.generate_btn = QPushButton("一键生成 MRobot 代码") - self.generate_btn.setFont(QFont("微软雅黑", 18, QFont.Bold)) - self.generate_btn.setMinimumHeight(48) - self.generate_btn.setStyleSheet(""" - QPushButton { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #eaf6fb, stop:1 #d6eaf8); - color: #2980b9; - border-radius: 20px; - font-size: 20px; - font-weight: 600; - padding: 12px 0; - border: 1px solid #d6eaf8; - } - QPushButton:hover { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #f8fffe, stop:1 #cfe7fa); - color: #1a6fae; - border: 1.5px solid #b5d0ea; - } - QPushButton:pressed { - background: #e3f0fa; - color: #2471a3; - border: 1.5px solid #a4cbe3; - } - """) - self.generate_btn.clicked.connect(self.generate_action) - btn_row.addWidget(self.generate_btn) - btn_row.addStretch(1) - main_layout.addLayout(btn_row) - - # 日志输出区 - self.msg_box = QTextEdit() - self.msg_box.setReadOnly(True) - self.msg_box.setFont(QFont("Consolas", 13)) - self.msg_box.setMaximumHeight(100) - self.msg_box.setStyleSheet(""" - QTextEdit { - background: #f4f6f7; - border-radius: 8px; - border: 1px solid #d6eaf8; - font-size: 15px; - color: #2c3e50; - padding: 8px; - } - """) - main_layout.addWidget(self.msg_box) - - # 页脚 - footer = QLabel("如遇问题请反馈至 QUT 机器人战队") - footer.setFont(QFont("微软雅黑", 11)) - footer.setAlignment(Qt.AlignCenter) - footer.setStyleSheet("color: #b2bec3; margin-top: 6px;") - main_layout.addWidget(footer) - - # 初始化内容 - self.update_header_files() - self.update_task_ui() - - # ...其余方法保持不变... - - def log(self, msg): - self.msg_box.append(msg) - - def clone_repo(self): - import shutil - from git import Repo - if os.path.exists(self.repo_dir): - shutil.rmtree(self.repo_dir) - try: - self.log("正在克隆仓库...") - Repo.clone_from(self.repo_url, self.repo_dir, multi_options=["--depth=1"]) - self.log("仓库克隆成功!") - except Exception as e: - self.log(f"克隆仓库失败: {e}") - - def find_and_read_ioc_file(self): - for file in os.listdir("."): - if file.endswith(".ioc"): - with open(file, "r", encoding="utf-8") as f: - return f.read() - self.log("未找到 .ioc 文件!") - return None - - def check_freertos_enabled(self): - import re - if not self.ioc_data: - return False - return bool(re.search(r"Mcu\.IP\d+=FREERTOS", self.ioc_data)) - - def update_freertos_status(self): - if self.ioc_data: - status = "已启用" if self.check_freertos_enabled() else "未启用" - else: - status = "未检测到 .ioc 文件" - self.freertos_status_label.setText(f"FreeRTOS 状态: {status}") - - def update_header_files(self): - for i in reversed(range(self.header_layout.count())): - widget = self.header_layout.itemAt(i).widget() - if widget: - widget.deleteLater() - if not self.repo_ready or not os.path.exists(self.repo_dir): - return - from collections import defaultdict - import csv - folders = ["bsp", "component", "device", "module"] - dependencies = defaultdict(list) - for folder in folders: - folder_dir = os.path.join(self.repo_dir, "User", folder) - dep_file = os.path.join(folder_dir, "dependencies.csv") - if os.path.exists(dep_file): - with open(dep_file, "r", encoding="utf-8") as f: - reader = csv.reader(f) - for row in reader: - if len(row) == 2: - dependencies[row[0]].append(row[1]) - for folder in folders: - folder_dir = os.path.join(self.repo_dir, "User", folder) - if os.path.exists(folder_dir): - group = QGroupBox(folder) - g_layout = QHBoxLayout(group) - for file in os.listdir(folder_dir): - file_base, file_ext = os.path.splitext(file) - if file_ext == ".h" and file_base != folder: - var = QCheckBox(file_base) - var.stateChanged.connect(lambda x, fb=file_base: self.handle_dependencies(fb, dependencies)) - self.header_file_vars[file_base] = var - g_layout.addWidget(var) - self.header_layout.addWidget(group) - - def handle_dependencies(self, file_base, dependencies): - if file_base in self.header_file_vars and self.header_file_vars[file_base].isChecked(): - for dep in dependencies.get(file_base, []): - dep_base = os.path.basename(dep) - if dep_base in self.header_file_vars: - self.header_file_vars[dep_base].setChecked(True) - - def update_task_ui(self): - for i in reversed(range(self.task_layout.count())): - widget = self.task_layout.itemAt(i).widget() - if widget: - widget.deleteLater() - if not self.repo_ready or not self.check_freertos_enabled(): - self.task_group.setVisible(False) - return - self.task_group.setVisible(True) - for i, (task_var, freq_var) in enumerate(self.task_vars): - row = QHBoxLayout() - name_edit = QLineEdit(task_var) - freq_spin = QSpinBox() - freq_spin.setRange(1, 1000) - freq_spin.setValue(freq_var) - del_btn = QPushButton("删除") - del_btn.clicked.connect(lambda _, idx=i: self.remove_task(idx)) - row.addWidget(name_edit) - row.addWidget(QLabel("频率:")) - row.addWidget(freq_spin) - row.addWidget(del_btn) - container = QWidget() - container.setLayout(row) - self.task_layout.addWidget(container) - add_btn = QPushButton("添加任务") - add_btn.clicked.connect(self.add_task) - self.task_layout.addWidget(add_btn) - - def add_task(self): - self.task_vars.append([f"Task_{len(self.task_vars)+1}", 100]) - self.update_task_ui() - - def remove_task(self, idx): - if 0 <= idx < len(self.task_vars): - self.task_vars.pop(idx) - self.update_task_ui() - - def copy_file_from_repo(self, src_path, dest_path): - import shutil - if src_path.startswith(self.repo_dir): - full_src_path = src_path - else: - full_src_path = os.path.join(self.repo_dir, src_path.lstrip(os.sep)) - if not os.path.exists(full_src_path): - self.log(f"文件 {full_src_path} 不存在!") - return - dest_dir = os.path.dirname(dest_path) - if dest_dir and not os.path.exists(dest_dir): - os.makedirs(dest_dir, exist_ok=True) - shutil.copy(full_src_path, dest_path) - self.log(f"已复制 {full_src_path} 到 {dest_path}") - - def generate_action(self): - import threading - def task(): - self.create_directories() - if self.add_gitignore: - self.copy_file_from_repo(".gitignore", ".gitignore") - if self.ioc_data and self.check_freertos_enabled(): - self.copy_file_from_repo("src/freertos.c", os.path.join("Core", "Src", "freertos.c")) - folders = ["bsp", "component", "device", "module"] - for folder in folders: - folder_dir = os.path.join(self.repo_dir, "User", folder) - if not os.path.exists(folder_dir): - continue - for file_name in os.listdir(folder_dir): - file_base, file_ext = os.path.splitext(file_name) - if file_ext not in [".h", ".c"]: - continue - if file_base == folder: - src_path = os.path.join(folder_dir, file_name) - dest_path = os.path.join("User", folder, file_name) - self.copy_file_from_repo(src_path, dest_path) - continue - if file_base in self.header_file_vars and self.header_file_vars[file_base].isChecked(): - src_path = os.path.join(folder_dir, file_name) - dest_path = os.path.join("User", folder, file_name) - self.copy_file_from_repo(src_path, dest_path) - if self.ioc_data and self.check_freertos_enabled(): - self.modify_user_task_file() - self.generate_user_task_header() - self.generate_init_file() - self.generate_task_files() - self.log("生成完成!") - threading.Thread(target=task).start() - - def create_directories(self): - dirs = [ - "User/bsp", - "User/component", - "User/device", - "User/module", - ] - if self.ioc_data and self.check_freertos_enabled(): - dirs.append("User/task") - for d in dirs: - if not os.path.exists(d): - os.makedirs(d, exist_ok=True) - self.log(f"已创建目录: {d}") - - def generate_task_files(self): - try: - import re - template_file_path = os.path.join(self.repo_dir, "User", "task", "task.c.template") - task_dir = os.path.join("User", "task") - if not os.path.exists(template_file_path): - self.log(f"模板文件 {template_file_path} 不存在,无法生成 task.c 文件!") - return - os.makedirs(task_dir, exist_ok=True) - with open(template_file_path, "r", encoding="utf-8") as f: - template_content = f.read() - for task in self.task_vars: - if isinstance(task, (list, tuple)): - task_name = str(task[0]) - else: - task_name = str(task) - task_file_path = os.path.join(task_dir, f"{task_name.lower()}.c") - task_content = template_content.replace("{{task_name}}", task_name) - task_content = task_content.replace("{{task_function}}", task_name) - task_content = task_content.replace( - "{{task_frequency}}", f"TASK_FREQ_{task_name.upper()}" - ) - task_content = task_content.replace("{{task_delay}}", f"TASK_INIT_DELAY_{task_name.upper()}") - with open(task_file_path, "w", encoding="utf-8") as f2: - f2.write(task_content) - self.log(f"已成功生成 {task_file_path} 文件!") - except Exception as e: - self.log(f"生成 task.c 文件时出错: {e}") - - def modify_user_task_file(self): - try: - import re - template_file_path = os.path.join(self.repo_dir, "User", "task", "user_task.c.template") - generated_task_file_path = os.path.join("User", "task", "user_task.c") - if not os.path.exists(template_file_path): - self.log(f"模板文件 {template_file_path} 不存在,无法生成 user_task.c 文件!") - return - os.makedirs(os.path.dirname(generated_task_file_path), exist_ok=True) - with open(template_file_path, "r", encoding="utf-8") as f: - template_content = f.read() - task_attr_definitions = "\n".join([ - f"""const osThreadAttr_t attr_{str(task[0]).lower()} = {{ - .name = "{str(task[0])}", - .priority = osPriorityNormal, - .stack_size = 128 * 4, -}};""" - for task in self.task_vars - ]) - task_content = template_content.replace("{{task_attr_definitions}}", task_attr_definitions) - with open(generated_task_file_path, "w", encoding="utf-8") as f2: - f2.write(task_content) - self.log(f"已成功生成 {generated_task_file_path} 文件!") - except Exception as e: - self.log(f"修改 user_task.c 文件时出错: {e}") - - def generate_user_task_header(self): - try: - import re - template_file_path = os.path.join(self.repo_dir, "User", "task", "user_task.h.template") - header_file_path = os.path.join("User", "task", "user_task.h") - if not os.path.exists(template_file_path): - self.log(f"模板文件 {template_file_path} 不存在,无法生成 user_task.h 文件!") - return - os.makedirs(os.path.dirname(header_file_path), exist_ok=True) - existing_msgq_content = "" - if os.path.exists(header_file_path): - with open(header_file_path, "r", encoding="utf-8") as f: - content = f.read() - match = re.search(r"/\* USER MESSAGE BEGIN \*/\s*(.*?)\s*/\* USER MESSAGE END \*/", content, re.DOTALL) - if match: - existing_msgq_content = match.group(1).strip() - self.log("已存在的 msgq 区域内容已保留") - with open(template_file_path, "r", encoding="utf-8") as f: - template_content = f.read() - thread_definitions = "\n".join([f" osThreadId_t {str(task[0]).lower()};" for task in self.task_vars]) - msgq_definitions = existing_msgq_content if existing_msgq_content else " osMessageQueueId_t default_msgq;" - freq_definitions = "\n".join([f" float {str(task[0]).lower()};" for task in self.task_vars]) - last_up_time_definitions = "\n".join([f" uint32_t {str(task[0]).lower()};" for task in self.task_vars]) - task_attr_declarations = "\n".join([f"extern const osThreadAttr_t attr_{str(task[0]).lower()};" for task in self.task_vars]) - task_function_declarations = "\n".join([f"void {str(task[0])}(void *argument);" for task in self.task_vars]) - task_frequency_definitions = "\n".join([ - f"#define TASK_FREQ_{str(task[0]).upper()} ({int(task[1])}u)" - for task in self.task_vars - ]) - task_init_delay_definitions = "\n".join([f"#define TASK_INIT_DELAY_{str(task[0]).upper()} (0u)" for task in self.task_vars]) - task_handle_definitions = "\n".join([f" osThreadId_t {str(task[0]).lower()};" for task in self.task_vars]) - header_content = template_content.replace("{{thread_definitions}}", thread_definitions) - header_content = header_content.replace("{{msgq_definitions}}", msgq_definitions) - header_content = header_content.replace("{{freq_definitions}}", freq_definitions) - header_content = header_content.replace("{{last_up_time_definitions}}", last_up_time_definitions) - header_content = header_content.replace("{{task_attr_declarations}}", task_attr_declarations) - header_content = header_content.replace("{{task_function_declarations}}", task_function_declarations) - header_content = header_content.replace("{{task_frequency_definitions}}", task_frequency_definitions) - header_content = header_content.replace("{{task_init_delay_definitions}}", task_init_delay_definitions) - header_content = header_content.replace("{{task_handle_definitions}}", task_handle_definitions) - if existing_msgq_content: - header_content = re.sub( - r"/\* USER MESSAGE BEGIN \*/\s*.*?\s*/\* USER MESSAGE END \*/", - f"/* USER MESSAGE BEGIN */\n\n {existing_msgq_content}\n\n /* USER MESSAGE END */", - header_content, - flags=re.DOTALL - ) - with open(header_file_path, "w", encoding="utf-8") as f2: - f2.write(header_content) - self.log(f"已成功生成 {header_file_path} 文件!") - except Exception as e: - self.log(f"生成 user_task.h 文件时出错: {e}") - - def generate_init_file(self): - try: - import re - template_file_path = os.path.join(self.repo_dir, "User", "task", "init.c.template") - generated_file_path = os.path.join("User", "task", "init.c") - if not os.path.exists(template_file_path): - self.log(f"模板文件 {template_file_path} 不存在,无法生成 init.c 文件!") - return - os.makedirs(os.path.dirname(generated_file_path), exist_ok=True) - existing_msgq_content = "" - if os.path.exists(generated_file_path): - with open(generated_file_path, "r", encoding="utf-8") as f: - content = f.read() - match = re.search(r"/\* USER MESSAGE BEGIN \*/\s*(.*?)\s*/\* USER MESSAGE END \*/", content, re.DOTALL) - if match: - existing_msgq_content = match.group(1).strip() - self.log("已存在的消息队列区域内容已保留") - with open(template_file_path, "r", encoding="utf-8") as f: - template_content = f.read() - thread_creation_code = "\n".join([ - f" task_runtime.thread.{str(task[0]).lower()} = osThreadNew({str(task[0])}, NULL, &attr_{str(task[0]).lower()});" - for task in self.task_vars - ]) - init_content = template_content.replace("{{thread_creation_code}}", thread_creation_code) - if existing_msgq_content: - init_content = re.sub( - r"/\* USER MESSAGE BEGIN \*/\s*.*?\s*/\* USER MESSAGE END \*/", - f"/* USER MESSAGE BEGIN */\n {existing_msgq_content}\n /* USER MESSAGE END */", - init_content, - flags=re.DOTALL - ) - with open(generated_file_path, "w", encoding="utf-8") as f2: - f2.write(init_content) - self.log(f"已成功生成 {generated_file_path} 文件!") - except Exception as e: - self.log(f"生成 init.c 文件时出错: {e}") - -# --------- 功能五:零件库 --------- - -class CustomWebView(QWebEngineView): - def __init__(self, parent=None, popup_list=None): - super().__init__(parent) - self.popup_list = popup_list - self._progress_dialog = None - self.page().profile().downloadRequested.connect(self.handle_download) - self.setStyleSheet(""" - QWebEngineView { - border-radius: 12px; - background: #f8fbfd; - border: 1px solid #d6eaf8; - } - """) - - def handle_download(self, download_item): - from PyQt5.QtWidgets import QFileDialog, QProgressDialog - - # 防止重复弹窗 - if hasattr(download_item, "_handled") and download_item._handled: - return - download_item._handled = True - - suggested = download_item.suggestedFileName() - path, _ = QFileDialog.getSaveFileName(self, "保存文件", suggested) - if not path: - download_item.cancel() - return - - download_item.setPath(path) - download_item.accept() - - # 创建进度对话框 - self._progress_dialog = QProgressDialog(f"正在下载: {suggested}", "取消", 0, 100, self) - self._progress_dialog.setWindowTitle("下载进度") - self._progress_dialog.setWindowModality(Qt.WindowModal) - self._progress_dialog.setMinimumDuration(0) - self._progress_dialog.setValue(0) - self._progress_dialog.canceled.connect(download_item.cancel) - self._progress_dialog.show() - - def on_progress(received, total): - if total > 0: - percent = int(received * 100 / total) - self._progress_dialog.setValue(percent) - else: - self._progress_dialog.setValue(0) - - download_item.downloadProgress.connect(on_progress) - - def on_finished(): - self._progress_dialog.setValue(100) - self._progress_dialog.close() - if self.parent() and isinstance(self.parent(), CustomWebView): - self.parent().close() - elif self.popup_list and self in self.popup_list: - self.close() - self.popup_list.remove(self) - - download_item.finished.connect(on_finished) - - def createWindow(self, _type): - popup = CustomWebView(popup_list=self.popup_list) - popup.setAttribute(Qt.WA_DeleteOnClose) - popup.setWindowTitle("下载") - popup.resize(900, 600) - popup.show() - if self.popup_list is not None: - self.popup_list.append(popup) - return popup - -class MachineryLibrary(QWidget): - def __init__(self): - super().__init__() - self.popup_windows = [] - self.setFont(QFont("微软雅黑", 15)) - self.setStyleSheet(""" - QWidget { - background: #f8fbfd; - border-radius: 16px; - padding: 20px; - } - """) - self.init_ui() - - def init_ui(self): - main_layout = QVBoxLayout(self) - main_layout.setSpacing(18) - main_layout.setContentsMargins(32, 32, 32, 32) - - # 标题区 - title = QLabel("MRobot 零件库") - title.setFont(QFont("微软雅黑", 22, QFont.Bold)) - title.setAlignment(Qt.AlignCenter) - title.setStyleSheet("color: #2980b9; letter-spacing: 2px; margin-bottom: 2px;") - main_layout.addWidget(title) - - desc = QLabel("零件库账号:Engineer(无密码)") - desc.setFont(QFont("微软雅黑", 13)) - desc.setAlignment(Qt.AlignCenter) - desc.setStyleSheet("color: #34495e; margin-bottom: 8px;") - main_layout.addWidget(desc) - - # 加载提示 - self.loading_label = QLabel("正在加载零件库网页,请稍候...") - self.loading_label.setAlignment(Qt.AlignCenter) - self.loading_label.setFont(QFont("微软雅黑", 14)) - self.loading_label.setStyleSheet("color: #888; margin-bottom: 8px;") - main_layout.addWidget(self.loading_label) - - # 网页视图 - self.webview = CustomWebView(parent=self, popup_list=self.popup_windows) - self.webview.setAttribute(Qt.WA_TranslucentBackground, True) - self.webview.setMinimumHeight(480) - self.webview.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) - self.webview.loadFinished.connect(self.on_webview_loaded) - main_layout.addWidget(self.webview, stretch=10) - - # 刷新按钮 - btn_row = QHBoxLayout() - btn_row.addStretch(1) - self.refresh_btn = QPushButton("刷新零件库") - self.refresh_btn.setFont(QFont("微软雅黑", 13, QFont.Bold)) - self.refresh_btn.setFixedWidth(140) - self.refresh_btn.setStyleSheet(""" - QPushButton { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #eaf6fb, stop:1 #d6eaf8); - color: #2980b9; - border-radius: 14px; - font-size: 15px; - font-weight: 600; - padding: 8px 0; - border: 1.5px solid #d6eaf8; - } - QPushButton:hover { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #f8fffe, stop:1 #cfe7fa); - color: #1a6fae; - border: 2px solid #b5d0ea; - } - QPushButton:pressed { - background: #e3f0fa; - color: #2471a3; - border: 2px solid #a4cbe3; - } - """) - self.refresh_btn.clicked.connect(self.reload_webview) - btn_row.addWidget(self.refresh_btn) - btn_row.addStretch(1) - main_layout.addLayout(btn_row) - - # 自动加载网页 - QTimer.singleShot(200, lambda: self.webview.setUrl(QUrl("http://alist.qutrobot.top"))) - self.webview.show() - - # 定时刷新(可选,防止页面假死) - self.refresh_timer = QTimer(self) - self.refresh_timer.setInterval(100) - self.refresh_timer.timeout.connect(self.webview.update) - self.refresh_timer.start() - - def reload_webview(self): - self.loading_label.show() - self.webview.setUrl(QUrl("http://alist.qutrobot.top")) - - def on_webview_loaded(self): - self.loading_label.hide() - - def closeEvent(self, event): - self.refresh_timer.stop() - super().closeEvent(event) -# --------- 主工具箱UI --------- -class ToolboxUI(QWidget): - def __init__(self): - super().__init__() - self.setWindowTitle("MRobot 工具箱") - self.resize(1920, 1080) - self.setMinimumSize(900, 600) - self.setStyleSheet(""" - QWidget { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #eaf6fb, stop:1 #d6eaf8); - border-radius: 16px; - } - """) - self.init_ui() - - def init_ui(self): - main_layout = QHBoxLayout(self) - main_layout.setContentsMargins(20, 20, 20, 20) - main_layout.setSpacing(20) - - # 左侧导航 - left_frame = QFrame() - left_frame.setFrameShape(QFrame.StyledPanel) - left_frame.setStyleSheet(""" - QFrame { - background: #f8fbfd; - border-radius: 14px; - border: 1px solid #d6eaf8; - } - """) - left_shadow = QGraphicsDropShadowEffect(self) - left_shadow.setBlurRadius(16) - left_shadow.setOffset(0, 4) - left_shadow.setColor(Qt.gray) - left_frame.setGraphicsEffect(left_shadow) - - left_layout = QVBoxLayout(left_frame) - left_layout.setSpacing(24) - left_layout.setContentsMargins(18, 18, 18, 18) - left_frame.setFixedWidth(260) - main_layout.addWidget(left_frame) - - # Logo - logo_label = QLabel() - logo_pixmap = QPixmap(resource_path("mr_tool_img/MRobot.png")) - if not logo_pixmap.isNull(): - logo_label.setPixmap(logo_pixmap.scaled(180, 80, Qt.KeepAspectRatio, Qt.SmoothTransformation)) - else: - logo_label.setText("MRobot") - logo_label.setAlignment(Qt.AlignCenter) - logo_label.setFont(QFont("Arial", 36, QFont.Bold)) - logo_label.setStyleSheet("color: #3498db;") - logo_label.setFixedHeight(120) - left_layout.addWidget(logo_label) - - # 按钮区 - self.button_names = ["主页", "曲线拟合", "Mini串口助手", "MR架构配置", "零件库", "软件指南"] - self.buttons = [] - for idx, name in enumerate(self.button_names): - btn = QPushButton(name) - btn.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) - btn.setMinimumHeight(48) - btn.setStyleSheet(""" - QPushButton { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #eaf6fb, stop:1 #d6eaf8); - color: #2980b9; - border-radius: 20px; - font-size: 22px; - font-weight: 600; - padding: 14px 0; - border: 1px solid #d6eaf8; - letter-spacing: 2px; - } - QPushButton:hover { - background: qlineargradient(x1:0, y1:0, x2:1, y2:1, - stop:0 #f8fffe, stop:1 #cfe7fa); - color: #1a6fae; - border: 1.5px solid #b5d0ea; - } - QPushButton:pressed { - background: #e3f0fa; - color: #2471a3; - border: 1.5px solid #a4cbe3; - } - """) - btn.clicked.connect(lambda checked, i=idx: self.switch_function(i)) - self.buttons.append(btn) - left_layout.addWidget(btn) - - left_layout.addStretch(1) - - # 文本输出框 - self.output_box = QTextEdit() - self.output_box.setReadOnly(True) - self.output_box.setFixedHeight(180) - self.output_box.setStyleSheet(""" - QTextEdit { - background: #f4f6f7; - border-radius: 8px; - border: 1px solid #d6eaf8; - font-size: 16px; - color: #2c3e50; - padding: 10px; - } - """) - left_layout.addWidget(self.output_box) - - # 右侧功能区 - self.stack = QStackedWidget() - self.stack.setStyleSheet(""" - QStackedWidget { - background: #fff; - border-radius: 16px; - border: 1px solid #d6eaf8; - } - """) - right_shadow = QGraphicsDropShadowEffect(self) - right_shadow.setBlurRadius(24) - right_shadow.setOffset(0, 4) - right_shadow.setColor(Qt.gray) - self.stack.setGraphicsEffect(right_shadow) - - # 功能页面注册(后续扩展只需在这里添加页面类即可) - self.page_widgets = { - 0: HomePage(), # 主页 - 1: PolyFitApp(), # 多项式拟合 - 2: SerialAssistant(), # 串口助手 - 3: GenerateMRobotCode(), # MRobot架构生成 - 4: MachineryLibrary(), # 零件库 - 5: DownloadPage(), # 下载页面 - } - for i in range(len(self.button_names)): - self.stack.addWidget(self.page_widgets[i]) - main_layout.addWidget(self.stack) - - self.output_box.append("欢迎使用 MRobot 工具箱!请选择左侧功能。") - - - - def placeholder_page(self, text): - page = QWidget() - layout = QVBoxLayout(page) - label = QLabel(text) - label.setAlignment(Qt.AlignCenter) - label.setFont(QFont("微软雅黑", 22, QFont.Bold)) - label.setStyleSheet("color: #2980b9;") - layout.addStretch(1) - layout.addWidget(label) - layout.addStretch(1) - return page - - def switch_function(self, idx): - self.stack.setCurrentIndex(idx) - self.output_box.append(f"已切换到功能:{self.button_names[idx]}") - -if __name__ == "__main__": - - from PyQt5.QtWidgets import QSplashScreen, QGraphicsDropShadowEffect - from PyQt5.QtCore import Qt, QTimer, QRect - from PyQt5.QtGui import QPixmap, QPainter, QColor, QFont, QLinearGradient, QBrush - - class CustomSplash(QSplashScreen): - def __init__(self, pixmap): - super().__init__(QPixmap(640, 400)) - self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint) - self.setAttribute(Qt.WA_TranslucentBackground) - self.logo = pixmap.scaled(360, 240, Qt.KeepAspectRatio, Qt.SmoothTransformation) - self.title = "MRobot 工具箱" - self.subtitle = "欢迎使用 MRobot,正在启动中..." - self.title_color = QColor("#2471a3") - self.subtitle_color = QColor("#2980b9") - self.bg_gradient = QLinearGradient(0, 0, 0, 400) - self.bg_gradient.setColorAt(0, QColor("#f8fbfd")) - self.bg_gradient.setColorAt(1, QColor("#eaf6fb")) - self.border_color = QColor("#2980b9") - self.setFixedSize(640, 400) - # 阴影 - effect = QGraphicsDropShadowEffect(self) - effect.setBlurRadius(36) - effect.setOffset(0, 10) - effect.setColor(QColor(80, 120, 180, 80)) - self.setGraphicsEffect(effect) - - def paintEvent(self, event): - painter = QPainter(self) - painter.setRenderHint(QPainter.Antialiasing) - # 渐变背景 - painter.setBrush(QBrush(self.bg_gradient)) - painter.setPen(Qt.NoPen) - painter.drawRoundedRect(0, 0, self.width(), self.height(), 44, 44) - # 边框 - pen = painter.pen() - pen.setColor(self.border_color) - pen.setWidth(3) - painter.setPen(pen) - painter.drawRoundedRect(2, 2, self.width()-4, self.height()-4, 44, 44) - # LOGO - logo_x = (self.width() - self.logo.width()) // 2 - logo_y = 80 - painter.drawPixmap(logo_x, logo_y, self.logo) - # 主标题 - # painter.setFont(QFont("微软雅黑", 24, QFont.Bold)) - # painter.setPen(self.title_color) - # painter.drawText(QRect(0, 200, self.width(), 48), Qt.AlignCenter, self.title) - # 副标题 - painter.setFont(QFont("微软雅黑", 12)) - painter.setPen(self.subtitle_color) - painter.drawText(QRect(0, 250, self.width(), 36), Qt.AlignCenter, self.subtitle) - # 版权 - painter.setFont(QFont("微软雅黑", 10)) - painter.setPen(QColor("#b2bec3")) - painter.drawText(QRect(0, 360, self.width(), 30), Qt.AlignCenter, "© 2025 MRobot. All rights reserved.") - - app = QApplication(sys.argv) - - # 立即显示Splash - logo_pix = QPixmap(resource_path("mr_tool_img/MRobot.png")) - splash = CustomSplash(logo_pix) - splash.show() - app.processEvents() # 强制立即刷新Splash - - # 异步加载主窗口 - def load_main(): - win = ToolboxUI() - splash.finish(win) - win.show() - - QTimer.singleShot(100, load_main) - - sys.exit(app.exec_()) \ No newline at end of file diff --git a/MRobot.py b/MRobot.py deleted file mode 100644 index 7b103fd..0000000 --- a/MRobot.py +++ /dev/null @@ -1,673 +0,0 @@ -import sys -import os -import serial -import serial.tools.list_ports - -from PyQt5.QtCore import Qt, pyqtSignal, QThread -from PyQt5.QtGui import QTextCursor -from PyQt5.QtWidgets import ( - QApplication, QWidget, QVBoxLayout, QHBoxLayout, QGridLayout, QGroupBox, - QComboBox, QPushButton, QTextEdit, QLineEdit, QLabel, QSizePolicy, - QFileDialog, QMessageBox, QStackedLayout -) - -from qfluentwidgets import ( - Theme, setTheme, FluentIcon, SwitchButton, BodyLabel, SubtitleLabel, - StrongBodyLabel, HorizontalSeparator, InfoBar, MessageDialog, Dialog, - AvatarWidget, NavigationItemPosition, FluentWindow, NavigationAvatarWidget, - PushButton, TextEdit, LineEdit, ComboBox, ImageLabel -) -from qfluentwidgets import FluentIcon as FIF -import requests -import shutil -from PyQt5.QtCore import Qt -from PyQt5.QtWidgets import QTreeWidget, QTreeWidgetItem, QAbstractItemView, QHeaderView - -from qfluentwidgets import ( - TreeWidget, InfoBar, InfoBarPosition, MessageDialog, TreeItemDelegate -) -from qfluentwidgets import CheckBox -from qfluentwidgets import TreeWidget -from PyQt5.QtCore import QThread, pyqtSignal -from PyQt5.QtWidgets import QFileDialog -from qfluentwidgets import ProgressBar - -# ===================== 页面基类 ===================== -class BaseInterface(QWidget): - def __init__(self, parent=None): - super().__init__(parent=parent) - -# ===================== 首页界面 ===================== -class HomeInterface(BaseInterface): - def __init__(self, parent=None): - super().__init__(parent=parent) - self.setObjectName("homeInterface") - layout = QVBoxLayout() - layout.setContentsMargins(60, 60, 60, 60) - layout.setSpacing(32) - self.setLayout(layout) - - # 顶部logo和欢迎区 - top_layout = QHBoxLayout() - logo = ImageLabel('img/MRobot.png') - logo.setFixedSize(260, 80) - top_layout.addWidget(logo, alignment=Qt.AlignmentFlag.AlignTop) - title_layout = QVBoxLayout() - title_layout.addWidget(StrongBodyLabel("欢迎使用 MRobot Toolbox")) - title_layout.addWidget(SubtitleLabel("让你的机器人开发更高效、更智能")) - top_layout.addLayout(title_layout) - top_layout.addStretch() - layout.addLayout(top_layout) - - layout.addWidget(HorizontalSeparator()) - - # 项目简介 - layout.addWidget(BodyLabel( - "MRobot Toolbox 是一款集成化的机器人开发辅助工具," - "支持代码生成、串口终端、主题切换等多种实用功能。\n" - "点击左侧导航栏可快速切换各功能页面。" - )) - - # 开发者与项目目标 - layout.addWidget(HorizontalSeparator()) - layout.addWidget(SubtitleLabel("开发者与项目目标")) - layout.addWidget(BodyLabel("开发团队:QUT 青岛理工大学 MOVE 战队")) - layout.addWidget(BodyLabel("项目目标:为所有 rmer 和 rcer 提供现代化、简单、高效的机器人开发方式," - "让机器人开发变得更轻松、更智能。")) - layout.addWidget(BodyLabel("适用于 RM、RC、各类嵌入式机器人项目。")) - - # layout.addStretch() - -# ===================== 代码生成页面 ===================== -class DataInterface(BaseInterface): - def __init__(self, parent=None): - super().__init__(parent=parent) - self.setObjectName("dataInterface") - self.stacked_layout = QStackedLayout() - self.setLayout(self.stacked_layout) - - # --- 页面1:工程路径选择 --- - self.select_widget = QWidget() - select_layout = QVBoxLayout(self.select_widget) - select_layout.addSpacing(40) - select_layout.addWidget(SubtitleLabel("MRobot 代码生成")) - select_layout.addWidget(HorizontalSeparator()) - select_layout.addSpacing(10) - select_layout.addWidget(BodyLabel("请选择包含 .ioc 文件的工程文件夹,点击下方按钮进行选择。")) - select_layout.addSpacing(20) - self.choose_btn = PushButton("选择工程路径") - self.choose_btn.clicked.connect(self.choose_project_folder) - select_layout.addWidget(self.choose_btn) - select_layout.addStretch() - self.stacked_layout.addWidget(self.select_widget) - - # --- 页面2:代码配置 --- - self.config_widget = QWidget() - self.config_layout = QVBoxLayout(self.config_widget) - # 左上角小返回按钮 - top_bar = QHBoxLayout() - self.back_btn = PushButton('返回', icon=FluentIcon.SKIP_BACK) - # self.back_btn.setFixedSize(32, 32) - self.back_btn.clicked.connect(self.back_to_select) - self.back_btn.setToolTip("返回") - top_bar.addWidget(self.back_btn, alignment=Qt.AlignmentFlag.AlignLeft) - top_bar.addStretch() - self.config_layout.addLayout(top_bar) - self.config_layout.addWidget(SubtitleLabel("工程配置信息")) - self.config_layout.addWidget(HorizontalSeparator()) - self.project_info_labels = [] - self.config_layout.addStretch() - self.stacked_layout.addWidget(self.config_widget) - - # 默认显示选择页面 - self.stacked_layout.setCurrentWidget(self.select_widget) - - def choose_project_folder(self): - folder = QFileDialog.getExistingDirectory(self, "请选择代码项目文件夹") - if not folder: - return - ioc_files = [f for f in os.listdir(folder) if f.endswith('.ioc')] - if not ioc_files: - QMessageBox.warning(self, "提示", "未找到.ioc文件,请确认项目文件夹。") - return - self.project_path = folder - self.project_name = os.path.basename(folder) - self.ioc_file = os.path.join(folder, ioc_files[0]) - self.show_config_page() - - def show_config_page(self): - # 清理旧内容 - for label in self.project_info_labels: - self.config_layout.removeWidget(label) - label.deleteLater() - self.project_info_labels.clear() - # 显示项目信息 - l1 = BodyLabel(f"项目名称: {self.project_name}") - l2 = BodyLabel(f"项目路径: {self.project_path}") - l3 = BodyLabel(f"IOC 文件: {self.ioc_file}") - self.config_layout.insertWidget(2, l1) - self.config_layout.insertWidget(3, l2) - self.config_layout.insertWidget(4, l3) - self.project_info_labels.extend([l1, l2, l3]) - self.stacked_layout.setCurrentWidget(self.config_widget) - - def back_to_select(self): - self.stacked_layout.setCurrentWidget(self.select_widget) - -# ===================== 串口终端界面 ===================== -class SerialReadThread(QThread): - data_received = pyqtSignal(str) - - def __init__(self, ser): - super().__init__() - self.ser = ser - self._running = True - - def run(self): - while self._running: - if self.ser and self.ser.is_open and self.ser.in_waiting: - try: - data = self.ser.readline().decode(errors='ignore') - self.data_received.emit(data) - except Exception: - pass - - def stop(self): - self._running = False - self.wait() - -class SerialTerminalInterface(BaseInterface): - def __init__(self, parent=None): - super().__init__(parent=parent) - self.setObjectName("serialTerminalInterface") - main_layout = QVBoxLayout(self) - main_layout.setSpacing(12) - - # 顶部:串口设置区 - top_hbox = QHBoxLayout() - top_hbox.addWidget(BodyLabel("串口:")) - self.port_combo = ComboBox() - self.refresh_ports() - top_hbox.addWidget(self.port_combo) - top_hbox.addWidget(BodyLabel("波特率:")) - self.baud_combo = ComboBox() - self.baud_combo.addItems(['9600', '115200', '57600', '38400', '19200', '4800']) - top_hbox.addWidget(self.baud_combo) - self.connect_btn = PushButton("连接") - self.connect_btn.clicked.connect(self.toggle_connection) - top_hbox.addWidget(self.connect_btn) - self.refresh_btn = PushButton(FluentIcon.SYNC, "刷新") - self.refresh_btn.clicked.connect(self.refresh_ports) - top_hbox.addWidget(self.refresh_btn) - top_hbox.addStretch() - main_layout.addLayout(top_hbox) - - main_layout.addWidget(HorizontalSeparator()) - - # 中部:左侧预设命令,右侧显示区 - center_hbox = QHBoxLayout() - # 左侧:预设命令竖排 - preset_vbox = QVBoxLayout() - preset_vbox.addWidget(SubtitleLabel("快捷指令")) - #快捷指令居中 - preset_vbox.setAlignment(Qt.AlignmentFlag.AlignCenter) - self.preset_commands = [ - ("线程监视器", "RESET"), - ("陀螺仪校准", "GET_VERSION"), - ("性能监视", "START"), - ("重启", "STOP"), - ("显示所有设备", "SELF_TEST"), - ("查询id", "STATUS"), - ] - for label, cmd in self.preset_commands: - btn = PushButton(label) - btn.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) - btn.clicked.connect(lambda _, c=cmd: self.send_preset_command(c)) - preset_vbox.addWidget(btn) - preset_vbox.addStretch() - main_layout.addLayout(center_hbox, stretch=1) - - - # 右侧:串口数据显示区 - self.text_edit = TextEdit() - self.text_edit.setReadOnly(True) - self.text_edit.setMinimumWidth(400) - center_hbox.addWidget(self.text_edit, 3) - center_hbox.addLayout(preset_vbox, 1) - - main_layout.addWidget(HorizontalSeparator()) - - # 底部:输入区 - bottom_hbox = QHBoxLayout() - self.input_line = LineEdit() - self.input_line.setPlaceholderText("输入内容,回车发送") - self.input_line.returnPressed.connect(self.send_data) - bottom_hbox.addWidget(self.input_line, 4) - send_btn = PushButton("发送") - send_btn.clicked.connect(self.send_data) - bottom_hbox.addWidget(send_btn, 1) - self.auto_enter_checkbox = CheckBox("自动回车") - self.auto_enter_checkbox.setChecked(True) - bottom_hbox.addWidget(self.auto_enter_checkbox) - bottom_hbox.addStretch() - main_layout.addLayout(bottom_hbox) - - self.ser = None - self.read_thread = None - - def send_preset_command(self, cmd): - self.input_line.setText(cmd) - self.send_data() - - def refresh_ports(self): - self.port_combo.clear() - ports = serial.tools.list_ports.comports() - for port in ports: - self.port_combo.addItem(port.device) - - def toggle_connection(self): - if self.ser and self.ser.is_open: - self.disconnect_serial() - else: - self.connect_serial() - - def connect_serial(self): - port = self.port_combo.currentText() - baud = int(self.baud_combo.currentText()) - try: - self.ser = serial.Serial(port, baud, timeout=0.1) - self.connect_btn.setText("断开") - self.text_edit.append(f"已连接到 {port} @ {baud}") - self.read_thread = SerialReadThread(self.ser) - self.read_thread.data_received.connect(self.display_data) - self.read_thread.start() - except Exception as e: - self.text_edit.append(f"连接失败: {e}") - - def disconnect_serial(self): - if self.read_thread: - self.read_thread.stop() - self.read_thread = None - if self.ser: - self.ser.close() - self.ser = None - self.connect_btn.setText("连接") - self.text_edit.append("已断开连接") - - def display_data(self, data): - self.text_edit.moveCursor(QTextCursor.End) - self.text_edit.insertPlainText(data) - self.text_edit.moveCursor(QTextCursor.End) - - def send_data(self): - if self.ser and self.ser.is_open: - text = self.input_line.text() - try: - if not text: - self.ser.write('\n'.encode()) - else: - for char in text: - self.ser.write(char.encode()) - # 判断是否自动回车 - if self.auto_enter_checkbox.isChecked(): - self.ser.write('\n'.encode()) - except Exception as e: - self.text_edit.append(f"发送失败: {e}") - self.input_line.clear() - - -# ===================== 零件库页面 ===================== - -# ...existing code... -class DownloadThread(QThread): - progressChanged = pyqtSignal(int) - finished = pyqtSignal(list, list) # success, fail - - def __init__(self, files, server_url, secret_key, local_dir, parent=None): - super().__init__(parent) - self.files = files - self.server_url = server_url - self.secret_key = secret_key - self.local_dir = local_dir - - def run(self): - success, fail = [], [] - total = len(self.files) - max_retry = 3 # 最大重试次数 - for idx, rel_path in enumerate(self.files): - retry = 0 - while retry < max_retry: - try: - url = f"{self.server_url}/download/{rel_path}" - params = {"key": self.secret_key} - resp = requests.get(url, params=params, stream=True, timeout=10) - if resp.status_code == 200: - local_path = os.path.join(self.local_dir, rel_path) - os.makedirs(os.path.dirname(local_path), exist_ok=True) - with open(local_path, "wb") as f: - shutil.copyfileobj(resp.raw, f) - success.append(rel_path) - break # 下载成功,跳出重试循环 - else: - print(f"下载失败({resp.status_code}): {rel_path},第{retry+1}次尝试") - retry += 1 - except Exception as e: - print(f"下载异常: {rel_path},第{retry+1}次尝试,错误: {e}") - retry += 1 - else: - fail.append(rel_path) - self.progressChanged.emit(int((idx + 1) / total * 100)) - self.finished.emit(success, fail) - - -class PartLibraryInterface(BaseInterface): - SERVER_URL = "http://154.37.215.220:5000" - SECRET_KEY = "MRobot_Download" - LOCAL_LIB_DIR = "mech_lib" - - def __init__(self, parent=None): - super().__init__(parent=parent) - self.setObjectName("partLibraryInterface") - layout = QVBoxLayout(self) - layout.setSpacing(16) - - layout.addWidget(SubtitleLabel("零件库(在线bate版)")) - layout.addWidget(HorizontalSeparator()) - layout.addWidget(BodyLabel("可浏览服务器零件库,选择需要的文件下载到本地。(如无法使用或者下载失败,请尝试重新下载或检查网络连接)")) - - btn_layout = QHBoxLayout() - refresh_btn = PushButton(FluentIcon.SYNC, "刷新列表") - refresh_btn.clicked.connect(self.refresh_list) - btn_layout.addWidget(refresh_btn) - - # 新增:打开本地零件库按钮 - open_local_btn = PushButton(FluentIcon.FOLDER, "打开本地零件库") - open_local_btn.clicked.connect(self.open_local_lib) - btn_layout.addWidget(open_local_btn) - btn_layout.addStretch() - layout.addLayout(btn_layout) - - self.tree = TreeWidget(self) - - self.tree.setHeaderLabels(["名称", "类型"]) - self.tree.setSelectionMode(self.tree.ExtendedSelection) - self.tree.header().setSectionResizeMode(0, QHeaderView.Stretch) - self.tree.header().setSectionResizeMode(1, QHeaderView.ResizeToContents) - self.tree.setCheckedColor("#0078d4", "#2d7d9a") - self.tree.setBorderRadius(8) - self.tree.setBorderVisible(True) - layout.addWidget(self.tree, stretch=1) - - download_btn = PushButton(FluentIcon.DOWNLOAD, "下载选中文件") - download_btn.clicked.connect(self.download_selected_files) - layout.addWidget(download_btn) - - self.refresh_list(first=True) - - def refresh_list(self, first=False): - self.tree.clear() - try: - resp = requests.get( - f"{self.SERVER_URL}/list", - params={"key": self.SECRET_KEY}, - timeout=5 - ) - resp.raise_for_status() - tree = resp.json() - self.populate_tree(self.tree, tree, "") - if not first: - InfoBar.success( - title="刷新成功", - content="零件库已经是最新的!", - parent=self, - position=InfoBarPosition.TOP, - duration=2000 - ) - except Exception as e: - InfoBar.error( - title="刷新失败", - content=f"获取零件库失败: {e}", - parent=self, - position=InfoBarPosition.TOP, - duration=3000 - ) - - def populate_tree(self, parent, node, path_prefix): - from PyQt5.QtWidgets import QTreeWidgetItem - for dname, dnode in node.get("dirs", {}).items(): - item = QTreeWidgetItem([dname, "文件夹"]) - if isinstance(parent, TreeWidget): - parent.addTopLevelItem(item) - else: - parent.addChild(item) - self.populate_tree(item, dnode, os.path.join(path_prefix, dname)) - for fname in node.get("files", []): - item = QTreeWidgetItem([fname, "文件"]) - item.setFlags(item.flags() | Qt.ItemIsUserCheckable) - item.setCheckState(0, Qt.Unchecked) - item.setData(0, Qt.UserRole, os.path.join(path_prefix, fname)) - if isinstance(parent, TreeWidget): - parent.addTopLevelItem(item) - else: - parent.addChild(item) - - def get_checked_files(self): - files = [] - def _traverse(item): - for i in range(item.childCount()): - child = item.child(i) - if child.text(1) == "文件" and child.checkState(0) == Qt.Checked: - files.append(child.data(0, Qt.UserRole)) - _traverse(child) - root = self.tree.invisibleRootItem() - for i in range(root.childCount()): - _traverse(root.child(i)) - return files - - def download_selected_files(self): - files = self.get_checked_files() - if not files: - InfoBar.info( - title="提示", - content="请先勾选要下载的文件。", - parent=self, - position=InfoBarPosition.TOP, - duration=2000 - ) - return - - # 进度条对话框 - self.progress_dialog = Dialog( - title="正在下载", - content="正在下载选中文件,请稍候...", - parent=self - ) - self.progress_bar = ProgressBar() - self.progress_bar.setValue(0) - # 插入进度条到内容布局 - self.progress_dialog.textLayout.addWidget(self.progress_bar) - self.progress_dialog.show() - - # 启动下载线程 - self.download_thread = DownloadThread( - files, self.SERVER_URL, self.SECRET_KEY, self.LOCAL_LIB_DIR - ) - self.download_thread.progressChanged.connect(self.progress_bar.setValue) - self.download_thread.finished.connect(self.on_download_finished) - self.download_thread.finished.connect(self.download_thread.deleteLater) - self.download_thread.start() - - def on_download_finished(self, success, fail): - self.progress_dialog.close() - msg = f"成功下载: {len(success)} 个文件\n失败: {len(fail)} 个文件" - dialog = Dialog( - title="下载结果", - content=msg, - parent=self - ) - # 添加“打开文件夹”按钮 - open_btn = PushButton("打开文件夹") - def open_folder(): - folder = os.path.abspath(self.LOCAL_LIB_DIR) - # 打开文件夹(macOS用open,Windows用explorer,Linux用xdg-open) - import platform, subprocess - if platform.system() == "Darwin": - subprocess.call(["open", folder]) - elif platform.system() == "Windows": - subprocess.call(["explorer", folder]) - else: - subprocess.call(["xdg-open", folder]) - dialog.close() - open_btn.clicked.connect(open_folder) - # 添加按钮到Dialog布局 - dialog.textLayout.addWidget(open_btn) - dialog.exec() - - def open_local_lib(self): - folder = os.path.abspath(self.LOCAL_LIB_DIR) - import platform, subprocess - if platform.system() == "Darwin": - subprocess.call(["open", folder]) - elif platform.system() == "Windows": - subprocess.call(["explorer", folder]) - else: - subprocess.call(["xdg-open", folder]) - -# ===================== 设置界面 ===================== -class SettingInterface(BaseInterface): - themeSwitchRequested = pyqtSignal() - - def __init__(self, parent=None): - super().__init__(parent=parent) - self.setObjectName("settingInterface") - layout = QVBoxLayout() - self.setLayout(layout) - - # 标题 - layout.addSpacing(10) - layout.addWidget(SubtitleLabel("设置中心")) - layout.addSpacing(10) - layout.addWidget(HorizontalSeparator()) - - # 主题切换区域 - theme_title = StrongBodyLabel("外观设置") - theme_desc = BodyLabel("切换夜间/白天模式,适应不同环境。") - theme_desc.setWordWrap(True) - layout.addSpacing(10) - layout.addWidget(theme_title) - layout.addWidget(theme_desc) - - theme_box = QHBoxLayout() - self.theme_label = BodyLabel("夜间模式") - self.theme_switch = SwitchButton() - self.theme_switch.setChecked(Theme.DARK == Theme.DARK) - self.theme_switch.checkedChanged.connect(self.on_theme_switch) - theme_box.addWidget(self.theme_label) - theme_box.addWidget(self.theme_switch) - theme_box.addStretch() - layout.addLayout(theme_box) - - layout.addSpacing(15) - layout.addWidget(HorizontalSeparator()) - - # 其它设置区域(示例) - other_title = StrongBodyLabel("其它设置") - other_desc = BodyLabel("更多功能正在开发中,敬请期待。") - other_desc.setWordWrap(True) - layout.addSpacing(10) - layout.addWidget(other_title) - layout.addWidget(other_desc) - - # 版权信息 - layout.addStretch() - copyright_label = BodyLabel("© 2025 MRobot Toolbox") - copyright_label.setAlignment(Qt.AlignmentFlag.AlignHCenter) - layout.addWidget(copyright_label) - layout.addSpacing(10) - - def on_theme_switch(self, checked): - self.themeSwitchRequested.emit() - -# ===================== 帮助与关于界面 ===================== -class HelpInterface(BaseInterface): - def __init__(self, parent=None): - super().__init__(parent=parent) - self.setObjectName("helpInterface") - layout = QVBoxLayout() - self.setLayout(layout) - -class AboutInterface(BaseInterface): - def __init__(self, parent=None): - super().__init__(parent=parent) - self.setObjectName("aboutInterface") - layout = QVBoxLayout() - self.setLayout(layout) - -# ===================== 主窗口与导航 ===================== -class MainWindow(FluentWindow): - themeChanged = pyqtSignal(Theme) - - def __init__(self): - super().__init__() - self.setWindowTitle("MR_ToolBox") - self.resize(1000, 700) - self.setMinimumSize(800, 600) - - # 记录当前主题 - self.current_theme = Theme.DARK - - # 创建页面实例 - self.setting_page = SettingInterface(self) - self.setting_page.themeSwitchRequested.connect(self.toggle_theme) - - self.page_registry = [ - (HomeInterface(self), FIF.HOME, "首页", NavigationItemPosition.TOP), - (DataInterface(self), FIF.LIBRARY, "MRobot代码生成", NavigationItemPosition.SCROLL), - (SerialTerminalInterface(self), FIF.COMMAND_PROMPT, "Mini_Shell", NavigationItemPosition.SCROLL), - (PartLibraryInterface(self), FIF.DOWNLOAD, "零件库", NavigationItemPosition.SCROLL), # ← 加上这一行 - (self.setting_page, FIF.SETTING, "设置", NavigationItemPosition.BOTTOM), - (HelpInterface(self), FIF.HELP, "帮助", NavigationItemPosition.BOTTOM), - (AboutInterface(self), FIF.INFO, "关于", NavigationItemPosition.BOTTOM), - ] - self.initNavigation() - - def initNavigation(self): - for page, icon, name, position in self.page_registry: - self.addSubInterface(page, icon, name, position) - self.navigationInterface.addSeparator() - avatar = NavigationAvatarWidget('用户', ':/qfluentwidgets/images/avatar.png') - self.navigationInterface.addWidget( - routeKey='avatar', - widget=avatar, - onClick=self.show_user_info, # 这里改为 self.show_user_info - position=NavigationItemPosition.BOTTOM - ) - - def toggle_theme(self): - # 切换主题 - if self.current_theme == Theme.DARK: - self.current_theme = Theme.LIGHT - else: - self.current_theme = Theme.DARK - setTheme(self.current_theme) - # 同步设置界面按钮状态 - self.setting_page.theme_switch.setChecked(self.current_theme == Theme.DARK) - - def show_user_info(self): - dialog = Dialog( - title="用户信息", - content="用户:MRobot至尊VIP用户", - parent=self - ) - dialog.exec() - -# ===================== 程序入口 ===================== -def main(): - app = QApplication(sys.argv) - setTheme(Theme.DARK) - window = MainWindow() - window.show() - sys.exit(app.exec_()) - -if __name__ == '__main__': - main() \ No newline at end of file diff --git a/MRobot_old.py b/MRobot_old.py deleted file mode 100644 index c85ba8c..0000000 --- a/MRobot_old.py +++ /dev/null @@ -1,719 +0,0 @@ -import tkinter as tk -from tkinter import ttk -from PIL import Image, ImageTk -import sys -import os -import threading -import shutil -import re -from git import Repo -from collections import defaultdict -import csv -import xml.etree.ElementTree as ET - -# 配置常量 -REPO_DIR = "MRobot_repo" -REPO_URL = "http://gitea.qutrobot.top/robofish/MRobot.git" -if getattr(sys, 'frozen', False): # 检查是否为打包后的环境 - CURRENT_DIR = os.path.dirname(sys.executable) # 使用可执行文件所在目录 -else: - CURRENT_DIR = os.path.dirname(os.path.abspath(__file__)) # 使用脚本所在目录 - -MDK_ARM_DIR = os.path.join(CURRENT_DIR, "MDK-ARM") -USER_DIR = os.path.join(CURRENT_DIR, "User") - -class MRobotApp: - def __init__(self): - self.ioc_data = None - self.add_gitignore_var = None # 延迟初始化 - self.header_file_vars = {} - self.task_vars = [] # 用于存储任务的变量 - - # 初始化 - def initialize(self): - print("初始化中,正在克隆仓库...") - self.clone_repo() - self.ioc_data = self.find_and_read_ioc_file() - print("初始化完成,启动主窗口...") - self.show_main_window() - - # 克隆仓库 - def clone_repo(self): - try: - if os.path.exists(REPO_DIR): - shutil.rmtree(REPO_DIR) - print(f"正在克隆仓库到 {REPO_DIR}(仅克隆当前文件内容)...") - Repo.clone_from(REPO_URL, REPO_DIR, multi_options=["--depth=1"]) - print("仓库克隆成功!") - except Exception as e: - print(f"克隆仓库时出错: {e}") - - # 删除克隆的仓库 - def delete_repo(self): - try: - if os.path.exists(REPO_DIR): - shutil.rmtree(REPO_DIR) - print(f"已删除克隆的仓库目录: {REPO_DIR}") - except Exception as e: - print(f"删除仓库目录时出错: {e}") - - - # 复制文件 - def copy_file_from_repo(self, src_path, dest_path): - try: - # 修复路径拼接问题,确保 src_path 不重复包含 REPO_DIR - if src_path.startswith(REPO_DIR): - full_src_path = src_path - else: - full_src_path = os.path.join(REPO_DIR, src_path.lstrip(os.sep)) - - # 检查源文件是否存在 - if not os.path.exists(full_src_path): - print(f"文件 {full_src_path} 不存在!(检查路径或仓库内容)") - return - - # 检查目标路径是否有效 - if not dest_path or not dest_path.strip(): - print("目标路径为空或无效,无法复制文件!") - return - - # 创建目标目录(如果不存在) - dest_dir = os.path.dirname(dest_path) - if dest_dir and not os.path.exists(dest_dir): - os.makedirs(dest_dir, exist_ok=True) - - # 执行文件复制 - shutil.copy(full_src_path, dest_path) - print(f"文件已从 {full_src_path} 复制到 {dest_path}") - except Exception as e: - print(f"复制文件时出错: {e}") - - # 查找并读取 .ioc 文件 - def find_and_read_ioc_file(self): - try: - for file in os.listdir("."): - if file.endswith(".ioc"): - print(f"找到 .ioc 文件: {file}") - with open(file, "r", encoding="utf-8") as f: - return f.read() - print("未找到 .ioc 文件!") - except Exception as e: - print(f"读取 .ioc 文件时出错: {e}") - return None - - # 检查是否启用了 FreeRTOS - def check_freertos_enabled(self, ioc_data): - try: - return bool(re.search(r"Mcu\.IP\d+=FREERTOS", ioc_data)) - except Exception as e: - print(f"检查 FreeRTOS 配置时出错: {e}") - return False - - # 生成操作 - def generate_action(self): - def task(): - # 检查并创建目录 - self.create_directories() - - if self.add_gitignore_var.get(): - self.copy_file_from_repo(".gitignore", ".gitignore") - if self.ioc_data and self.check_freertos_enabled(self.ioc_data): - self.copy_file_from_repo("src/freertos.c", os.path.join("Core", "Src", "freertos.c")) - - # 定义需要处理的文件夹 - folders = ["bsp", "component", "device", "module"] - - # 遍历每个文件夹,复制选中的 .h 和 .c 文件 - for folder in folders: - folder_dir = os.path.join(REPO_DIR, "User", folder) - if not os.path.exists(folder_dir): - continue # 如果文件夹不存在,跳过 - - for file_name in os.listdir(folder_dir): - file_base, file_ext = os.path.splitext(file_name) - if file_ext not in [".h", ".c"]: - continue # 只处理 .h 和 .c 文件 - - # 强制复制与文件夹同名的文件 - if file_base == folder: - src_path = os.path.join(folder_dir, file_name) - dest_path = os.path.join("User", folder, file_name) - self.copy_file_from_repo(src_path, dest_path) - continue # 跳过后续检查,直接复制 - - # 检查是否选中了对应的文件 - if file_base in self.header_file_vars and self.header_file_vars[file_base].get(): - src_path = os.path.join(folder_dir, file_name) - dest_path = os.path.join("User", folder, file_name) - self.copy_file_from_repo(src_path, dest_path) - - threading.Thread(target=task).start() - - - - # 创建必要的目录 - def create_directories(self): - try: - directories = [ - "User/bsp", - "User/component", - "User/device", - "User/module", - ] - # 根据是否启用 FreeRTOS 决定是否创建 User/task - if self.ioc_data and self.check_freertos_enabled(self.ioc_data): - directories.append("User/task") - - for directory in directories: - if not os.path.exists(directory): - os.makedirs(directory, exist_ok=True) - print(f"已创建目录: {directory}") - else: - print(f"目录已存在: {directory}") - except Exception as e: - print(f"创建目录时出错: {e}") - - - # 更新 FreeRTOS 状态标签 - def update_freertos_status(self, label): - if self.ioc_data: - status = "已启用" if self.check_freertos_enabled(self.ioc_data) else "未启用" - else: - status = "未检测到 .ioc 文件" - label.config(text=f"FreeRTOS 状态: {status}") - - - - # 显示主窗口 - # ...existing code... - # ...existing code... - - # 显示主窗口 - def show_main_window(self): - root = tk.Tk() - root.title("MRobot 自动生成脚本") - root.geometry("1000x650") # 调整窗口大小以适应布局 - - # 在窗口关闭时调用 on_closing 方法 - root.protocol("WM_DELETE_WINDOW", lambda: self.on_closing(root)) - - # 初始化 BooleanVar - self.add_gitignore_var = tk.BooleanVar(value=False) - self.auto_configure_var = tk.BooleanVar(value=False) # 新增复选框变量 - - # 创建主框架 - main_frame = ttk.Frame(root) - main_frame.pack(fill="both", expand=True) - - # 添加标题 - title_label = ttk.Label(main_frame, text="MRobot 自动生成脚本", font=("Arial", 16, "bold")) - title_label.pack(pady=10) - - # 添加 FreeRTOS 状态标签 - freertos_status_label = ttk.Label(main_frame, text="FreeRTOS 状态: 检测中...", font=("Arial", 12)) - freertos_status_label.pack(pady=10) - self.update_freertos_status(freertos_status_label) - - # 模块文件选择和任务管理框架(添加滚动功能) - module_task_frame = ttk.Frame(main_frame) - module_task_frame.pack(fill="both", expand=True, padx=10, pady=10) - - # 创建 Canvas 和 Scrollbar - canvas = tk.Canvas(module_task_frame) - scrollbar = ttk.Scrollbar(module_task_frame, orient="vertical", command=canvas.yview) - scrollable_frame = ttk.Frame(canvas) - - # 配置滚动区域 - scrollable_frame.bind( - "", - lambda e: canvas.configure(scrollregion=canvas.bbox("all")) - ) - canvas.create_window((0, 0), window=scrollable_frame, anchor="nw") - canvas.configure(yscrollcommand=scrollbar.set) - - # 绑定鼠标滚轮事件 - def on_mouse_wheel(event): - canvas.yview_scroll(-1 * int(event.delta / 120), "units") - - canvas.bind_all("", on_mouse_wheel) - - # 布局 Canvas 和 Scrollbar - canvas.pack(side="left", fill="both", expand=True) - scrollbar.pack(side="right", fill="y") - - # 左右布局:模块文件选择框和任务管理框 - left_frame = ttk.Frame(scrollable_frame) - left_frame.pack(side="left", fill="both", expand=True, padx=5, pady=5) - - right_frame = ttk.Frame(scrollable_frame) - right_frame.pack(side="right", fill="both", expand=True, padx=5, pady=5) - - # 模块文件选择框 - header_files_frame = ttk.LabelFrame(left_frame, text="模块文件选择", padding=(10, 10)) - header_files_frame.pack(fill="both", expand=True, padx=5) - self.header_files_frame = header_files_frame - self.update_header_files() - - # 任务管理框 - if self.ioc_data and self.check_freertos_enabled(self.ioc_data): - task_frame = ttk.LabelFrame(right_frame, text="任务管理", padding=(10, 10)) - task_frame.pack(fill="both", expand=True, padx=5) - self.task_frame = task_frame - self.update_task_ui() - - # 添加消息框和生成按钮在同一行 - bottom_frame = ttk.Frame(main_frame) - bottom_frame.pack(fill="x", pady=10, side="bottom") - - # 消息框 - self.message_box = tk.Text(bottom_frame, wrap="word", state="disabled", height=5, width=60) - self.message_box.pack(side="left", fill="x", expand=True, padx=5, pady=5) - - # 生成按钮和复选框选项 - button_frame = ttk.Frame(bottom_frame) - button_frame.pack(side="right", padx=10) - - # 添加复选框容器(横向排列复选框) - checkbox_frame = ttk.Frame(button_frame) - checkbox_frame.pack(side="top", pady=5) - - # 添加 .gitignore 复选框(左侧) - ttk.Checkbutton(checkbox_frame, text=".gitignore", variable=self.add_gitignore_var).pack(side="left", padx=5) - - # 添加自动配置环境复选框(右侧) - ttk.Checkbutton(checkbox_frame, text="自动环境", variable=self.auto_configure_var).pack(side="left", padx=5) - - # 添加生成按钮(竖向排列在复选框下方) - generate_button = ttk.Button(button_frame, text="一键生成MRobot代码", command=self.generate_action) - generate_button.pack(side="top", pady=10) - generate_button.config(width=25) # 设置按钮宽度 - - # 重定向输出到消息框 - self.redirect_output() - - # 打印欢迎信息 - print("欢迎使用 MRobot 自动生成脚本!") - print("请根据需要选择模块文件和任务。") - print("点击“一键生成MRobot代码”按钮开始生成。") - - # 启动 Tkinter 主事件循环 - root.mainloop() - - # ...existing code... - # ...existing code... - - def redirect_output(self): - """ - 重定向标准输出到消息框 - """ - class TextRedirector: - def __init__(self, text_widget): - self.text_widget = text_widget - - def write(self, message): - self.text_widget.config(state="normal") - self.text_widget.insert("end", message) - self.text_widget.see("end") - self.text_widget.config(state="disabled") - - def flush(self): - pass - - sys.stdout = TextRedirector(self.message_box) - sys.stderr = TextRedirector(self.message_box) - - # 修改 update_task_ui 方法 - def update_task_ui(self): - # 检查是否有已存在的任务文件 - task_dir = os.path.join("User", "task") - if os.path.exists(task_dir): - for file_name in os.listdir(task_dir): - file_base, file_ext = os.path.splitext(file_name) - if file_ext == ".c" and file_base not in ["init", "user_task"] and file_base not in [task_var.get() for task_var, _ in self.task_vars]: - frequency = 100 # 默认频率 - user_task_header_path = os.path.join("User", "task", "user_task.h") - if os.path.exists(user_task_header_path): - try: - with open(user_task_header_path, "r", encoding="utf-8") as f: - content = f.read() - pattern = rf"#define\s+TASK_FREQ_{file_base.upper()}\s*\((\d+)[uU]?\)" - match = re.search(pattern, content) - if match: - frequency = int(match.group(1)) - print(f"从 user_task.h 文件中读取到任务 {file_base} 的频率: {frequency}") - except Exception as e: - print(f"读取 user_task.h 文件时出错: {e}") - - new_task_var = tk.StringVar(value=file_base) - self.task_vars.append((new_task_var, tk.IntVar(value=frequency))) - - # 清空任务框架中的所有子组件 - for widget in self.task_frame.winfo_children(): - widget.destroy() - - - # 设置任务管理框的固定宽度 - self.task_frame.config(width=400) - - # 显示任务列表 - for i, (task_var, freq_var) in enumerate(self.task_vars): - task_row = ttk.Frame(self.task_frame, width=400) - task_row.pack(fill="x", pady=5) - - ttk.Entry(task_row, textvariable=task_var, width=20).pack(side="left", padx=5) - ttk.Label(task_row, text="频率:").pack(side="left", padx=5) - ttk.Spinbox(task_row, from_=1, to=1000, textvariable=freq_var, width=5).pack(side="left", padx=5) - ttk.Button(task_row, text="删除", command=lambda idx=i: self.remove_task(idx)).pack(side="left", padx=5) - - # 添加新任务按钮 - add_task_button = ttk.Button(self.task_frame, text="添加任务", command=self.add_task) - add_task_button.pack(pady=10) - - - # 修改 add_task 方法 - def add_task(self): - new_task_var = tk.StringVar(value=f"Task_{len(self.task_vars) + 1}") - new_freq_var = tk.IntVar(value=100) # 默认频率为 100 - self.task_vars.append((new_task_var, new_freq_var)) - self.update_task_ui() - - # 修改 remove_task 方法 - def remove_task(self, idx): - del self.task_vars[idx] - self.update_task_ui() - - # 更新文件夹显示 - def update_folder_display(self): - for widget in self.folder_frame.winfo_children(): - widget.destroy() - - folders = ["User/bsp", "User/component", "User/device", "User/module"] - # if self.ioc_data and self.check_freertos_enabled(self.ioc_data): - # folders.append("User/task") - - for folder in folders: - # 去掉 "User/" 前缀 - display_name = folder.replace("User/", "") - tk.Label(self.folder_frame, text=display_name).pack() - - # 更新 .h 文件复选框 - def update_header_files(self): - for widget in self.header_files_frame.winfo_children(): - widget.destroy() - - folders = ["bsp", "component", "device", "module"] - dependencies = defaultdict(list) - - for folder in folders: - folder_dir = os.path.join(REPO_DIR, "User", folder) - if os.path.exists(folder_dir): - dependencies_file = os.path.join(folder_dir, "dependencies.csv") - if os.path.exists(dependencies_file): - with open(dependencies_file, "r", encoding="utf-8") as f: - reader = csv.reader(f) - for row in reader: - if len(row) == 2: - dependencies[row[0]].append(row[1]) - - # 创建复选框 - for folder in folders: - folder_dir = os.path.join(REPO_DIR, "User", folder) - if os.path.exists(folder_dir): - module_frame = ttk.LabelFrame(self.header_files_frame, text=folder.capitalize(), padding=(10, 10)) - module_frame.pack(fill="x", pady=5) - - row, col = 0, 0 - for file in os.listdir(folder_dir): - file_base, file_ext = os.path.splitext(file) - if file_ext == ".h" and file_base != folder: - var = tk.BooleanVar(value=False) - self.header_file_vars[file_base] = var - - checkbox = ttk.Checkbutton( - module_frame, - text=file_base, - variable=var, - command=lambda fb=file_base: self.handle_dependencies(fb, dependencies) - ) - checkbox.grid(row=row, column=col, padx=5, pady=5, sticky="w") - col += 1 - if col >= 6: - col = 0 - row += 1 - - - - def handle_dependencies(self, file_base, dependencies): - """ - 根据依赖关系自动勾选相关模块 - """ - if file_base in self.header_file_vars and self.header_file_vars[file_base].get(): - # 如果当前模块被选中,自动勾选其依赖项 - for dependency in dependencies.get(file_base, []): - dep_base = os.path.basename(dependency) - if dep_base in self.header_file_vars: - self.header_file_vars[dep_base].set(True) - - # 在 MRobotApp 类中添加以下方法 - def generate_task_files(self): - try: - template_file_path = os.path.join(REPO_DIR, "User", "task", "task.c.template") - task_dir = os.path.join("User", "task") - - if not os.path.exists(template_file_path): - print(f"模板文件 {template_file_path} 不存在,无法生成 task.c 文件!") - return - - os.makedirs(task_dir, exist_ok=True) - - with open(template_file_path, "r", encoding="utf-8") as f: - template_content = f.read() - - # 为每个任务生成对应的 task.c 文件 - for task_var, _ in self.task_vars: # 解包元组 - task_name = f"Task_{task_var.get()}" # 添加前缀 Task_ - task_file_path = os.path.join(task_dir, f"{task_var.get().lower()}.c") # 文件名保持原始小写 - - # 替换模板中的占位符 - task_content = template_content.replace("{{task_name}}", task_name) - task_content = task_content.replace("{{task_function}}", task_name) - task_content = task_content.replace( - "{{task_frequency}}", f"TASK_FREQ_{task_var.get().upper()}" - ) # 替换为 user_task.h 中的宏定义 - task_content = task_content.replace("{{task_delay}}", f"TASK_INIT_DELAY_{task_var.get().upper()}") - - with open(task_file_path, "w", encoding="utf-8") as f: - f.write(task_content) - - print(f"已成功生成 {task_file_path} 文件!") - except Exception as e: - print(f"生成 task.c 文件时出错: {e}") - # 修改 user_task.c 文件 - def modify_user_task_file(self): - try: - template_file_path = os.path.join(REPO_DIR, "User", "task", "user_task.c.template") - generated_task_file_path = os.path.join("User", "task", "user_task.c") - - if not os.path.exists(template_file_path): - print(f"模板文件 {template_file_path} 不存在,无法生成 user_task.c 文件!") - return - - os.makedirs(os.path.dirname(generated_task_file_path), exist_ok=True) - - with open(template_file_path, "r", encoding="utf-8") as f: - template_content = f.read() - - # 生成任务属性定义 - task_attr_definitions = "\n".join([ - f"""const osThreadAttr_t attr_{task_var.get().lower()} = {{ - .name = "{task_var.get()}", - .priority = osPriorityNormal, - .stack_size = 128 * 4, - }};""" - for task_var, _ in self.task_vars # 解包元组 - ]) - - # 替换模板中的占位符 - task_content = template_content.replace("{{task_attr_definitions}}", task_attr_definitions) - - with open(generated_task_file_path, "w", encoding="utf-8") as f: - f.write(task_content) - - print(f"已成功生成 {generated_task_file_path} 文件!") - except Exception as e: - print(f"修改 user_task.c 文件时出错: {e}") - # ...existing code... - - def generate_user_task_header(self): - try: - template_file_path = os.path.join(REPO_DIR, "User", "task", "user_task.h.template") - header_file_path = os.path.join("User", "task", "user_task.h") - - if not os.path.exists(template_file_path): - print(f"模板文件 {template_file_path} 不存在,无法生成 user_task.h 文件!") - return - - os.makedirs(os.path.dirname(header_file_path), exist_ok=True) - - # 如果 user_task.h 已存在,提取 /* USER MESSAGE BEGIN */ 和 /* USER MESSAGE END */ 区域内容 - existing_msgq_content = "" - if os.path.exists(header_file_path): - with open(header_file_path, "r", encoding="utf-8") as f: - content = f.read() - # 提取 /* USER MESSAGE BEGIN */ 和 /* USER MESSAGE END */ 区域内容 - match = re.search(r"/\* USER MESSAGE BEGIN \*/\s*(.*?)\s*/\* USER MESSAGE END \*/", content, re.DOTALL) - if match: - existing_msgq_content = match.group(1).strip() - print("已存在的 msgq 区域内容:") - print(existing_msgq_content) - - with open(template_file_path, "r", encoding="utf-8") as f: - template_content = f.read() - - # 定义占位符内容 - thread_definitions = "\n".join([f" osThreadId_t {task_var.get().lower()};" for task_var, _ in self.task_vars]) - msgq_definitions = existing_msgq_content if existing_msgq_content else " osMessageQueueId_t default_msgq;" - freq_definitions = "\n".join([f" float {task_var.get().lower()};" for task_var, _ in self.task_vars]) - last_up_time_definitions = "\n".join([f" uint32_t {task_var.get().lower()};" for task_var, _ in self.task_vars]) - task_attr_declarations = "\n".join([f"extern const osThreadAttr_t attr_{task_var.get().lower()};" for task_var, _ in self.task_vars]) - task_function_declarations = "\n".join([f"void Task_{task_var.get()}(void *argument);" for task_var, _ in self.task_vars]) - task_frequency_definitions = "\n".join([ - f"#define TASK_FREQ_{task_var.get().upper()} ({freq_var.get()}u)" - for task_var, freq_var in self.task_vars - ]) - task_init_delay_definitions = "\n".join([f"#define TASK_INIT_DELAY_{task_var.get().upper()} (0u)" for task_var, _ in self.task_vars]) - task_handle_definitions = "\n".join([f" osThreadId_t {task_var.get().lower()};" for task_var, _ in self.task_vars]) - - # 替换模板中的占位符 - header_content = template_content.replace("{{thread_definitions}}", thread_definitions) - header_content = header_content.replace("{{msgq_definitions}}", msgq_definitions) - header_content = header_content.replace("{{freq_definitions}}", freq_definitions) - header_content = header_content.replace("{{last_up_time_definitions}}", last_up_time_definitions) - header_content = header_content.replace("{{task_attr_declarations}}", task_attr_declarations) - header_content = header_content.replace("{{task_function_declarations}}", task_function_declarations) - header_content = header_content.replace("{{task_frequency_definitions}}", task_frequency_definitions) - header_content = header_content.replace("{{task_init_delay_definitions}}", task_init_delay_definitions) - header_content = header_content.replace("{{task_handle_definitions}}", task_handle_definitions) - - # 如果存在 /* USER MESSAGE BEGIN */ 区域内容,则保留 - if existing_msgq_content: - header_content = re.sub( - r"/\* USER MESSAGE BEGIN \*/\s*.*?\s*/\* USER MESSAGE END \*/", - f"/* USER MESSAGE BEGIN */\n\n {existing_msgq_content}\n\n /* USER MESSAGE END */", - header_content, - flags=re.DOTALL - ) - - with open(header_file_path, "w", encoding="utf-8") as f: - f.write(header_content) - - print(f"已成功生成 {header_file_path} 文件!") - except Exception as e: - print(f"生成 user_task.h 文件时出错: {e}") - - def generate_init_file(self): - try: - template_file_path = os.path.join(REPO_DIR, "User", "task", "init.c.template") - generated_file_path = os.path.join("User", "task", "init.c") - - if not os.path.exists(template_file_path): - print(f"模板文件 {template_file_path} 不存在,无法生成 init.c 文件!") - return - - os.makedirs(os.path.dirname(generated_file_path), exist_ok=True) - - # 如果 init.c 已存在,提取 /* USER MESSAGE BEGIN */ 和 /* USER MESSAGE END */ 区域内容 - existing_msgq_content = "" - if os.path.exists(generated_file_path): - with open(generated_file_path, "r", encoding="utf-8") as f: - content = f.read() - # 提取 /* USER MESSAGE BEGIN */ 和 /* USER MESSAGE END */ 区域内容 - match = re.search(r"/\* USER MESSAGE BEGIN \*/\s*(.*?)\s*/\* USER MESSAGE END \*/", content, re.DOTALL) - if match: - existing_msgq_content = match.group(1).strip() - print("已存在的消息队列区域内容:") - print(existing_msgq_content) - - with open(template_file_path, "r", encoding="utf-8") as f: - template_content = f.read() - - # 生成任务创建代码 - thread_creation_code = "\n".join([ - f" task_runtime.thread.{task_var.get().lower()} = osThreadNew(Task_{task_var.get()}, NULL, &attr_{task_var.get().lower()});" - for task_var, _ in self.task_vars # 解包元组 - ]) - - # 替换模板中的占位符 - init_content = template_content.replace("{{thread_creation_code}}", thread_creation_code) - - # 如果存在 /* USER MESSAGE BEGIN */ 区域内容,则保留 - if existing_msgq_content: - init_content = re.sub( - r"/\* USER MESSAGE BEGIN \*/\s*.*?\s*/\* USER MESSAGE END \*/", - f"/* USER MESSAGE BEGIN */\n {existing_msgq_content}\n /* USER MESSAGE END */", - init_content, - flags=re.DOTALL - ) - - with open(generated_file_path, "w", encoding="utf-8") as f: - f.write(init_content) - - print(f"已成功生成 {generated_file_path} 文件!") - except Exception as e: - print(f"生成 init.c 文件时出错: {e}") - - # 修改 generate_action 方法 - - def generate_action(self): - def task(): - # 检查并创建目录(与 FreeRTOS 状态无关的模块始终创建) - self.create_directories() - - # 复制 .gitignore 文件 - if self.add_gitignore_var.get(): - self.copy_file_from_repo(".gitignore", ".gitignore") - - # 如果启用了 FreeRTOS,复制相关文件 - if self.ioc_data and self.check_freertos_enabled(self.ioc_data): - self.copy_file_from_repo("src/freertos.c", os.path.join("Core", "Src", "freertos.c")) - - # 定义需要处理的文件夹(与 FreeRTOS 状态无关) - folders = ["bsp", "component", "device", "module"] - - # 遍历每个文件夹,复制选中的 .h 和 .c 文件 - for folder in folders: - folder_dir = os.path.join(REPO_DIR, "User", folder) - if not os.path.exists(folder_dir): - continue # 如果文件夹不存在,跳过 - - for file_name in os.listdir(folder_dir): - file_base, file_ext = os.path.splitext(file_name) - if file_ext not in [".h", ".c"]: - continue # 只处理 .h 和 .c 文件 - - # 强制复制与文件夹同名的文件 - if file_base == folder: - src_path = os.path.join(folder_dir, file_name) - dest_path = os.path.join("User", folder, file_name) - self.copy_file_from_repo(src_path, dest_path) - print(f"强制复制与文件夹同名的文件: {file_name}") - continue # 跳过后续检查,直接复制 - - # 检查是否选中了对应的文件 - if file_base in self.header_file_vars and self.header_file_vars[file_base].get(): - src_path = os.path.join(folder_dir, file_name) - dest_path = os.path.join("User", folder, file_name) - self.copy_file_from_repo(src_path, dest_path) - - # 如果启用了 FreeRTOS,执行任务相关的生成逻辑 - if self.ioc_data and self.check_freertos_enabled(self.ioc_data): - # 修改 user_task.c 文件 - self.modify_user_task_file() - - # 生成 user_task.h 文件 - self.generate_user_task_header() - - # 生成 init.c 文件 - self.generate_init_file() - - # 生成 task.c 文件 - self.generate_task_files() - - # # 自动配置环境 - # if self.auto_configure_var.get(): - - # self.auto_configure_environment() - - - threading.Thread(target=task).start() - - # 程序关闭时清理 - def on_closing(self, root): - self.delete_repo() - root.destroy() - - -# 程序入口 -if __name__ == "__main__": - app = MRobotApp() - app.initialize() \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index f1f246a..0000000 --- a/README.md +++ /dev/null @@ -1,93 +0,0 @@ -# MRobot - -更加高效快捷的 STM32 开发架构,诞生于 Robocon 和 Robomaster,但绝不仅限于此。 - -
- MRobot Logo -

是时候使用更简洁的方式开发单片机了

-

- -

-
- ---- - -## 引言 - -提起嵌入式开发,绝大多数人对每次繁琐的配置,以及查阅各种文档来写东西感到非常枯燥和浪费使时间,对于小形形目创建优雅的架构又比较费事,那么我们哟u没有办法快速完成基础环境的搭建后直接开始写逻辑代码呢? - -这就是**MRobot**。 - - - ---- - -## 获取源代码 - -(此处可补充获取代码的具体方法) - ---- - -## 主要特色 - -(此处可补充项目的主要特色) - ---- - -## 组成 - -
- 嵌入式程序层次图 -
- -- `src/bsp` -- `src/component` -- `src/device` -- `src/module` -- `src/task` - ---- - -## 应用案例 - -> **Robomaster** - -- 全向轮步兵 -- 英雄 -- 哨兵 - ---- - -## 机器人展示 - -`以上机器人均使用 MRobot 搭建` - ---- - -## 硬件支持 - -(此处可补充支持的硬件列表) - ---- - -## 图片展示 - - -## 相关依赖 - -(此处可补充项目依赖的具体内容) - ---- - -## 构建 exe - -使用以下命令构建可执行文件: - -```bash -pyinstaller --onefile --windowed -pyinstaller MR_Toolbox.py --onefile --noconsole --icon=img\M.ico --add-data "mr_tool_img\MRobot.png;mr_tool_img" - -pyinstaller MR_Tool.py --onefile --noconsole --icon=img\M.ico --add-data "mr_tool_img\MRobot.png;mr_tool_img" --add-data "src;src" --add-data "User;User" \ No newline at end of file diff --git a/fluentui.py b/fluentui.py deleted file mode 100644 index c434363..0000000 --- a/fluentui.py +++ /dev/null @@ -1,168 +0,0 @@ -import sys -import webbrowser -import serial -import serial.tools.list_ports - -from PyQt5.QtCore import Qt, QSize, pyqtSignal -from PyQt5.QtGui import QPixmap, QFont -from PyQt5.QtWidgets import ( - QWidget, QVBoxLayout, QApplication, QLabel, QGroupBox, QGridLayout, QFrame, - QHBoxLayout, QComboBox, QTextEdit, QLineEdit -) - -from qfluentwidgets import ( - NavigationInterface, NavigationItemPosition, MessageBox, - setTheme, Theme, FluentWindow, NavigationAvatarWidget, - InfoBar, InfoBarPosition, PushButton, FluentIcon -) -from qfluentwidgets import FluentIcon as FIF - -# ===================== 页面基类 ===================== -class BaseInterface(QWidget): - """所有页面的基类,页面内容完全自定义""" - def __init__(self, parent=None): - super().__init__(parent=parent) - -# ===================== 首页界面 ===================== -class HomeInterface(BaseInterface): - def __init__(self, parent=None): - super().__init__(parent=parent) - self.setObjectName("homeInterface") - layout = QVBoxLayout() - self.setLayout(layout) -# ===================== 代码生成页面 ===================== -class DataInterface(BaseInterface): - def __init__(self, parent=None): - super().__init__(parent=parent) - self.setObjectName("dataInterface") - # 空页面示例 - layout = QVBoxLayout() - self.setLayout(layout) - -# ===================== 串口终端界面 ===================== -class SerialTerminalInterface(BaseInterface): - def __init__(self, parent=None): - super().__init__(parent=parent) - self.setObjectName("serialTerminalInterface") - layout = QVBoxLayout() - -# ===================== 设置界面 ===================== -class SettingInterface(BaseInterface): - def __init__(self, parent=None): - super().__init__(parent=parent) - self.setObjectName("settingInterface") - layout = QVBoxLayout() - self.themeBtn = PushButton( - "切换夜间", self, FluentIcon.BRUSH - ) - self.themeBtn.setFixedWidth(120) - self.themeBtn.clicked.connect(self.onThemeBtnClicked) - layout.addWidget(self.themeBtn) - layout.addStretch(1) - self.setLayout(layout) - - # 监听主题变化 - mw = self.window() - if hasattr(mw, "themeChanged"): - mw.themeChanged.connect(self.updateThemeBtn) - - def onThemeBtnClicked(self): - mw = self.window() - if hasattr(mw, "toggleTheme"): - mw.toggleTheme() - - def updateThemeBtn(self, theme): - if theme == Theme.LIGHT: - self.themeBtn.setText("切换夜间") - else: - self.themeBtn.setText("切换白天") -# ===================== 帮助与关于界面 ===================== -class HelpInterface(BaseInterface): - def __init__(self, parent=None): - super().__init__(parent=parent) - self.setObjectName("helpInterface") - layout = QVBoxLayout() - self.setLayout(layout) - -class AboutInterface(BaseInterface): - def __init__(self, parent=None): - super().__init__(parent=parent) - self.setObjectName("aboutInterface") - layout = QVBoxLayout() - self.setLayout(layout) - -# ===================== 主窗口与导航 ===================== -class MainWindow(FluentWindow): - themeChanged = pyqtSignal(Theme) - - def __init__(self): - super().__init__() - self.setWindowTitle("MR_ToolBox") - self.resize(1000, 700) - self.setMinimumSize(800, 600) - setTheme(Theme.LIGHT) - self.theme = Theme.LIGHT - - self.page_registry = [ - (HomeInterface(self), FIF.HOME, "首页", NavigationItemPosition.TOP), - (DataInterface(self), FIF.LIBRARY, "MRobot代码生成", NavigationItemPosition.SCROLL), - (SerialTerminalInterface(self), FIF.COMMAND_PROMPT, "串口终端", NavigationItemPosition.SCROLL), - (SettingInterface(self), FIF.SETTING, "设置", NavigationItemPosition.BOTTOM), - (HelpInterface(self), FIF.HELP, "帮助", NavigationItemPosition.BOTTOM), - (AboutInterface(self), FIF.INFO, "关于", NavigationItemPosition.BOTTOM), - ] - self.initNavigation() - - # 把切换主题按钮放到标题栏右侧 - self.themeBtn = PushButton("切换夜间", self, FluentIcon.BRUSH) - self.themeBtn.setFixedWidth(120) - self.themeBtn.clicked.connect(self.toggleTheme) - self.addTitleBarWidget(self.themeBtn, align=Qt.AlignRight) - - def initNavigation(self): - for page, icon, name, position in self.page_registry: - self.addSubInterface(page, icon, name, position) - self.navigationInterface.addSeparator() - avatar = NavigationAvatarWidget('用户', ':/qfluentwidgets/images/avatar.png') - self.navigationInterface.addWidget( - routeKey='avatar', - widget=avatar, - onClick=self.showUserInfo, - position=NavigationItemPosition.BOTTOM - ) - - def toggleTheme(self): - if self.theme == Theme.LIGHT: - setTheme(Theme.DARK) - self.theme = Theme.DARK - self.themeBtn.setText("切换白天") - else: - setTheme(Theme.LIGHT) - self.theme = Theme.LIGHT - self.themeBtn.setText("切换夜间") - self.themeChanged.emit(self.theme) - self.refreshStyle() - - def refreshStyle(self): - def refresh(widget): - widget.setStyleSheet(widget.styleSheet()) - for child in widget.findChildren(QWidget): - refresh(child) - refresh(self) - - def showUserInfo(self): - MessageBox("用户信息", "当前登录用户:管理员", self).exec() -# ===================== 程序入口 ===================== -def main(): - QApplication.setHighDpiScaleFactorRoundingPolicy( - Qt.HighDpiScaleFactorRoundingPolicy.PassThrough) - QApplication.setAttribute(Qt.ApplicationAttribute.AA_EnableHighDpiScaling) - QApplication.setAttribute(Qt.ApplicationAttribute.AA_UseHighDpiPixmaps) - - app = QApplication(sys.argv) - window = MainWindow() - window.show() - sys.exit(app.exec_()) - -if __name__ == '__main__': - main() \ No newline at end of file diff --git a/img/.DS_Store b/img/.DS_Store deleted file mode 100644 index d67ede835e2529c9521382b5f2feb142c8b38fcc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKOHRWu5SJ36w7A)An1yF)iAyt?~yU(6Ga0QMCZ$4B>ld3yF zXhs@8$9^-mpQAV?BA#!aW<(Pr8p8#PGZX_R{o*|6vP3@1ML9AMp22HJ!dOU+IOGt(_L;^$zm{Iq!$F7E5rat*qbNeRPw%GW>Fv?IM z6bJ>j3dr{%!39gl#!x>UDD(;d9HChab@?5XnB-VGHiqbdv4sLHl>Lgq7LNAhywb5T zv~Xg-e6WwqenVj$9r=^eiA%#MLxE7BtH6;xPUQT**?<4<2E|h-5DNS&1$eZ0Sj@2` yKU;f?le0F#AK_xcYYev`sOV7)t{laea5c0isQ^pI#t<#A_z_SUq6h_kRDmyiJ#r-g diff --git a/img/M.ico b/img/M.ico deleted file mode 100644 index 400b26d9fbbedb8b9abcd8b50c6d28239ec70faa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34573 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

RAv1#DH5Cq~RaGLhsYy%Q7 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%0Ac#NA52rn`K|V-QLN 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 diff --git a/img/M.png b/img/M.png deleted file mode 100644 index 300d879408d099f412d90d9e3f1dc155204db9b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107206 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 z 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 I|4AlK zSZ-i!){MpFZ2ByW&Mkh2`)THU-&Gu&&l0w&VovRGFssIhsjmB zGXSoH?y$jkSX?b967fm*&Qf# z2cb1QBO8~v^#nI;-gcq0!|PX02I`!1W(4-OY_G0?E4urZqk{qMStmuj8W!vC=VuX( z3~}Yv!0cR@uu-10S14YrAe8GEdNv3bS5)|dGQVr&NyH*f$H~}~yWjm9@1nU(t zI}FZg9Jo9o6f28`sl@-6*_W=auszb zogBE&s^&Olw#2Spg>};)HjqbP`POt8WNox%|KMUNtBR?nf4tqLyq+X;guD6f!vtAa zcSjwE2D^?B{^;}r<__s#3mRQ9pfy0hPd=RrUrLH8wBI=%@*vFk-Cmw+Q)~%b#bdK? zNSB9jcphD~G-^qsFTbAqRHM}uFco4zzfk7aza{q9G}(WM)pC~VS+{a*Kuv?I@m2gw zwN16FHdJJjH`OmGdfdz7R?<#8WyLeJ>YVBW!pXRCXr1d~H5oZldTW}G)-*M=t^Z4D z26DPWvr%j7BE8>y;977|h)1Y}pNc7qZcep;?<{=xPYd2uER(NZoYXiLK?jCxSz;G72r* zW4%*$NdBnuUoTu~zrZ>bn73M6)(fhK)bqsuWl363@x4%C-g22Ut8D~1ebm=F{n)l| zsBo%-ecQwmu+Qi1r9bDxXy_~J)ik6317-y;Tbi3T{ zA+Rkil)nZJ#fnYFvYvUx}f0f-YyArP=m#LMTlfVC>@_IBj#BYfHFX3fN>chp&vy=&T4<8h&`q zj?Wd#BZ_%*s0YHd3;p93ha zN`eCC>#DAF~0R7XR}*=i@fbErOw3Q=f3wtf(u&V~ zW?69LSshtcJ)IXRCM~->7BWu`jqCZYgjm3{VOuYVD$Dr1;XgC=jy_moe}~nE?!vvA z_FV{njuP+c?D0<3K0Za=7WVV^!O7C=c(vlBwXT+{j(O<}=D8uDGnvzGk*%WsA)oVgEGLUIqOc`CdMIRQ1DFHE4H{vwC#?BG8(V z)XKlxNw{$j{X1OAp5~OT>algNp?Glbk`hL7-u*c4v9YE3E-p6DMFLb2$lST_%dDF! z4sTjM6J4e=z{)^wbb6~j#tR#8Q;~HqKlu-tU?OK!9KMHRep7XAr(yTKU+^B}d5m+EkI6e;9{24Gph8RNMKf}) z+|3P)*YQg50XwqXQz7kV08wdz{BL0!z4>=v-GQwr&4GdB_HkP6brxUs&p-0-}uBz0O%@{0{M;=7Pn5oS?kMe3j2_23|2p(<1I(T2HM)4s6Y z9WF>1e(n^1K$g#ab@B|+mcrl#w+GZ0{xlUn_omvd1aGxJ16q2GtY6k`=J{q=a03ei z#af1?>VKR9uZw9*`l8{T&}jUYuP-Nhd1fR~lXkhHJI7@`|3F_X&Rv1ox`&?NDi<+=921;WrmcOu7uSOn*3TPxx%Et^UPa7X@>#0h3#!x$ znTJU)I8xaZs00_6qhY@4%ZBOkCN|t=TAAOkM=j>#j=8szwU$`AfvPxU69t^-+A73hrUWsp)p(m>c`~2XgaZk8crN(7{-S&S} zS?i&TS;7czh69O+ zy+7tw|6pf}c>-dLH|LvF^F-U4`z&nxq&HZ$|91JS)sFbPvd{2-TmJ~TAN-^HIqe0Z zHQJBya!uh}deq&L@6N{Je>3CT`J*sV8!mfFctd(zl1 zN!T?uu2&KlGTnZCi;R1W0}Kk=YKm`F;WDwz$}O3f+LAq`vADjw`rT%!ACofbjy(yHV&d0RLgv3r_!(Zsx^Hb0%3Xq{SIs;{eY zJO-}RW)|MNqG1s9Nrl4Bx^io=XZ5y?w4I-}bWu_AyC}-+`#3*bMJrE>T`Xtb%4`J= z4pY_qj&SOB@>Qs-fu`S^3|}fe-efJG8iF-??>&-CcG=@Mm-lPsS9xDwpEW&@g&8_N zE@>-@;VH`3u2MgG)(-KfhDv;l^0s@deEYA;Q=(HAH}{^}?djUJER&5Nmb~d{ICt8S zOBr{)nG$n!vkMY(S2=^?xu@2}7)-*geZkJyz7Ktkbk|&D7(O@+xwrA_>B;mef8&4u zP3SqK-lr3I(*EqBwn?x+bkcxQXbcM<2j$eugCw#J=}TK4cN>G~TlV~CnC{^O+u@VO zuJD#R5$@NWcSb|1Wg1yU%09yy^*keYGPU4GHL)d>v$M3D+7J2kUe@fKKCT0?s6sNh^z@C5VUJ0@;;aJzCL|nSB zZePD&l{K^S!F|BwBA6DFF9uP6-6(|0>so_N*WG(;Xa2k;wkSvQTF zu~5dM5gNUfSaHQJL1HN%^jB_O#x_j@1pkeA(qr&a?~h*7M{+HUxWJydPjxr?+Ajv&TQa{L?fEJ(cRture3?B&a^CpW zFN5Ym>j$bK(T5e{OkFr1RDRS17o`jr z@LgJNy0>_sZMGsE7hJY@Rxfk??SKIp*_p%^iCIj8 z`8kd2U)1sP6;&Md_ksMaT|Yu?ZdgdTs+SQJh4Xp|6f*HPrLC!uItFo|VP;Q5n? z6ZWpxE1GTb^9nSGl`k?xZ_g&W)=(@SS-+sQ>hLQyDsK1W&s$_W_wjMd3!v5z0Rd%S zU*Dn2&IMfo_J@IEMoNCoHAaaU)X;#Qt~FQglYhEFdb2IOZ$jx7e3H7>E*hK-l`o%E zxt}-IhR$h1Ty-<2#$A!s&s=r8oVSvvH}a-=9U|6RYen|t=}}I1z9z#q?yA9MsxQih zL>?{9@y;?hoOcEi0Hw9o#-nZJ`5mB#0He37(l7f%!!#GJuV5&lLlpYQk&OmK0qo6P z*C25Vh>k)59Dv%T!Ez`5)onmL2A4nCO z?ZJ^=XORj-f5B+@C*7Ve!}Kpf1SEsmi)ETx##@aO0k-(Id`}qtvv3Q0nxZnW)y<48&#LQE`I7z8 zOWHg*8bkR=EZ8JAa6eAv8rZ4$`;HL=wayD+s>7(m2F0a-G)H2Kkv<5 zIoIF1$wlLXBjaJa%pEurGsowC{fRz&|y>s|R6<$&LrM{S{TWuhgSNabhg@V#Kr5_>%WcT;$OyZg4I#3x1J=sbst zxmO)oU9!w@yE^yu&-J|fkFZqX4?z?(N(K@8V=5WKtF3QSZOKqy;iJ#f^`iu%ls)dN zf?M>#Q2dUWSBt<;eVdw@(X+v^E~kcHhqKdfoT@fre(&gibP)C%RD!Yn=Ds#I_I4)A zD)DeTALMa2aa+}ed9Btmm7yB4I40~cPhXQmAOW5Zn9QY=jNCIeiLCSR*X9S^I7ABB zCG`#oCfL-_XZrnWSqzyXq}cJ8)&_CTp52wUHhW^riK%!g@Fc+crie5A#wc_n)pS!0 zY&;fovXgn_%6t`{sNNlga5!)gC%XNX`dUA32;W{x*p>(xRP=$G#O7#ynQcjB*qBD^ z%*VM(|H?pFeB^9vL#%T8>Yufg)PG;WHAwncLE?B{1)7$*G-%_!ub8m=akW^QP--KHO-YxLxRHkm(jamL_4~h0XTMt4;reaZlwtl8Wcc(l zh#?*`hNdk^DZ`I~mU-`Gn8W8PxvZLMH5WI0x=Xfc?t0c9R%iX3?rftG*PNOiq4`6* zRchgT(DUz~#L|6`u`+-d)pQ?*#mJ1w&lq?4s zoICx6efn?#qraPxJ}o8b=LvlQt~1)m9M{}Vnj|S;dQe@$cjMyokYv4zbyAY9f$A5j ziU6jow(M)X2TTq8C2dub2<#GbIWaXIe}kC%H3KNz(`f#{LvS(P)K=2A;<3or%Be{6 zxO~pclN8%?jAQKK?(f_88FiBWY{JJ|GwRDYGy>hcTgCp4|1#gwx@QUdDf7DI1>E36 zq{M~;IP$*IzV9ElG3dnn;N+N75^+B^$48H&F%~(6S*(^EV%I|5F+Ae(TJ0#W#597% zP0})7(`;ouDUrnBIq{FC133iQU zNCKVxkvAj?U!dg#%PRdTvP}rTFdF2NLc&<~bW)Lt93P%WCmRlU<;VQ~mJ5d0uTXx) z4@6(Q**v#sw2+l_pMAddu7W0erkJQy68-6j^{d6lPGX|~()ynA)x(3i#>#KObSBh! zEiX^?m9z#ItKl7-wPcwh94a@7EncfAvQ@xGR3n#HMMC=wm;)E_6EQgcmdhJD$gK-uQdFbLeoSb zi=#p&^X~n}=uDZaGZxXCT@)f9M6CfYrHcRk4nZK8L!G)ivgpOvdfYOqcs#b+)p+7h z+p*dZ{hd-vbKpMDf5wAs4WG|qkW7ceD|fdk^IF1GzKI1JH)sx8zGf@h&7#p8*$e*5 zZN_=zN5!8|Z{S3HKjTfT+@5W{*w&WbdFjbP>ohe$-TJt5-$q$TjZF7X8+Npeli~Za z(og}87etEYG$)`iYAkr&3-~#EZzl_sEM~{p>RKkW0wxUPZbJBd1aH$64CSnmHU+VF zd{0M{_q8oW$)Bc>JtAPaC!*w1M!ZNmxg*?gsQPHBA+V`TY%Bawsv}noJ}%?EKFhT! zzoj3G*Oy^5m+7pQ`0)?)nK;T6*Nbmr?cAVM0Y12uE3!Ydwpi2U5Sm%1Hh6Gkw&UJ) z6Q&ADp^zY3Tl`^v;pmfiMlc|L-zsS@WLNCg+IyW|@CePnyUiX?Y)vnXMwJHzuzWl+b59tfVvL)Zml57sH$t)K6_Rju+XCO04 zN?dObZ|{#CDad$A=I6V z`JjP!U*z45x|GuV!T9N1ZUNO&p0S0f^g2ijzgP3lr{TdWiX2hHV4|%U0~CXh_J_uf zPzk~CCK!`qoxdL$nW9e}#v3C>oCtiuV(*)5r1S41E|0v~D_NTg)2B0)N?)h#bm>-G zzAu|rJlo{RGJuyx5A=RGDjXsk^necmQWs=3D1XLWiJl?+;iW{MiqNmqzxVl)4THbVv`MzVWaF z{d$D&Cj8q*0;FGXZs_yRhn7*Nbn=HN^1Sr(KVZxV340D?k@Hp^_Mg{yhjn!w*zX2< zsZ2NWl0I6>aVcDu$FN2-=`YwEncc41leuV_`Ct`{9Og5}7pi)2`4L~eLLS^#h(wQh zI8llGz%JBgytMG{&{tAD$vml7pfu`rjM*PK@NU$J=@i zgR-txkz;pDXyeckr{X#f`bU+_&U<7nPWQ2%Mb_~UAX)vT;ZG>O>V8Qy;rPXHhAVUQC5g#5K61b;w_1$^v0u{_&4I?Rq4Ogj$N*9p)>`nJX7D1lgiZ9IG@C zse!932Ul5UR!gxmth`Ny`VrC87hnQy+<00-Y8(5|zuw&b70N|qXG?qz31g%I-~X#V z%9kGhpE8RCbNKtS*x5Q~sAX@y+jzRcH7+#Z>7U@%sbYz(A;I;^!W?&IrxD*3L&1Y5 z(+$7tTC-yIKhmE)gd?*+QSczAM$xGupI`baL5BHeDM}iiWef&e8$hm!vsS(o=Go?{ z%!R78ftX;Um#60dIzitU5V_>XzgUDqCP>8*>;`J(GNjff_~bkId+2v0+90b1BH;DEdkOj14W)2vuG`76eM+&*rr6d; zzE795Q*-+*C4sNab^dF;K++mX+bYw#TJxqBM=9lktzMJTSxass^Vo%Y*FR3l=O^Q} zRbs)@o!Zi_#VYf3Pfmj|$APJeYe?`Hhy_z>tU)&=qk|ow@V*0pDuX}>$Zj+s;4c^w zAMH(?i#tsJof$%t3XbGwnEFfIWzC%rj$7T7r~#!Gn_*`2SS_X_wu(k{ZHDq_X07cU z=CIMMt1(pQ=i5yR`kEzG)d6`Zb>d;YnSem-a9wRl4KqJ~4JtEV8W9X{JLb{og~-mqICQX5fx}c_wQ-pJ<-?!2?Odxn4U^V z{KoA?uK{6c7ic5L#kbpw2l_lQhaP*ULbuj*?^UFqmvIGw!6u~dZpF=AfC%h#Q_gx9 z$-`V&s4XKu`cd?06HPR+XzZkjm0*f{YM&JX2wqyJNuoYrBs

=nZ|UJ&8A&QR1cR z3?KirpXHr(>veR6IoO6Wt2}}}C#+O3wen-M&MPi`5@u4u#Y&D#hDx_w`Vv|T6oU(l zaw_wpflL(=mPY^t-{1?K28wKVP?EFX_7`P2a8>kif20~pN)f=F>^*J3^ZSRZd#Vxd zPZLs?+aQwQ?G(0XR(m$tP}&7kJyocl;`38fGP&&4#n-=2aEv#K*zB8r!-;RzMk9rf zVd_zX;pA0#)7@((rc&R;%sHYi42L;PxHV1i@4;F{z>Bw!$QKjd{1rSVU6Blfo>E1- z3&|^LeOxV!(~T|miPIu1Q(2EIOl%G!r0ckG?dH1Hrlz{lX({WZR3tRr*G8VZP z?WoXwXw`kWC_?+5v$xptt@XOH_gi1O0*4Z#kGz~MR`_d`l3%<%@KkU$yXRZ&qIFk2 z-styoxy+v}d$&i`m8Z*@0Z*U=x?H;hlA2u(-ZEbDv}4*09rdj&**llrKJxObWas5t z*4KKC+k84Mz7SeoJD>ZC-19);<+l2}bj5d_{&{Cx$<~Kkc3z4-UiIew($}_kzKYJB z{az2a5(H#$3UEm_FpL6rm>Papb4f1$>lLzZ%bu+A$lV=pTLo(i9dCVJ{@im;UiX|6 zNBLtnoJ-n#|M|}ob@9>rzAUletG^$+=!*)Q;tM4opfLxGnt`j(fneIfz`bFGA=PbL zj-+>9dj0aF>GCbxyj>U6X%q&XnxiqdBE&e+r)v3odKOA^GF|f3i zhGZCtO$KXKxlakrDdy?mzV^?i^RnvQ^|wE(`2BvIHS^rkqoHqq$8?;#c`{e2BwEJ( z?9IQce+#Y#W&CNNO@Kfku}C9UD^Pkd=c6LsRfoSnP1c&w^9V>MthnNGB~W$#E!K>?^EWTKYx?$erTFsQN@ly>6+7+< znR97ry9T)Qyub l>O;tnFD@Vk1T+|N|C8?%F1wn!iTMLa$kWx&Wt~$(697~UyO00? diff --git a/img/MR.ico b/img/MR.ico deleted file mode 100644 index ebad3d58b78f3e5ec537a34748488485120bdbd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33309 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 F-~sXhLf!xX diff --git a/img/MR.png b/img/MR.png deleted file mode 100644 index c546f6f1ba2d59a4656adb59f0544c36bd24716f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132709 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 P&L?_0hT0`p>=FM1zNnN` diff --git a/img/MRobot.ico b/img/MRobot.ico deleted file mode 100644 index 004d771688b0a9a387bcc1d1a6a7fbbf3828a070..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14097 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 diff --git a/img/MRobot.png b/img/MRobot.png deleted file mode 100644 index 45240892fee8dd8e5d135f4cbb72a2053473abdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97868 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 Unn0+{ivfH<&vjM5DBD2)7tM9q4FCWD diff --git a/mr_tool_img/MRobot.png b/mr_tool_img/MRobot.png deleted file mode 100644 index 45240892fee8dd8e5d135f4cbb72a2053473abdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97868 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 Unn0+{ivfH<&vjM5DBD2)7tM9q4FCWD diff --git a/pngico.py b/pngico.py deleted file mode 100644 index 8a74659..0000000 --- a/pngico.py +++ /dev/null @@ -1,42 +0,0 @@ -from PIL import Image -import os - -def crop_transparent_background(input_path, output_path): - """ - 裁切 PNG 图片的透明背景并保存。 - - :param input_path: 输入图片路径 - :param output_path: 输出图片路径 - """ - try: - # 打开图片 - img = Image.open(input_path) - - # 确保图片是 RGBA 模式 - if img.mode != "RGBA": - img = img.convert("RGBA") - - # 获取图片的 alpha 通道 - bbox = img.getbbox() - - if bbox: - # 裁切图片 - cropped_img = img.crop(bbox) - # 保存裁切后的图片 - cropped_img.save(output_path, format="PNG") - print(f"图片已保存到: {output_path}") - else: - print("图片没有透明背景或为空。") - except Exception as e: - print(f"处理图片时出错: {e}") - -if __name__ == "__main__": - # 示例:输入和输出路径 - input_file = "C:\Mac\Home\Desktop\MRobot\img\M.png" # 替换为你的输入图片路径 - output_file = "C:\Mac\Home\Desktop\MRobot\img\M.png" # 替换为你的输出图片路径 - - # 检查文件是否存在 - if os.path.exists(input_file): - crop_transparent_background(input_file, output_file) - else: - print(f"输入文件不存在: {input_file}") \ No newline at end of file diff --git a/polynomial.py b/polynomial.py deleted file mode 100644 index f7057eb..0000000 --- a/polynomial.py +++ /dev/null @@ -1,286 +0,0 @@ -import sys -import numpy as np -import pandas as pd -from PyQt5.QtWidgets import ( - QApplication, QWidget, QVBoxLayout, QHBoxLayout, QPushButton, QSpinBox, - QLabel, QTableWidget, QTableWidgetItem, QFileDialog, QTextEdit, - QComboBox, QMessageBox, QHeaderView -) -from PyQt5.QtGui import QFont -from PyQt5.QtCore import Qt -import matplotlib -from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas -from matplotlib.figure import Figure - -class PolyFitApp(QWidget): - def __init__(self): - super().__init__() - self.setWindowTitle("MRobot 多项式拟合工具") - self.resize(1440, 1280) - self.setFont(QFont("微软雅黑", 11)) - self.center() - - self.data_x = [] - self.data_y = [] - self.last_coeffs = None - self.last_xmin = None - self.last_xmax = None - - # 主布局 - main_layout = QHBoxLayout(self) - main_layout.setContentsMargins(20, 20, 20, 20) - main_layout.setSpacing(20) - left_layout = QVBoxLayout() - left_layout.setSpacing(12) - right_layout = QVBoxLayout() - right_layout.setSpacing(12) - main_layout.addLayout(left_layout, 0) - main_layout.addLayout(right_layout, 1) - - # 数据输入区 - self.table = QTableWidget(0, 2) - self.table.setFont(QFont("Consolas", 11)) - self.table.setHorizontalHeaderLabels(["x", "y"]) - self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) - self.table.setSelectionBehavior(QTableWidget.SelectRows) - left_layout.addWidget(self.table) - - btn_row = QHBoxLayout() - self.add_row_btn = QPushButton("添加数据") - self.add_row_btn.setStyleSheet("color: #333;") - self.add_row_btn.clicked.connect(self.add_point_row) - btn_row.addWidget(self.add_row_btn) - - self.del_row_btn = QPushButton("删除选中行") - self.del_row_btn.setStyleSheet("color: #333;") - self.del_row_btn.clicked.connect(self.delete_selected_rows) - btn_row.addWidget(self.del_row_btn) - left_layout.addLayout(btn_row) - - # 导入导出按钮区 - file_btn_row = QHBoxLayout() - self.import_btn = QPushButton("导入Excel文件") - self.import_btn.setStyleSheet("font-weight: bold; color: #333;") - self.import_btn.clicked.connect(self.load_excel) - file_btn_row.addWidget(self.import_btn) - - self.export_btn = QPushButton("导出Excel文件") - self.export_btn.setStyleSheet("font-weight: bold; color: #333;") - self.export_btn.clicked.connect(self.export_excel_and_plot) - file_btn_row.addWidget(self.export_btn) - left_layout.addLayout(file_btn_row) - - # 拟合参数区 - param_layout = QHBoxLayout() - param_layout.addWidget(QLabel("多项式阶数:")) - self.order_spin = QSpinBox() - self.order_spin.setRange(1, 10) - self.order_spin.setValue(2) - param_layout.addWidget(self.order_spin) - left_layout.addLayout(param_layout) - - self.fit_btn = QPushButton("拟合并显示") - self.fit_btn.setStyleSheet("font-weight: bold; color: #333;") - self.fit_btn.clicked.connect(self.fit_and_plot) - left_layout.addWidget(self.fit_btn) - - # 输出区 - self.output = QTextEdit() - self.output.setReadOnly(False) - self.output.setFont(QFont("Consolas", 10)) - self.output.setMaximumHeight(150) - left_layout.addWidget(self.output) - - code_layout = QHBoxLayout() - code_layout.addWidget(QLabel("输出代码格式:")) - self.code_type = QComboBox() - self.code_type.addItems(["C", "C++", "Python"]) - code_layout.addWidget(self.code_type) - self.gen_code_btn = QPushButton("生成函数代码") - self.gen_code_btn.setStyleSheet("color: #333;") - self.gen_code_btn.clicked.connect(self.generate_code) - code_layout.addWidget(self.gen_code_btn) - left_layout.addLayout(code_layout) - - # 拟合曲线区 - self.figure = Figure(figsize=(5, 4)) - self.canvas = FigureCanvas(self.figure) - right_layout.addWidget(self.canvas) - - def center(self): - qr = self.frameGeometry() - cp = QApplication.desktop().availableGeometry().center() - qr.moveCenter(cp) - self.move(qr.topLeft()) - - def add_point_row(self, x_val="", y_val=""): - row = self.table.rowCount() - self.table.insertRow(row) - self.table.setItem(row, 0, QTableWidgetItem(str(x_val))) - self.table.setItem(row, 1, QTableWidgetItem(str(y_val))) - - def delete_selected_rows(self): - selected = self.table.selectionModel().selectedRows() - for idx in sorted(selected, reverse=True): - self.table.removeRow(idx.row()) - - def load_excel(self): - file, _ = QFileDialog.getOpenFileName(self, "选择Excel文件", "", "Excel Files (*.xlsx *.xls)") - if file: - try: - data = pd.read_excel(file, usecols=[0, 1]) - new_x = data.iloc[:, 0].values.tolist() - new_y = data.iloc[:, 1].values.tolist() - for x, y in zip(new_x, new_y): - self.add_point_row(x, y) - QMessageBox.information(self, "成功", "数据导入成功!") - except Exception as e: - QMessageBox.critical(self, "错误", f"读取Excel失败: {e}") - - def export_excel_and_plot(self): - file, _ = QFileDialog.getSaveFileName(self, "导出Excel文件", "", "Excel Files (*.xlsx *.xls)") - if file: - x_list, y_list = [], [] - for row in range(self.table.rowCount()): - try: - x = float(self.table.item(row, 0).text()) - y = float(self.table.item(row, 1).text()) - x_list.append(x) - y_list.append(y) - except Exception: - continue - if not x_list or not y_list: - QMessageBox.warning(self, "导出失败", "没有可导出的数据!") - return - df = pd.DataFrame({'x': x_list, 'y': y_list}) - try: - df.to_excel(file, index=False) - # 导出同名png图像 - png_file = file - if png_file.lower().endswith('.xlsx') or png_file.lower().endswith('.xls'): - png_file = png_file.rsplit('.', 1)[0] + '.png' - else: - png_file = png_file + '.png' - self.figure.savefig(png_file, dpi=150, bbox_inches='tight') - QMessageBox.information(self, "导出成功", f"数据已成功导出到Excel文件!\n图像已导出为:{png_file}") - except Exception as e: - QMessageBox.critical(self, "导出错误", f"导出Excel或图像失败: {e}") - - def get_manual_points(self): - x_list, y_list = [], [] - for row in range(self.table.rowCount()): - try: - x = float(self.table.item(row, 0).text()) - y = float(self.table.item(row, 1).text()) - x_list.append(x) - y_list.append(y) - except Exception: - continue - return x_list, y_list - - def fit_and_plot(self): - matplotlib.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei'] - matplotlib.rcParams['axes.unicode_minus'] = False - matplotlib.rcParams['font.size'] = 14 - self.data_x, self.data_y = self.get_manual_points() - try: - order = int(self.order_spin.value()) - except ValueError: - QMessageBox.warning(self, "输入错误", "阶数必须为整数!") - return - n_points = len(self.data_x) - if n_points < order + 1: - QMessageBox.warning(self, "数据不足", "数据点数量不足以拟合该阶多项式!") - return - x = np.array(self.data_x, dtype=np.float64) - y = np.array(self.data_y, dtype=np.float64) - x_min, x_max = x.min(), x.max() - if x_max - x_min == 0: - QMessageBox.warning(self, "数据错误", "所有x值都相同,无法拟合!") - return - try: - coeffs = np.polyfit(x, y, order) - except Exception as e: - QMessageBox.critical(self, "拟合错误", f"多项式拟合失败:{e}") - return - poly = np.poly1d(coeffs) - expr = "y = " + " + ".join([f"{c:.6g}*x^{order-i}" for i, c in enumerate(coeffs)]) - self.output.setPlainText(f"{expr}\n") - self.figure.clear() - ax = self.figure.add_subplot(111) - ax.scatter(x, y, color='red', label='数据点') - x_fit = np.linspace(x_min, x_max, 200) - y_fit = poly(x_fit) - ax.plot(x_fit, y_fit, label='拟合曲线') - ax.legend() - self.canvas.draw() - self.last_coeffs = coeffs - self.last_xmin = x_min - self.last_xmax = x_max - - def generate_code(self): - if self.last_coeffs is None: - QMessageBox.warning(self, "未拟合", "请先拟合数据!") - return - coeffs = self.last_coeffs - code_type = self.code_type.currentText() - if code_type == "C": - code = self.create_c_function(coeffs) - elif code_type == "C++": - code = self.create_cpp_function(coeffs) - else: - code = self.create_py_function(coeffs) - self.output.setPlainText(code) - - def create_c_function(self, coeffs): - lines = ["#include ", "double polynomial(double x) {", " return "] - n = len(coeffs) - terms = [] - for i, c in enumerate(coeffs): - exp = n - i - 1 - if exp == 0: - terms.append(f"{c:.8g}") - elif exp == 1: - terms.append(f"{c:.8g}*x") - else: - terms.append(f"{c:.8g}*pow(x,{exp})") - lines[-1] += " + ".join(terms) + ";" - lines.append("}") - return "\n".join(lines) - - def create_cpp_function(self, coeffs): - lines = ["#include ", "double polynomial(double x) {", " return "] - n = len(coeffs) - terms = [] - for i, c in enumerate(coeffs): - exp = n - i - 1 - if exp == 0: - terms.append(f"{c:.8g}") - elif exp == 1: - terms.append(f"{c:.8g}*x") - else: - terms.append(f"{c:.8g}*pow(x,{exp})") - lines[-1] += " + ".join(terms) + ";" - lines.append("}") - return "\n".join(lines) - - def create_py_function(self, coeffs): - n = len(coeffs) - lines = ["def polynomial(x):", " return "] - terms = [] - for i, c in enumerate(coeffs): - exp = n - i - 1 - if exp == 0: - terms.append(f"{c:.8g}") - elif exp == 1: - terms.append(f"{c:.8g}*x") - else: - terms.append(f"{c:.8g}*x**{exp}") - lines[-1] += " + ".join(terms) - return "\n".join(lines) - -if __name__ == "__main__": - app = QApplication(sys.argv) - win = PolyFitApp() - win.show() - sys.exit(app.exec_()) \ No newline at end of file diff --git a/src/freertos.c b/src/freertos.c deleted file mode 100644 index c7fefe5..0000000 --- a/src/freertos.c +++ /dev/null @@ -1,131 +0,0 @@ -/* USER CODE BEGIN Header */ -/** - ****************************************************************************** - * File Name : freertos.c - * Description : Code for freertos applications - ****************************************************************************** - * @attention - * - * Copyright (c) 2025 STMicroelectronics. - * All rights reserved. - * - * This software is licensed under terms that can be found in the LICENSE file - * in the root directory of this software component. - * If no LICENSE file comes with this software, it is provided AS-IS. - * - ****************************************************************************** - */ -/* USER CODE END Header */ - -/* Includes ------------------------------------------------------------------*/ -#include "FreeRTOS.h" -#include "task.h" -#include "main.h" -#include "cmsis_os.h" - -/* Private includes ----------------------------------------------------------*/ -/* USER CODE BEGIN Includes */ -#include "task/user_task.h" -/* USER CODE END Includes */ - -/* Private typedef -----------------------------------------------------------*/ -/* USER CODE BEGIN PTD */ - -/* USER CODE END PTD */ - -/* Private define ------------------------------------------------------------*/ -/* USER CODE BEGIN PD */ - -/* USER CODE END PD */ - -/* Private macro -------------------------------------------------------------*/ -/* USER CODE BEGIN PM */ - -/* USER CODE END PM */ - -/* Private variables ---------------------------------------------------------*/ -/* USER CODE BEGIN Variables */ -osThreadId_t initTaskHandle; // 定义 Task_Init 的任务句柄 -/* USER CODE END Variables */ -/* Definitions for defaultTask */ -osThreadId_t defaultTaskHandle; -const osThreadAttr_t defaultTask_attributes = { - .name = "defaultTask", - .stack_size = 128 * 4, - .priority = (osPriority_t) osPriorityNormal, -}; - -/* Private function prototypes -----------------------------------------------*/ -/* USER CODE BEGIN FunctionPrototypes */ - -/* USER CODE END FunctionPrototypes */ - -void StartDefaultTask(void *argument); - -void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */ - -/** - * @brief FreeRTOS initialization - * @param None - * @retval None - */ -void MX_FREERTOS_Init(void) { - /* USER CODE BEGIN Init */ - - /* USER CODE END Init */ - - /* USER CODE BEGIN RTOS_MUTEX */ - /* add mutexes, ... */ - /* USER CODE END RTOS_MUTEX */ - - /* USER CODE BEGIN RTOS_SEMAPHORES */ - /* add semaphores, ... */ - /* USER CODE END RTOS_SEMAPHORES */ - - /* USER CODE BEGIN RTOS_TIMERS */ - /* start timers, add new ones, ... */ - /* USER CODE END RTOS_TIMERS */ - - /* USER CODE BEGIN RTOS_QUEUES */ - /* add queues, ... */ - /* USER CODE END RTOS_QUEUES */ - - /* Create the thread(s) */ - /* creation of defaultTask */ - defaultTaskHandle = osThreadNew(StartDefaultTask, NULL, &defaultTask_attributes); - - /* USER CODE BEGIN RTOS_THREADS */ - initTaskHandle = osThreadNew(Task_Init, NULL, &attr_init); // 创建初始化任务 - /* add threads, ... */ - /* USER CODE END RTOS_THREADS */ - - /* USER CODE BEGIN RTOS_EVENTS */ - /* add events, ... */ - /* USER CODE END RTOS_EVENTS */ - -} - -/* USER CODE BEGIN Header_StartDefaultTask */ -/** - * @brief Function implementing the defaultTask thread. - * @param argument: Not used - * @retval None - */ -/* USER CODE END Header_StartDefaultTask */ -void StartDefaultTask(void *argument) -{ - /* USER CODE BEGIN StartDefaultTask */ - /* Infinite loop */ - // for(;;) - // { - // osDelay(1); - // } - osThreadTerminate(osThreadGetId()); // 结束自身 - /* USER CODE END StartDefaultTask */ -} - -/* Private application code --------------------------------------------------*/ -/* USER CODE BEGIN Application */ - -/* USER CODE END Application */ - diff --git a/开发要求.md b/开发要求.md deleted file mode 100644 index 84970c1..0000000 --- a/开发要求.md +++ /dev/null @@ -1,105 +0,0 @@ -# 嵌入式 代码 - -## 软件功能介绍 - -中心思想: - -- 利用好RTOS和中断,释放CPU性能,保证实时性。 -- 一个项目适配不同型号的机器人和不同的操作手。 - -减少维护的工作量,减少出错的可能性。 - -## 依赖&环境 - -- Windows平台下用CubeMX生成项目,然后用Keil uvesrion进行编辑、烧写和调试。 - -## 使用说明 - -- 环境安装 - - [MDK-ARM](https://www.keil.com/) (必备) - - [STM32CubeMX](https://www.st.com/zh/development-tools/stm32cubemx.html) (可选) - - -- 针对不同板子需要到不同的CubeMX工程文件(DevA.ioc、DevC.ioc)。 - -- (可选)利用CubeMX生成对应的外设初始化代码和Keil工程文件。忽略CAN总线相关错误。 - - - 每次生成代码后,请利用Git丢弃Middlewares文件夹中的所有改变。原因如下。 - - 1. 使用了AC6,与CubeMX默认不匹配,会影响到FreeRTOS的移植。 - 2. 使用了比CubeMX更新的FreeRTOS版本,降版本会导致部分代码无法编译。 - - - 因为已经生成过Keil工程文件,所以只会覆盖以前生成的代码,而不会影响手写的代码。 - - - 每次生成代码后,请在HAL_InitTick函数中添加uwTickPrio = TickPriority; - -- 打开MDK-ARM中的DevC.uvprojx即可进行编辑、烧写或调试。 - -- Keil工程中有两个Target,其中Debug用来调试,不包含编译器优化等;DevC/DevA用来编译输出最终固件。 - -## 文件目录结构&文件用途说明 - -| 文件夹 | 来源 | 内容 | -| ---- | ---- | ---- | -| Core | CubeMX | 包含核心代码,外设初始化,系统初始化等 | -| Doc | 开发者 | 文档 | -| Drivers | CubeMX | CMSIS相关库、STM32 HAL | -| Image | 开发者 | 图片 | -| MDK-ARM | CubeMX | Keil uversion 项目相关文件 | -| Middlewares | 开发者 / CubeMX | 中间件 | -| USB_DEVICE | CubeMX | USB相关文件 | -| User | 开发者 | 手动编写的代码 | -| Utils | 开发者 | 使用到的工具,如CubeMonitor, Matlab | - -| User内 | 内容 | -| ---- | ---- | -| bsp | 文件夹内包含开发板信息,基于STM32 HAL对板载的外设进行控制| -| component | 包含各种组件,自成一体,相互依赖,但不依赖于其他文件夹| -| device | 独立于开发板的设备,依赖于HAL和bsp| -| module | 对机器人各模块的抽象,各模块一起组成机器人| -| task | 独立的任务,module的运行容器,也包含通信、姿态解算等 | - -## 系统介绍 - -### 硬件系统框图 - -| ![步兵嵌入式硬件框图](./Image/步兵嵌入式硬件框图.png?raw=true "步兵嵌入式硬件框图") | -|:--:| -| *步兵嵌入式硬件框图* | - -### 软件流程图 - -| ![步兵嵌入式硬件框图](./Image/嵌入式程序流程图.png?raw=true "步兵嵌入式硬件框图") | -|:--:| -| *步兵嵌入式硬件框图* | - -| ![嵌入式程序结构图](./Image/嵌入式程序结构图.png?raw=true "嵌入式程序结构图") | -|:--:| -| *嵌入式程序结构图* | - -## 原理介绍 - -### 云台控制原理 - -| ![云台控制原理(与PX类似)](./Image/云台控制原理.png?raw=true "嵌入式程序结构图") | -|:--:| -| *云台控制原理(与PX类似)* | - -### 其他参考文献 - -- 软件架构参考[PX4 Architectural Overview](https://dev.px4.io/master/en/concept/architecture.html) - -- 云台控制参考[PX4 Controller Diagrams](https://dev.px4.io/master/en/flight_stack/controller_diagrams.html) - -- 底盘Mixer和CAN的Control Group参考[PX4 Mixing and Actuators](https://dev.px4.io/master/en/concept/mixing.html) - -## TODO -- 给BSP USB print加保护,允许不同进程的使用。 - - 给所有BSP加保护 - - device.c里面加上一个Device_Init(),在里面初始化所有mutex -- CAN设备代码优化。消息解析发送方向。 - - CAN设备动态初始化,保存好几组配置。 - -## Roadmap - -1. 在步兵上完成所有功能。