feature add address host name for bury point

This commit is contained in:
alves
2025-12-24 10:45:35 +08:00
parent f121f45390
commit 2b7aee0050
7 changed files with 152 additions and 22 deletions

View File

@@ -17,21 +17,21 @@
#define BURY_POINT "bury_point"
#define BP_START_SOFT "bury_point_start_soft"
#define BP_SOFT_WORKS_TIME "soft_works_time"
#define BP_SOFT_WORKS_TIME "bury_point_soft_works_time"
#define BP_DEIVCE_CONNECT "bury_point_device_connect"
#define BP_CONNECT_DEVICE_ID "device_id"
#define BP_CONNECT_NET_TYPE "net_type"
#define BP_CONNECT_DEVICE_ID "bury_point_device_id"
#define BP_CONNECT_NET_TYPE "bury_point_net_type"
#define BP_LOGIN "bury_point_login"
#define BP_LOGIN_USER_ID "user_id"
#define BP_LOGIN_HTTP_CODE "http_code"
#define BP_LOGIN_USER_ID "bury_point_user_id"
#define BP_LOGIN_HTTP_CODE "bury_point_http_code"
#define BP_VIDEO_START "bury_point_video_start"
#define BP_VIDEO_STATUS "video_status"
#define BP_VIDEO_STATUS "bury_point_video_status"
#define BP_DEVICE_ERROR "bury_point_device_error"
#define BP_DEVICE_ERROR_STATUS "error_status"
#define BP_DEVICE_ERROR_STATUS "bury_point_error_status"
#define BP_UPLOAD "bury_point_upload"
@@ -42,7 +42,7 @@
#define BP_VIDEO_ABNORMAL "bury_point_video_abnormal"
#define BP_SLICE_DURATION "bury_point_slice_duration"
#define BP_SLICE_DURATION_TIME "slice_duration_time"
#define BP_SLICE_DURATION_TIME "bury_point_slice_duration_time"
#define BP_WEB_VIEW "bury_point_webview"
@@ -51,7 +51,7 @@
#define BP_LOCAL_SERVER_ERROR_CODE "bury_point_local_server_error_code"
#define BP_LOCAL_SERVER "bury_point_local_server"
#define BP_LOCAL_SERVER_ERR_CODE "bury_local_server_err_code"
#define BP_LOCAL_SERVER_ERR_CODE "bury_point_local_server_err_code"

View File

