示例#1
0
    def get_df(self):
        """
        通过调用 base_setting.AutoSelectTickets得到英文标签
        通过调用import_data.ImportData得到df
        :return:
        """
        # 中文标签
        tickets_list = ["时间",
                        "机组运行模式",
                        "变频器主机igbt温度",
                        "变频器从机igbt温度",
                        "变流器发电机转速",
                        "叶轮速度2",
                        "变频器主机冷却液温度",
                        "变频器主机风扇运行1",
                        "变频器主机水泵运行",
                        "变频器从机冷却液温度",
                        "变频器从机风扇运行1",
                        "变频器从机水泵运行",
                        "变频器主机冷却液压力",
                        "变频器从机冷却液压力"
                        ]
        auto_select_tickets = base_setting.AutoSelectTickets(self.tickets_file_path)
        # 得到英文标签,可能存在缺失情况!
        self.tickets = auto_select_tickets.select_tickets_by_project(self.project_index, tickets_list)
        # 如果df是None 则开启第二种模式,创建df
        if self.df is None:
            # 记录缺失位置
            for i in range(len(self.tickets)):
                if not self.tickets[i]:
                    self.missing_tickets.append(i)
            # 创建一个临时列表用于读取df,倒序移除缺失元素
            # 深拷贝 防止修改原self.tickets
            li = copy.deepcopy(self.tickets)
            for i in range(len(li) - 1, -1, -1):
                if not li[i]:
                    del li[i]

            # 记录缺失位置,用于在df中插入空列

            import__data = import_data.ImportData(self.import_file_path, li)
            self.df = import__data.handle_import_data()
            self.df.insert(0, "time", pd.to_datetime(self.df[li[0]]))
            for i in range(len(self.missing_tickets)):
                self.df.insert(self.missing_tickets[i], self.missing_tickets[i], np.nan)
示例#2
0
    def get_df(self):
        """
        通过调用 base_setting.AutoSelectTickets得到英文标签
        通过调用import_data.ImportData得到df
        :return:
        """
        # 中文标签
        tickets_list = [
            "时间", "机组运行模式", "液压系统压力", "液压泵1开", "液压泵2开", "顺时针偏航", "逆时针偏航",
            "偏航制动出口压力1", "偏航制动出口压力2", "偏航制动入口压力1", "偏航制动入口压力2", "偏航半释放阀",
            "液压主泵处油温", "液压泵出口压力", "液压回油口油温", "叶轮锁定压力1", "叶轮锁定压力2", "叶轮锁蓄能器压力1",
            "叶轮锁蓄能器压力2"
        ]
        auto_select_tickets = base_setting.AutoSelectTickets(
            self.tickets_file_path)
        # 得到英文标签,可能存在缺失情况!
        self.tickets = auto_select_tickets.select_tickets_by_project(
            self.project_index, tickets_list)
        # 如果df是None 则开启第二种模式,创建df
        if self.df is None:
            # 记录缺失位置
            for i in range(len(self.tickets)):
                if not self.tickets[i]:
                    self.missing_tickets.append(i)
            # 创建一个临时列表用于读取df,倒序移除缺失元素
            # 深拷贝 防止修改原self.tickets
            li = copy.deepcopy(self.tickets)
            for i in range(len(li) - 1, -1, -1):
                if not li[i]:
                    del li[i]

            # 记录缺失位置,用于在df中插入空列

            import__data = import_data.ImportData(self.import_file_path, li)
            self.df = import__data.handle_import_data()
            self.df.insert(0, "time", pd.to_datetime(self.df[li[0]]))
            for i in range(len(self.missing_tickets)):
                self.df.insert(self.missing_tickets[i],
                               self.missing_tickets[i], np.nan)
