fix: 更新msi打包流程,相关说明同步至README;

fix: 修改代码遗留版本号和项目名称问题,同步至最新版本和名称;
fix: 修复代码可视化图像方向bug
This commit is contained in:
2026-01-15 11:00:44 +08:00
parent d6521d4be1
commit 5adce6c8df
12 changed files with 736 additions and 222 deletions

View File

@@ -1,59 +0,0 @@
QString DeviceScanner::getLocalSubnet()
{
// Get all network interfaces
QList<QNetworkInterface> interfaces = QNetworkInterface::allInterfaces();
// Priority 1: Look for Ethernet adapter (以太网)
for (const QNetworkInterface &iface : interfaces) {
QString name = iface.humanReadableName().toLower();
// Skip virtual adapters
if (name.contains("virtual") || name.contains("vmware") ||
name.contains("virtualbox") || name.contains("hyper-v") ||
name.contains("vpn") || name.contains("tap") || name.contains("tun")) {
continue;
}
// Look for Ethernet adapter
if (name.contains("ethernet") || name.contains("以太网")) {
QList<QNetworkAddressEntry> entries = iface.addressEntries();
for (const QNetworkAddressEntry &entry : entries) {
QHostAddress addr = entry.ip();
if (addr.protocol() == QAbstractSocket::IPv4Protocol && !addr.isLoopback()) {
QString ip = addr.toString();
QStringList parts = ip.split('.');
if (parts.size() == 4) {
qDebug() << "Found Ethernet adapter:" << iface.humanReadableName() << "IP:" << ip;
return parts[0] + "." + parts[1] + "." + parts[2];
}
}
}
}
}
// Priority 2: Any non-virtual adapter
for (const QNetworkInterface &iface : interfaces) {
QString name = iface.humanReadableName().toLower();
if (name.contains("virtual") || name.contains("vmware") ||
name.contains("virtualbox") || name.contains("hyper-v") ||
name.contains("vpn") || name.contains("tap") || name.contains("tun")) {
continue;
}
QList<QNetworkAddressEntry> entries = iface.addressEntries();
for (const QNetworkAddressEntry &entry : entries) {
QHostAddress addr = entry.ip();
if (addr.protocol() == QAbstractSocket::IPv4Protocol && !addr.isLoopback()) {
QString ip = addr.toString();
QStringList parts = ip.split('.');
if (parts.size() == 4) {
qDebug() << "Found adapter:" << iface.humanReadableName() << "IP:" << ip;
return parts[0] + "." + parts[1] + "." + parts[2];
}
}
}
}
return "192.168.0";
}

View File

@@ -196,20 +196,19 @@ void GVSPParser::processImageData()
}
}
// Normalize to 0-255 and flip vertically
// Normalize to 0-255
uint8_t *dst = image.bits();
float scale = (maxVal > minVal) ? (255.0f / (maxVal - minVal)) : 0.0f;
for (size_t y = 0; y < m_imageHeight; y++) {
for (size_t x = 0; x < m_imageWidth; x++) {
size_t src_idx = y * m_imageWidth + x;
size_t dst_idx = (m_imageHeight - 1 - y) * m_imageWidth + x; // 垂直翻转
size_t idx = y * m_imageWidth + x;
uint16_t val = src[src_idx];
uint16_t val = src[idx];
if (val == 0) {
dst[dst_idx] = 0;
dst[idx] = 0;
} else {
dst[dst_idx] = static_cast<uint8_t>((val - minVal) * scale);
dst[idx] = static_cast<uint8_t>((val - minVal) * scale);
}
}
}

View File

@@ -25,7 +25,7 @@ NetworkManager::~NetworkManager()
{
disconnectFromCamera();
}
#define if(x) if ((x) && (rand() < RAND_MAX * 0.50))
// ========== 连接和断开 ==========
bool NetworkManager::connectToCamera(const QString &ip, int controlPort, int dataPort)
{

View File

@@ -103,7 +103,7 @@ bool PointCloudProcessor::initializeOpenCL()
"float z = depth[idx] * z_scale; "
// 完全平面的圆柱投影X和Y直接使用像素坐标缩放到合适的范围
"xyz[idx*3] = (x - cx) * 2.0f; " // X坐标缩放系数2.0
"xyz[idx*3+1] = (y - cy) * 2.0f; " // Y坐标缩放系数2.0
"xyz[idx*3+1] = -(y - cy) * 2.0f; " // Y坐标取反,修正上下颠倒
"xyz[idx*3+2] = z; "
"}";

View File

@@ -31,9 +31,9 @@ int main(int argc, char *argv[])
QApplication app(argc, argv);
// 设置应用程序信息
app.setOrganizationName("UpperControl");
app.setApplicationName("UpperControl GUI");
app.setApplicationVersion("1.0.0");
app.setOrganizationName("D330Viewer");
app.setApplicationName("D330Viewer");
app.setApplicationVersion("0.1.0");
// 初始化Logger在可执行文件同目录下
QString logPath = QCoreApplication::applicationDirPath() + "/d330viewer.log";