@@ -4,7 +4,8 @@
#ifdef _WIN32
#include <windows.h>
#include <Shlobj.h>
#include <iphlpapi.h>
#pragma comment(lib, "iphlpapi.lib")
#elif __APPLE__
#include <stdlib.h>
#endif
@@ -19,6 +20,124 @@ namespace common
return boost::asio::ip::host_name();
}
std::string getMachineId()
{
std::string machineId = std::string();
#ifdef _WIN32
auto wstringTostring = [](std::wstring wTmpStr) -> std::string {
std::string resStr = std::string();
int len = WideCharToMultiByte(CP_UTF8, 0, wTmpStr.c_str(), -1, nullptr, 0, nullptr, nullptr);
if (len <= 0)
return std::string();
std::string desStr(len, 0);
WideCharToMultiByte(CP_UTF8, 0, wTmpStr.c_str(), -1, &desStr[0], len, nullptr, nullptr);
resStr = desStr;
return resStr;
};
HKEY key = NULL;
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Cryptography", 0, KEY_READ | KEY_WOW64_64KEY, &key) == ERROR_SUCCESS) {
wchar_t buffer[1024];
memset(buffer, 0, sizeof(wchar_t) * 1024);
DWORD size = sizeof(buffer);
bool ok = (RegQueryValueEx(key, L"MachineGuid", NULL, NULL, (LPBYTE) buffer, &size) == ERROR_SUCCESS);
RegCloseKey(key);
if (ok) {
machineId = wstringTostring(buffer);
}
}
#elif __APPLE__
FILE* fp = NULL;
char buffer[1024];
memset(buffer, 0, 1024);
io_service_t service = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IOPlatformExpertDevice"));
CFStringRef strRef = (CFStringRef) IORegistryEntryCreateCFProperty(service, CFSTR(kIOPlatformUUIDKey), kCFAllocatorDefault, 0);
CFStringGetCString(strRef, buffer, 1024, kCFStringEncodingMacRoman);
machineId = buffer;
#endif // _WIN32
return machineId;
}
std::string getMacAddress()
{
std::string macAddress = std::string();
#ifndef __APPLE__
ULONG ulBufferSize = 0;
DWORD dwResult = ::GetAdaptersInfo(NULL, &ulBufferSize);
if (ERROR_BUFFER_OVERFLOW != dwResult) {
return std::string();
}
PIP_ADAPTER_INFO pAdapterInfo = (PIP_ADAPTER_INFO) new BYTE[ulBufferSize];
if (!pAdapterInfo) {
return std::string();
}
dwResult = ::GetAdaptersInfo(pAdapterInfo, &ulBufferSize);
if (ERROR_SUCCESS != dwResult) {
delete[] pAdapterInfo;
return std::string();
}
BYTE pMac[MAX_ADAPTER_ADDRESS_LENGTH] = {0};
int nLen = MAX_ADAPTER_ADDRESS_LENGTH;
if (NULL != pAdapterInfo) {
PIP_ADDR_STRING pAddTemp = &(pAdapterInfo->IpAddressList);
if (NULL != pAddTemp) {
for (int i = 0; i < (int) pAdapterInfo->AddressLength; ++i) {
pMac[i] = pAdapterInfo->Address[i];
}
nLen = pAdapterInfo->AddressLength;
}
}
delete[] pAdapterInfo;
auto Encode16 = [](const BYTE* buf, int len) -> std::wstring {
const WCHAR strHex[] = L"0123456789ABCDEF";
std::wstring wstr;
wstr.resize(len * 2);
for (int i = 0; i < len; ++i) {
wstr[i * 2 + 0] = strHex[buf[i] >> 4];
wstr[i * 2 + 1] = strHex[buf[i] & 0xf];
}
return wstr;
};
auto wstringTostring = [](std::wstring wTmpStr) -> std::string {
std::string resStr = std::string();
int len = WideCharToMultiByte(CP_UTF8, 0, wTmpStr.c_str(), -1, nullptr, 0, nullptr, nullptr);
if (len <= 0)
return std::string();
std::string desStr(len, 0);
WideCharToMultiByte(CP_UTF8, 0, wTmpStr.c_str(), -1, &desStr[0], len, nullptr, nullptr);
resStr = desStr;
return resStr;
};
std::wstring strMac = Encode16(pMac, nLen);
macAddress = wstringTostring(strMac);
#else
// todo get mac macaddress
#endif
return macAddress;
}
std::string get_flutter_version()
{

View File

@@ -22,6 +22,10 @@ namespace common
std::string get_pc_name();
std::string get_flutter_version();
} // namespace common
std::string getMachineId();
std::string getMacAddress();
} // namespace common
#endif

View File

@@ -190,9 +190,6 @@ void initSentryEx()
if (!dataBaseDir.empty())
sentry_options_set_database_path(options, dataBaseDir.c_str());
std::string softVersion = "snapmaker_orca_2.2.0_beta2";
sentry_options_set_release(options, softVersion.c_str());
#if defined(_DEBUG) || !defined(NDEBUG)
sentry_options_set_debug(options, 1);
#else
@@ -219,7 +216,17 @@ void initSentryEx()
if (!flutterVersion.empty())
sentry_set_tag("flutter_version", flutterVersion.c_str());
//sentryReportLog(SENTRY_LOG_ERROR, "init sentry error", "initSentry module");
std::string machineID = common::getMachineId();
if (!machineID.empty())
sentry_set_tag("machine_id", machineID.c_str());
std::string macAdress = common::getMacAddress();
if (!macAdress.empty())
sentry_set_tag("macaddress", macAdress.c_str());
std::string pcName = common::get_pc_name();
if (!pcName.empty())
sentry_set_tag("pc_name", pcName.c_str());
}
}

View File