示例#3
0
    def get_df(self):
        """
        如果是小文件模式:
            通过调用 base_setting.AutoSelectTickets得到英文标签
            通过调用import_data.ImportData得到df
        如果是大文件模式:
            直接返回
        :return:
        """
        if self.mode == 1:
            # 中文标签
            print("开始")
            tickets_list = [
                # 齿轮箱 1
                "时间",
                "机组运行模式",
                "齿轮箱主轴承温度",
                "齿轮箱轮毂侧轴承温度",
                "齿轮箱发电机侧轴承温度",
                "齿轮箱油温",
                "齿轮箱离线过滤泵处油温",
                "齿轮箱主泵处油温",
                "润滑油冷却器入口油温",
                "润滑油冷却器出口油温",
                "齿轮箱水泵出口温度",
                "齿轮箱水泵入口温度1",
                "齿轮箱水泵入口温度2",
                "齿轮箱A1口温度",
                "齿轮箱A2口温度",
                "齿轮箱A3口温度",
                "齿轮箱A4口温度",
                "齿轮箱主泵1_1高速",
                "齿轮箱主泵1_2高速",
                "齿轮箱主泵1_1低速",
                "齿轮箱主泵1_2低速",
                "齿轮箱A1口压力",
                "齿轮箱主泵2_1高速",
                "齿轮箱主泵2_2高速",
                "齿轮箱主泵2_1低速",
                "齿轮箱主泵2_2低速",
                "齿轮箱A2口压力",
                "齿轮箱A3口压力",
                "发电机润滑泵3_1",
                "发电机润滑泵3_2",
                "齿轮箱A4口压力",
                "齿轮箱主泵1_1出口压力",
                "齿轮箱主泵1_2出口压力",
                "齿轮箱主泵2_1出口压力",
                "齿轮箱主泵2_2出口压力",
                "齿轮箱冷却泵出口压力",
                "齿轮箱冷却泵",
                "齿轮箱过滤泵",
                "齿轮箱过滤泵出口压力",
                "齿轮箱油位",
                "齿轮箱水泵1启动",
                "齿轮箱水冷风扇1高速启动",
                "齿轮箱水泵2启动",
                "齿轮箱水冷风扇2高速启动",
                "齿轮箱水泵1出口压力",
                "齿轮箱水泵1入口压力",
                "齿轮箱水泵2出口压力",
                "齿轮箱水泵2入口压力",
                # 发电机 2
                "时间",
                "机组运行模式",
                "发电机绕组温度1",
                "发电机绕组温度2",
                "发电机绕组温度3",
                "发电机绕组温度4",
                "发电机绕组温度5",
                "发电机绕组温度6",
                "发电机齿轮箱侧轴承温度",
                "发电机机舱侧轴承温度",
                "变流器功率",
                "发电机空空冷内循环入口温度1",
                "发电机空空冷内循环入口温度2",
                "发电机空空冷内循环出口温度1",
                "发电机空空冷内循环出口温度2",
                "发电机空空冷外循环入口温度1",
                "发电机空空冷外循环入口温度2",
                "发电机空空冷外循环出口温度1",
                "发电机空空冷外循环出口温度2",
                # 变流器 3
                "时间",
                "机组运行模式",
                "变频器主机igbt温度",
                "变频器从机igbt温度",
                "变流器发电机转速",
                "叶轮速度2",
                "变频器主机冷却液温度",
                "变频器主机风扇运行1",
                "变频器主机水泵运行",
                "变频器从机冷却液温度",
                "变频器从机风扇运行1",
                "变频器从机水泵运行",
                "变频器主机冷却液压力",
                "变频器从机冷却液压力",
                # 变桨 4
                "时间",
                "机组运行模式",
                "变桨驱动柜温度1",
                "变桨驱动柜温度2",
                "变桨驱动柜温度3",
                "桨叶角度1A",
                "桨叶角度2A",
                "桨叶角度3A",
                "桨叶角度1B",
                "桨叶角度2B",
                "桨叶角度3B",
                "叶轮速度1",
                "叶轮速度2",
                "风速",
                "变桨电机温度1",
                "变桨电机温度2",
                "变桨电机温度3",
                "变桨驱动柜散热器温度1",
                "变桨驱动柜散热器温度2",
                "变桨驱动柜散热器温度3",
                "变桨后备电源柜温度1",
                "变桨后备电源柜温度2",
                "变桨后备电源柜温度3",
                # 液压 5
                "时间",
                "机组运行模式",
                "液压系统压力",
                "液压泵1开",
                "液压泵2开",
                "顺时针偏航",
                "逆时针偏航",
                "偏航制动出口压力1",
                "偏航制动出口压力2",
                "偏航制动入口压力1",
                "偏航制动入口压力2",
                "偏航半释放阀",
                "液压主泵处油温",
                "液压泵出口压力",
                "液压回油口油温",
                "叶轮锁定压力1",
                "叶轮锁定压力2",
                "叶轮锁蓄能器压力1",
                "叶轮锁蓄能器压力2",
                # 传感器 6
                "时间",
                "机组运行模式",
                "箱式变压器温度",
                "塔筒第一层平台温度",
                "塔基柜温度",
                "机舱高压柜温度",
                "机舱温度",
                "机舱低压柜温度",
                "变频器温度1",
                "变频器温度2",
                "变频器温度3",
                "变频器温度4",
                "变频器温度5",
                "变频器温度6",
                "变频器温度7",
                "变频器温度8",
                "变频器温度9",
                "变频器温度10",
                "变频器温度11",
                "变频器温度12",
                "变频器温度13",
                "变频器温度14",
                "变频器温度15",
                "变频器温度16",
                "变频器温度17"
            ]
            auto_select_tickets = base_setting.AutoSelectTickets(
                self.tickets_file_path)
            self.tickets = auto_select_tickets.select_tickets_by_project(
                self.project_index, tickets_list)
            # 记录缺失位置
            for i in range(len(self.tickets)):
                if not self.tickets[i]:
                    self.missing_tickets.append(i)
            # 创建一个临时列表用于读取df,倒序移除缺失元素
            # 深拷贝 防止修改原self.tickets
            li = copy.deepcopy(self.tickets)
            for i in range(len(li) - 1, -1, -1):
                if not li[i]:
                    del li[i]

            # 记录缺失位置,用于在df中插入空列
            import__data = import_data.ImportData(self.import_file_path, li)
            self.df = import__data.handle_import_data()
            self.df.insert(0, "time", pd.to_datetime(self.df[li[0]]))
            for i in range(len(self.missing_tickets)):
                self.df.insert(self.missing_tickets[i],
                               self.missing_tickets[i], np.nan)
            print("结束")
            self.signal_return_data.emit(
                [int(1), self.df, self.project_index,
                 int(6)])
        elif self.mode == 2:
            """
            大文件则发送
            """
            self.signal_return_data.emit(
                [int(2), None, self.project_index,
                 int(1)])
        self.over()
