Merge branch 'main' of ssh://gitea.qutcmrt.top:222/Robofish/pyqt_monitor

This commit is contained in:
Robofish 2024-12-18 15:31:56 +08:00
commit 268cf78790
11 changed files with 25 additions and 28 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

BIN
doc/.DS_Store vendored Normal file

Binary file not shown.

BIN
doc/.~程序说明.docx Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 92 KiB

BIN
doc/保存的数据.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 KiB

BIN
doc/加载和绘制.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

BIN
doc/数据预览图.PNG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

BIN
doc/程序说明.docx Normal file

Binary file not shown.

BIN
doc/程序说明.pdf Normal file

Binary file not shown.

View File

@ -201,34 +201,31 @@ class VoltageReaderApp(QMainWindow):
self.message_label.setText("停止读取数据")
def read_data(self):
if self.test_mode:
self.generate_random_waveform()
else:
while self.reading_event.is_set() and self.serial_port:
try:
while self.serial_port.in_waiting > 0:
self.buffer.extend(self.serial_port.read(self.serial_port.in_waiting))
while len(self.buffer) >= self.PACKET_SIZE:
if self.buffer[:2] == bytearray(self.PACKET_HEADER) and self.buffer[self.PACKET_SIZE-1] == self.PACKET_FOOTER:
packet = self.buffer[:self.PACKET_SIZE]
self.buffer = self.buffer[self.PACKET_SIZE:]
raw_values = [packet[2 + i*2] | (packet[3 + i*2] << 8) for i in range(self.NUM_CHANNELS)]
voltages = [(raw / 4096.0) * 3.3 for raw in raw_values]
for i in range(self.NUM_CHANNELS):
self.raw_data[i].append(raw_values[i])
self.data[i].append(voltages[i])
if self.start_time is not None:
elapsed_time = time.time() - self.start_time
self.timestamps.append(elapsed_time)
else:
self.buffer.pop(0)
time.sleep(0.01)
except serial.SerialException as e:
self.message_label.setText(f"读取数据失败: {e}")
self.stop_reading()
except Exception as e:
self.message_label.setText(f"未知错误: {e}")
self.stop_reading()
while self.reading_event.is_set() and self.serial_port:
try:
while self.serial_port.in_waiting > 0:
self.buffer.extend(self.serial_port.read(self.serial_port.in_waiting))
while len(self.buffer) >= self.PACKET_SIZE:
if self.buffer[:2] == bytearray(self.PACKET_HEADER) and self.buffer[self.PACKET_SIZE-1] == self.PACKET_FOOTER:
packet = self.buffer[:self.PACKET_SIZE]
self.buffer = self.buffer[self.PACKET_SIZE:]
raw_values = [packet[2 + i*2] | (packet[3 + i*2] << 8) for i in range(self.NUM_CHANNELS)]
voltages = [(raw / 4096.0) * 3.3 for raw in raw_values]
for i in range(self.NUM_CHANNELS):
self.raw_data[i].append(raw_values[i])
self.data[i].append(voltages[i])
if self.start_time is not None:
elapsed_time = time.time() - self.start_time
self.timestamps.append(elapsed_time)
else:
self.buffer.pop(0)
time.sleep(0.01)
except serial.SerialException as e:
self.message_label.setText(f"读取数据失败: {e}")
self.stop_reading()
except Exception as e:
self.message_label.setText(f"未知错误: {e}")
self.stop_reading()
def generate_random_waveform(self):
while self.reading_event.is_set():