fix send wave bug.

This commit is contained in:
pandx 2025-06-21 17:24:51 +08:00
parent f7d3858765
commit cc5f48f15c

View File

@ -8,7 +8,7 @@ from typing import Tuple, Optional
import matplotlib import matplotlib
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
from PyQt5.QtCore import QTimer from PyQt5.QtCore import QTimer
from PyQt5.QtWidgets import QFrame, QStatusBar, QSizePolicy, QFileDialog from PyQt5.QtWidgets import QFrame, QStatusBar, QSizePolicy, QFileDialog, QApplication, QMainWindow, QWidget
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas, NavigationToolbar2QT from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas, NavigationToolbar2QT
from scipy.fft import fft, fftfreq from scipy.fft import fft, fftfreq
@ -189,7 +189,7 @@ class SocketClientApp(QMainWindow):
self.ipv4_config_button.setEnabled(False) self.ipv4_config_button.setEnabled(False)
self.calibration_config_button.setEnabled(False) self.calibration_config_button.setEnabled(False)
self.get_version_button.setEnabled(False) self.get_version_button.setEnabled(False)
self.ip_input.setText("192.168.0.199") self.ip_input.setText("192.168.0.191")
self.port_input.setText("12345") self.port_input.setText("12345")
# 预留绘图区域 # 预留绘图区域
@ -470,7 +470,7 @@ class SocketClientApp(QMainWindow):
end_time = time.time() end_time = time.time()
execution_time = end_time - self.start_time execution_time = end_time - self.start_time
print(f"结束时间戳: {end_time}") print(f"结束时间戳: {end_time}")
print(f"代码执行时间: {execution_time}") print(f"代码执行时间: {round(execution_time, 3)}")
print(f"speed :{round((self.sampling_rate * 4 * 8) / execution_time, 3)} Kbps") print(f"speed :{round((self.sampling_rate * 4 * 8) / execution_time, 3)} Kbps")
self.process_wave_packet(bytes(self.partial_data)) self.process_wave_packet(bytes(self.partial_data))
self.recv_state = 'WAIT_HEADER' self.recv_state = 'WAIT_HEADER'
@ -534,8 +534,8 @@ class SocketClientApp(QMainWindow):
def process_wave_packet(self, wave_data): def process_wave_packet(self, wave_data):
data = wave_data # 接收所有数据 data = wave_data # 接收所有数据
data = np.frombuffer(data, dtype=np.int32) # 根据实际数据格式转换 data = np.frombuffer(data, dtype=np.int32) # 根据实际数据格式转换
for i in range(min(100, len(data))): # 确保不超过数据长度 for i in range(min(5, len(data))): # 确保不超过数据长度
print(f"{data[i]:1f}", end=" ") print(f"{data[i]:.3f}", end=" ")
print() # 换行 print() # 换行
LSB_32BIT = (2.8 / (2 ** 31)) * ((750 + 287) / 287) * 1000 / 10.2 LSB_32BIT = (2.8 / (2 ** 31)) * ((750 + 287) / 287) * 1000 / 10.2
# LSB_32BIT = (2.8 / (2 ** 31)) * ((750 + 287) / 287) * 1000 # LSB_32BIT = (2.8 / (2 ** 31)) * ((750 + 287) / 287) * 1000
@ -561,16 +561,16 @@ class SocketClientApp(QMainWindow):
# 速度有效值 # 速度有效值
speed_rms_value = calc_vel_pass_rms(self.scaled_data, self.sampling_rate) speed_rms_value = calc_vel_pass_rms(self.scaled_data, self.sampling_rate)
print("速度有效值:", speed_rms_value) print("速度有效值:", round(speed_rms_value, 1))
# 速度峰值 # 速度峰值
speed_vel_p = calc_vel_p(self.scaled_data, self.sampling_rate) speed_vel_p = calc_vel_p(self.scaled_data, self.sampling_rate)
print("速度峰值:", speed_vel_p) print("速度峰值:", round(speed_vel_p, 1))
# 加速度有效值 # 加速度有效值
acc_rms = calc_acc_rms(self.scaled_data, self.sampling_rate) acc_rms = calc_acc_rms(self.scaled_data, self.sampling_rate)
print("加速度有效值:", acc_rms) print("加速度有效值:", round(acc_rms, 1))
# 加速度峰值 # 加速度峰值
acc_p = calc_acc_p(self.scaled_data, self.sampling_rate) acc_p = calc_acc_p(self.scaled_data, self.sampling_rate)
print("加速度峰值:", acc_p) print("加速度峰值:", round(acc_p, 1))
self.acceleration_label_rms.setText(f"加速度有效值:{round(acc_rms, 3)} m/s^2") self.acceleration_label_rms.setText(f"加速度有效值:{round(acc_rms, 3)} m/s^2")
self.acceleration_label_pp.setText(f"加速度峰值:{round(acc_p, 3)} m/s^2") self.acceleration_label_pp.setText(f"加速度峰值:{round(acc_p, 3)} m/s^2")
self.velocity_label_rms.setText(f"速度有效值:{round(speed_rms_value, 3)} mm/s") self.velocity_label_rms.setText(f"速度有效值:{round(speed_rms_value, 3)} mm/s")
@ -657,7 +657,23 @@ class SocketClientApp(QMainWindow):
print(f"Upgrade length: {upgrade_len}, CRC: {crc}") print(f"Upgrade length: {upgrade_len}, CRC: {crc}")
print(f"Total packet size: {len(full_packet)} bytes") print(f"Total packet size: {len(full_packet)} bytes")
self.socket.write(full_packet) # 分包处理每包最大1500字节
max_packet_size = 1500
total_size = len(full_packet)
num_packets = (total_size // max_packet_size) + (1 if total_size % max_packet_size != 0 else 0)
print(f"Total packets: {num_packets}, each up to {max_packet_size} bytes")
# 分包并发送
for i in range(num_packets):
start_index = i * max_packet_size
end_index = min((i + 1) * max_packet_size, total_size)
packet_chunk = full_packet[start_index:end_index]
print(f"Sending packet {i + 1}/{num_packets}, size: {len(packet_chunk)} bytes")
self.socket.write(packet_chunk)
print(f"Packet {i + 1} sent successfully")
time.sleep(0.05)
print("Upgrade packet ready to send (commented out actual send code)") print("Upgrade packet ready to send (commented out actual send code)")
except Exception as e: except Exception as e:
print(f"Upgrade failed: {str(e)}") print(f"Upgrade failed: {str(e)}")