示例#4
0
    def __init__(self):
        """
            1.载入UI
                1.1 显示内存情况
                1.2给工具栏添加日志文本框
            2.配置界面基本信息
                2.1 导入项目名称
                2.2 初始化导入数据
                2.3 初始化选择项目
                2.4 初始化模式
                2.5 绘图数据
                2.6 配置进度条初始值
                2.7 初始化解压界面
                2.8 是否绘图按钮
            3.绑定事件
                3.1 绑定左击事件
                    3.1.1 绑定导入数据事件
                    3.1.2 绑定选择项目事件
                    3.1.3 绑定运行按钮
                    3.1.4 绑定解压事件
                    3.1.5 绑定添加项目事件
                    3.1.6 绑定修改项目事件
                    3.1.7 绑定帮助事件
                    3.1.8 绑定关于事件
                    3.1.9 绑定列表与tab对应事件
                    3.1.10 绑定是否绘图事件
                3.2绑定右击事件
                3.3 退出事件
            4.自定义信号反馈
                4.1 gearbox区
                    4.1.1 创建gearbox区的绘图
                4.2 generator区
                4.1 pitch区
                4.2 converter区
                4.1 hydraulic区
                4.1 sensor区
            5.创建线程
                5.1 定义新线程
                5.2 定义需要创建线程数量的信号
        """
        super(Ui, self).__init__()
        # from PyQt5.QtWidgets import QGraphicsView
        # QGraphicsView.update()
        # 1 ----------------------------------------载入UI
        self.window = uic.loadUi("UI/main.ui")
        # # 1.1 显示内存情况
        self.window.memory_label = QLabel(self.window)
        self.window.memory_label.setStyleSheet("color:blue")
        self.window.memory_label.setText("")
        self.window.toolBar.addWidget(self.window.memory_label)
        self.timer = QTimer()
        self.refresh_ui()
        # # >>> 1.2 工具栏
        """
        创建log窗口
        默认情况不显示
        绑定工具栏action
        """
        self.log = log_window.UI()
        self.show_log = False
        self.window.Log.triggered.connect(self.open_log)
        # # <<<工具栏结束
        # 2 ----------------------------------------载入界面基础数据开始
        self.base_setting = base_setting.AutoSelectTickets(os.getcwd() + r"/config/tickets.json")
        self.window.select_project_comboBox.addItems(self.base_setting.tickets_data_project_name)
        # # 2.1 设置默认情况下不选择项目,不选择模式
        self.window.select_project_comboBox.setCurrentIndex(-1)
        self.window.mode_comboBox.setCurrentIndex(-1)
        # # 2.2 导入数据初始化
        self.need_deal_data = None
        # # 2.3 选择项目
        self.select_project_index = None
        # # 2.4 初始化模式
        self.mode = 0
        # # 2.5 配置进度条初始值
        self.gb_process = 0
        self.ge_process = 0
        self.pitch_process = 0
        self.co_process = 0
        self.hy_process = 0
        self.se_process = 0
        # # 2.7 初始化解压界面
        # #2.8
        self.is_plot = False
        self.unpack_ui = seven_zip_window.UI()
        # # 2.9 定义结束线程变量
        self.over = 0
        # 3----------------------------------------绑定事件
        # # >>>3.1 左击事件
        # # # 3.1.1 绑定导入数据事件
        self.window.import_data_action.triggered.connect(self.load_data)
        # # # 3.1.2 绑定选择项目事件,选择模式事件
        self.window.select_project_comboBox.currentIndexChanged.connect(self.select_project)
        self.window.mode_comboBox.currentIndexChanged.connect(self.select_mode)
        # # # 3.1.3 绑定运行按钮
        self.window.run_pushButton.clicked.connect(self.run)
        # # # >>> 3.1.4 绑定解压
        self.window.unpack_action.triggered.connect(self.load_unpack)
        # # # >>> 3.1.5 绑定添加项目事件
        self.window.add_project_action.triggered.connect(self.add_project)
        # # # >>> 3.1.6 绑定修改项目事件
        self.window.refactor_project_action.triggered.connect(self.refactor_project)
        # # # >>> 3.1.7 绑定帮助事件
        self.window.help_action.triggered.connect(self.help)
        # # # >>> 3.1.8 绑定关于事件
        self.window.about_action.triggered.connect(self.about)

        # # # >>> 3.1.9 绑定左击列表与页列表对应事件
        self.window.gb_listWidget.itemClicked.connect(self.select_gb_tabWidget_items)
        self.window.ge_listWidget.itemClicked.connect(self.select_ge_tabWidget_items)
        self.window.pitch_listWidget.itemClicked.connect(self.select_pitch_tabWidget_items)
        self.window.co_listWidget.itemClicked.connect(self.select_co_tabWidget_items)
        self.window.hy_listWidget.itemClicked.connect(self.select_hy_tabWidget_items)
        self.window.se_listWidget.itemClicked.connect(self.select_se_tabWidget_items)
        # # # >>> 3.1.10是否绘图
        self.window.plot_comboBox.currentIndexChanged.connect(self.is_draw)
        self.window.plot_comboBox.setCurrentIndex(-1)

        # # <<< 左击事件结束

        # # 3.2 >>>绑定右击事件
        self.window.gb_listWidget.setContextMenuPolicy(3)  # 设置菜单
        # # 3.3 >>> 绑定退出事件
        self.window.closeEvent = self.closeEvent

        # self.window.gb_listWidget.customContextMenuRequested[QPoint].connect(self.change_gearbox_list_color)  # 设置菜单

        # 4 ----------------------------------------自定义信号区
        # # 模型管理
        self.model_manager = model_manager.Manager()
        # # 4.1 gearbox 区
        # # # 4.2.1 gearbox绘图区
        self.gb_graphicsViews = None
        # # # 4.1.2 >>>初始化gearbox线程
        """
            1. 初始化空gearbox
            2.绑定gearbox模块的信号:修改列表框颜色,更新进度
        """
        self.gearbox = grGearBox.GearBox1()
        self.gearbox.signal_gb_progress.connect(self.progress)
        self.gearbox.signal_gb_color.connect(self.change_gearbox_list_color)
        self.gearbox.signal_gb_write_log.connect(self.write_log)
        self.gearbox.signal_gb_over.connect(self.over_threading)

        # # 4.2 generator 区
        # # # 4.2.1 generator绘图区
        self.ge_graphicsViews = None
        # # # 4.2.2 >>>初始化generator线程
        self.generator = grGenerator.Generator1()
        self.generator.signal_ge_progress.connect(self.progress)
        self.generator.signal_ge_color.connect(self.change_generator_list_color)
        self.generator.signal_ge_write_log.connect(self.write_log)
        self.generator.signal_ge_over.connect(self.over_threading)

        # # 4.3 pitch 区
        # # # 4.3.1 pitch绘图区
        self.pitch_graphicsViews = None
        # # # 4.3.2 >>>初始化pitch线程
        self.pitch = grPitch.Pitch1()
        self.pitch.signal_pitch_progress.connect(self.progress)
        self.pitch.signal_pitch_color.connect(self.change_pitch_list_color)
        self.pitch.signal_pitch_write_log.connect(self.write_log)
        self.pitch.signal_pitch_over.connect(self.over_threading)

        # # 4.4 converter 区
        # # # 4.4.1 converter绘图区
        self.co_graphicsViews = None
        # # # 4.4.2 >>>初始化converter线程
        self.converter = grConverter.Converter1()
        self.converter.signal_co_progress.connect(self.progress)
        self.converter.signal_co_color.connect(self.change_converter_list_color)
        self.converter.signal_co_write_log.connect(self.write_log)
        self.converter.signal_co_over.connect(self.over_threading)

        # # 4.5 hydraulic 区
        # # # 4.5.1 hydraulic绘图区
        self.hy_graphicsViews = None
        # # # 4.5.2 >>>初始化hydraulic线程
        self.hydraulic = grHydraulic.Hydraulic1()
        self.hydraulic.signal_hy_progress.connect(self.progress)
        self.hydraulic.signal_hy_color.connect(self.change_hydraulic_list_color)
        self.hydraulic.signal_hy_write_log.connect(self.write_log)
        self.hydraulic.signal_hy_over.connect(self.over_threading)

        # # 4.6 sensor 区
        # # # 4.6.1 sensor绘图区
        self.se_graphicsViews = None
        # # # 4.6.2 >>>初始化sensor线程
        self.sensor = grSensor.Sensor1()
        self.sensor.signal_se_progress.connect(self.progress)
        self.sensor.signal_se_color.connect(self.change_sensor_list_color)
        self.sensor.signal_se_write_log.connect(self.write_log)
        self.sensor.signal_se_over.connect(self.over_threading)

        self.load_draw_timer = QTimer()
        # # # <<<初始化结束

        # # ------------------------------>>>测试区域
        # self.window.run_pushButton.setEnabled(True)
        # self.window.run_pushButton.setEnabled(True)
        self.window.statusBar.showMessage("主界面加载完成")
        # self.load_draw_timer.singleShot(1000, self.load_plot)
        self.window.statusBar.showMessage("请等待绘图界面加载!")
        # # ------------------------------>>>测试区域结束
        # 5 创建线程
        # # 5.1 定义新线程
        # *********************************************************************************###
        # self.gearbox_thread = self.generator_thread = self.pitch_thread = \                #
        #     self.converter_thread = self.hydraulic_thread = self.sensor_thread = QThread() #
        #               此处不能用这种创建方式,不然创建的是同一个进程!!!只是引用了多次               #
        # *********************************************************************************###
        self.gearbox_thread = QThread()
        self.generator_thread = QThread()
        self.pitch_thread = QThread()
        self.converter_thread = QThread()
        self.hydraulic_thread = QThread()
        self.sensor_thread = QThread()
        # # 5.2 定义需要创建线程数量的信号
        self.signal_thread_number.connect(self.start_thread)