# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'untitled_1.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow, QFileDialog
from PyQt5 import QtCore, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(300, 100)
MainWindow.setMinimumSize(QtCore.QSize(300, 100))
MainWindow.setMaximumSize(QtCore.QSize(300, 100))
MainWindow.setStyleSheet("background-color: rgb(255, 255, 255);")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.lineEdit_lujin = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_lujin.setObjectName("lineEdit_lujin")
self.horizontalLayout.addWidget(self.lineEdit_lujin)
self.pushButton_lujin = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_lujin.setObjectName("pushButton_lujin")
self.horizontalLayout.addWidget(self.pushButton_lujin)
self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
spacerItem = QtWidgets.QSpacerItem(214, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_2.addItem(spacerItem)
self.comboBox_leixing = QtWidgets.QComboBox(self.centralwidget)
self.comboBox_leixing.setObjectName("comboBox_leixing")
self.comboBox_leixing.addItem("")
self.comboBox_leixing.addItem("")
self.horizontalLayout_2.addWidget(self.comboBox_leixing)
self.pushButton_jiexi = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_jiexi.setObjectName("pushButton_jiexi")
self.horizontalLayout_2.addWidget(self.pushButton_jiexi)
self.gridLayout.addLayout(self.horizontalLayout_2, 1, 0, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 300, 23))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "IMDS250_原始数据解析"))
self.pushButton_lujin.setText(_translate("MainWindow", "选择文件夹"))
self.comboBox_leixing.setItemText(1, _translate("MainWindow", "平稳原始"))
self.comboBox_leixing.setItemText(0, _translate("MainWindow", "失稳原始"))
self.pushButton_jiexi.setText(_translate("MainWindow", "开始解析"))
class mainWindow (QMainWindow, Ui_MainWindow):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setupUi(self)
self.sjian_dyi()
def sjian_dyi(self):
self.pushButton_lujin.clicked.connect(self.huoqv_dizhi)
self.pushButton_jiexi.clicked.connect(self.yunxing)
def yunxing(self):
data = []
a = self.open_data(str(self.lineEdit_lujin.text()))
for b in a:
data.append("%02x" % b)
"""查看块头数"""
w = 0
jishu = []
for b in data:
if b == "bb":
if data[w + 1] == "66":
jishu.append(w)
w += 1
jishu.append(len(data))
if self.comboBox_leixing.currentText() == "失稳原始":
with open("SW_原始_data.txt", 'a+') as f:
f.write("一位 二位\n")
"""分块"""
for c in range(len(jishu) - 1):
# print(len(data[jishu[c]:jishu[c + 1]]))
if len(data[jishu[c]:jishu[c + 1]]) == 1015808:
self.data_chuli_sw(data[jishu[c]:jishu[c + 1]])
else:
with open("PW_原始_data.txt", 'a+') as a:
a.write("一位横向 一位垂向 一位纵向 二位横向 二位垂向 二位纵向\n")
"""分块"""
for c in range(len(jishu) - 1):
# print(len(data[jishu[c]:jishu[c + 1]]))
if len(data[jishu[c]:jishu[c + 1]]) == 1015808:
self.data_chuli_pw(data[jishu[c]:jishu[c + 1]])
def open_data(self,data):
"""获取数据"""
f = open(data, 'rb')
data_sj = list(f.read())
f.close()
return data_sj
def daxiaoduan(self,data):
"""反转大小端数据"""
data = data[::-1]
return data
def data_jisuan(self,data):
"""数据计算"""
return str(int(data[1] + data[0], 16))
def huoqv_dizhi(self):
""""获取地址"""
fileName1 = QFileDialog.getOpenFileName(self, "选取文件", "./") # 设置文件扩展名过滤,注意用双分号间隔
self.lineEdit_lujin.setText(fileName1[0])
def data_chuli_pw(self,data):
"""
数据处理及存储
"""
"""去块头"""
f = open("PW_原始_data.txt", "a+")
data = data[32:]
"""索引分包"""
for a in range(int(len(data) / 6156)):
data_bao = data[a * 6156:a * 6156 + 6156]
"""去包头"""
data_bao_qvtou = data_bao[12:]
"""计算存储"""
for b in range(512):
if self.data_jisuan(data_bao_qvtou[b * 12:b * 12 + 2]) != "65535" and \
self.data_jisuan(data_bao_qvtou[b * 12 + 2:b * 12 + 4]) != "65535" and \
self.data_jisuan(data_bao_qvtou[b * 12 + 4:b * 12 + 6]) != "65535" and \
self.data_jisuan(data_bao_qvtou[b * 12 + 6:b * 12 + 8]) != "65535" and \
self.data_jisuan(data_bao_qvtou[b * 12 + 8:b * 12 + 10]) != "65535" and \
self.data_jisuan(data_bao_qvtou[b * 12 + 10:b * 12 + 12]) != "65535":
f.write(self.data_jisuan(data_bao_qvtou[b * 12:b * 12 + 2]) + " ")
f.write(self.data_jisuan(data_bao_qvtou[b * 12 + 2:b * 12 + 4]) + " ")
f.write(self.data_jisuan(data_bao_qvtou[b * 12 + 4:b * 12 + 6]) + " ")
f.write(self.data_jisuan(data_bao_qvtou[b * 12 + 6:b * 12 + 8]) + " ")
f.write(self.data_jisuan(data_bao_qvtou[b * 12 + 8:b * 12 + 10]) + " ")
f.write(self.data_jisuan(data_bao_qvtou[b * 12 + 10:b * 12 + 12]) + "\n")
f.close() # 关闭这个文件
return
def data_chuli_sw(self,data):
"""
数据处理及存储
"""
"""去块头"""
f = open("SW_原始_data.txt", "a+")
data = data[32:]
"""索引分包"""
for a in range(int(len(data) / 1036)):
data_bao = data[a * 1036:a * 1036 + 1036]
"""去包头"""
data_bao_qvtou = data_bao[12:]
"""计算存储"""
for b in range(256):
if self.data_jisuan(data_bao_qvtou[b * 4:b * 4 + 2]) != "65535" and self.data_jisuan(data_bao_qvtou[b * 4 + 2:b * 4 + 4]) != "65535":
f.write(self.data_jisuan(data_bao_qvtou[b * 4:b * 4 + 2]) + " ")
f.write(self.data_jisuan(data_bao_qvtou[b * 4 + 2:b * 4 + 4]) + "\n")
f.close() # 关闭这个文件
return
if __name__ == '__main__':
app = QApplication(sys.argv)
mainwindow = mainWindow()
mainwindow.show()
sys.exit(app.exec_())
工作时写的数据解析工具(自用)
最新推荐文章于 2023-03-18 10:45:00 发布