@@ -293,7 +293,7 @@ void HttpServer::start()
server_->io_service.run();
} catch (const std::exception& e) {
BOOST_LOG_TRIVIAL(error) << "HTTP server error: " << e.what();
Slic3r::sentryReportLog(Slic3r::SENTRY_LOG_FATAL,std::string("HttpServer::start ") + e.what(), BP_LOCAL_SERVER);
Slic3r::sentryReportLog(Slic3r::SENTRY_LOG_FATAL,std::string("bury_point_HttpServer::start ") + e.what(), BP_LOCAL_SERVER);
start_http_server = false;
}
});
@@ -315,7 +315,7 @@ void HttpServer::start()
} catch (const std::exception& e) {
BOOST_LOG_TRIVIAL(error) << "Failed to start HTTP server: " << e.what();
std::string error_msg = "Failed to start HTTP server on port " + std::to_string(port) + ": " + e.what();
std::string error_msg = "bury_point_Failed to start HTTP server on port " + std::to_string(port) + ": " + e.what();
Slic3r::sentryReportLog(Slic3r::SENTRY_LOG_FATAL, error_msg.c_str(), BP_LOCAL_SERVER);
start_http_server = false;
throw;
@@ -464,7 +464,7 @@ void HttpServer::start_health_check()
BOOST_LOG_TRIVIAL(info) << "HTTP server restart completed by health check thread";
} catch (const std::exception& e) {
BOOST_LOG_TRIVIAL(error) << "Failed to restart HTTP server: " << e.what();
std::string error_msg = "HTTP server restart failed after health check on port " + std::to_string(port) + ": " + e.what();
std::string error_msg = "bury_point_HTTP server restart failed after health check on port " + std::to_string(port) + ": " + e.what();
Slic3r::sentryReportLog(Slic3r::SENTRY_LOG_ERROR, error_msg.c_str(), BP_LOCAL_SERVER);
}
} else if (start_http_server) {
@@ -662,7 +662,7 @@ std::shared_ptr<HttpServer::Response> HttpServer::bbl_auth_handle_request(const
user_account = user_j["account"].get<std::string>();
} catch (const std::exception& e) {
BOOST_LOG_TRIVIAL(error) << "Failed to parse user profile JSON: " << e.what();
std::string error_msg = "User profile JSON parse error: " + std::string(e.what());
std::string error_msg = "bury_point_User profile JSON parse error: " + std::string(e.what());
Slic3r::sentryReportLog(Slic3r::SENTRY_LOG_ERROR, error_msg.c_str(), BP_LOCAL_SERVER);
}
json j;

View File

@@ -314,7 +314,7 @@ wxWebView* WebView::CreateWebView(wxWindow * parent, wxString const & url)
webView->EnableContextMenu(true);
} else {
BOOST_LOG_TRIVIAL(fatal) << __FUNCTION__ << ": failed. Use fake web view.";
Slic3r::sentryReportLog(Slic3r::SENTRY_LOG_FATAL, "create webview fail and use fakewebview", BP_WEB_VIEW);
Slic3r::sentryReportLog(Slic3r::SENTRY_LOG_FATAL, "bury_point_create webview fail and use fakewebview", BP_WEB_VIEW);
webView = new FakeWebView;
}
webView->SetRefData(new WebViewRef(webView));

View File

@@ -2288,7 +2288,7 @@ void Moonraker_Mqtt::async_camera_start(const std::string& domain, int interval,
callback) {
BOOST_LOG_TRIVIAL(error) << "[Moonraker_Mqtt] 发送启动摄像头监控请求失败";
wcp_loger.add_log("发送启动摄像头监控请求失败", false, "", "Moonraker_Mqtt", "error");
sentryReportLog(SENTRY_LOG_TRACE, "open video cmd error", BP_VIDEO_ABNORMAL);
sentryReportLog(SENTRY_LOG_TRACE, "bury_point_open video cmd error", BP_VIDEO_ABNORMAL);
callback(json::value_t::null);
}
}
@@ -2338,7 +2338,7 @@ void Moonraker_Mqtt::async_canmera_stop(const std::string& domain, std::function
callback) {
BOOST_LOG_TRIVIAL(error) << "[Moonraker_Mqtt] 发送停止摄像头监控请求失败";
wcp_loger.add_log("发送停止摄像头监控请求失败", false, "", "Moonraker_Mqtt", "error");
sentryReportLog(SENTRY_LOG_TRACE, "stop video cmd error", BP_VIDEO_ABNORMAL);
sentryReportLog(SENTRY_LOG_TRACE, "bury_point_stop video cmd error", BP_VIDEO_ABNORMAL);
callback(json::value_t::null);
}
}