mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-08 23:46:24 -06:00
NEW: add track events for debugging network
Change-Id: I671f91b4af00277236ca71014f8d667109756d00 Signed-off-by: Stone Li <stone.li@bambulab.com>
This commit is contained in:
parent
bd75af4a43
commit
6827b41eb3
13 changed files with 187 additions and 12 deletions
|
@ -262,6 +262,11 @@ namespace GUI {
|
||||||
//check dev_id
|
//check dev_id
|
||||||
if (m_machine_info->dev_id.empty()) return;
|
if (m_machine_info->dev_id.empty()) return;
|
||||||
|
|
||||||
|
// update ota version
|
||||||
|
NetworkAgent* agent = wxGetApp().getAgent();
|
||||||
|
if (agent)
|
||||||
|
agent->track_update_property("dev_ota_version", m_machine_info->get_ota_version());
|
||||||
|
|
||||||
m_simplebook->SetSelection(0);
|
m_simplebook->SetSelection(0);
|
||||||
m_bind_job = std::make_shared<BindJob>(m_status_bar, wxGetApp().plater(), m_machine_info->dev_id, m_machine_info->dev_ip);
|
m_bind_job = std::make_shared<BindJob>(m_status_bar, wxGetApp().plater(), m_machine_info->dev_id, m_machine_info->dev_ip);
|
||||||
m_bind_job->set_event_handle(this);
|
m_bind_job->set_event_handle(this);
|
||||||
|
|
|
@ -3451,6 +3451,7 @@ int MachineObject::parse_json(std::string payload)
|
||||||
module_vers.emplace(ver_info.name, ver_info);
|
module_vers.emplace(ver_info.name, ver_info);
|
||||||
}
|
}
|
||||||
parse_version_func();
|
parse_version_func();
|
||||||
|
|
||||||
bool get_version_result = true;
|
bool get_version_result = true;
|
||||||
if (j["info"].contains("result"))
|
if (j["info"].contains("result"))
|
||||||
if (j["info"]["result"].get<std::string>() == "fail")
|
if (j["info"]["result"].get<std::string>() == "fail")
|
||||||
|
|
|
@ -1127,9 +1127,11 @@ void GUI_App::post_init()
|
||||||
//BBS: check new version
|
//BBS: check new version
|
||||||
this->check_new_version();
|
this->check_new_version();
|
||||||
//BBS: check privacy version
|
//BBS: check privacy version
|
||||||
if (is_user_login())
|
if (is_user_login()) {
|
||||||
this->check_privacy_version(0);
|
this->check_privacy_version(0);
|
||||||
|
|
||||||
|
this->check_track_enable();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3809,12 +3811,29 @@ void GUI_App::on_user_login_handle(wxCommandEvent &evt)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GUI_App::check_track_enable()
|
||||||
|
{
|
||||||
|
if (app_config && app_config->get("firstguide", "privacyuse") == "true") {
|
||||||
|
//enable track event
|
||||||
|
json header_json;
|
||||||
|
header_json["ver"] = SLIC3R_VERSION;
|
||||||
|
wxString os_desc = wxGetOsDescription();
|
||||||
|
int major = 0, minor = 0, micro = 0;
|
||||||
|
header_json["os"] = std::string(os_desc.ToUTF8());
|
||||||
|
if (m_agent) {
|
||||||
|
m_agent->track_header(header_json.dump());
|
||||||
|
m_agent->track_enable(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void GUI_App::on_user_login(wxCommandEvent &evt)
|
void GUI_App::on_user_login(wxCommandEvent &evt)
|
||||||
{
|
{
|
||||||
if (!m_agent) { return; }
|
if (!m_agent) { return; }
|
||||||
int online_login = evt.GetInt();
|
int online_login = evt.GetInt();
|
||||||
// check privacy before handle
|
// check privacy before handle
|
||||||
check_privacy_version(online_login);
|
check_privacy_version(online_login);
|
||||||
|
check_track_enable();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GUI_App::is_studio_active()
|
bool GUI_App::is_studio_active()
|
||||||
|
|
|
@ -442,6 +442,7 @@ public:
|
||||||
void on_check_privacy_update(wxCommandEvent &evt);
|
void on_check_privacy_update(wxCommandEvent &evt);
|
||||||
bool check_privacy_update();
|
bool check_privacy_update();
|
||||||
void check_privacy_version(int online_login = 0);
|
void check_privacy_version(int online_login = 0);
|
||||||
|
void check_track_enable();
|
||||||
|
|
||||||
static bool catch_error(std::function<void()> cb, const std::string& err);
|
static bool catch_error(std::function<void()> cb, const std::string& err);
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ void BindJob::process()
|
||||||
long offset = tz.GetOffset();
|
long offset = tz.GetOffset();
|
||||||
std::string timezone = get_timezone_utc_hm(offset);
|
std::string timezone = get_timezone_utc_hm(offset);
|
||||||
|
|
||||||
int result = m_agent->bind(m_dev_ip, timezone,
|
int result = m_agent->bind(m_dev_ip, m_dev_id, timezone,
|
||||||
[this, &curr_percent, &msg](int stage, int code, std::string info) {
|
[this, &curr_percent, &msg](int stage, int code, std::string info) {
|
||||||
if (stage == BBL::BindJobStage::LoginStageConnect) {
|
if (stage == BBL::BindJobStage::LoginStageConnect) {
|
||||||
curr_percent = 15;
|
curr_percent = 15;
|
||||||
|
|
|
@ -806,6 +806,11 @@ void MainFrame::shutdown()
|
||||||
m_plater->get_mouse3d_controller().save_config(*wxGetApp().app_config);
|
m_plater->get_mouse3d_controller().save_config(*wxGetApp().app_config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// stop agent
|
||||||
|
NetworkAgent* agent = wxGetApp().getAgent();
|
||||||
|
if (agent)
|
||||||
|
agent->track_enable(false);
|
||||||
|
|
||||||
// Stop the background thread of the removable drive manager, so that no new updates will be sent to the Plater.
|
// Stop the background thread of the removable drive manager, so that no new updates will be sent to the Plater.
|
||||||
//wxGetApp().removable_drive_manager()->shutdown();
|
//wxGetApp().removable_drive_manager()->shutdown();
|
||||||
//stop listening for messages from other instances
|
//stop listening for messages from other instances
|
||||||
|
|
|
@ -228,14 +228,15 @@ void MediaFilePanel::SetMachineObject(MachineObject* obj)
|
||||||
m_button_download->Enable(e.GetInt() > 0);
|
m_button_download->Enable(e.GetInt() > 0);
|
||||||
});
|
});
|
||||||
fs->Bind(EVT_MODE_CHANGED, &MediaFilePanel::modeChanged, this);
|
fs->Bind(EVT_MODE_CHANGED, &MediaFilePanel::modeChanged, this);
|
||||||
fs->Bind(EVT_STATUS_CHANGED, [this, wfs = boost::weak_ptr(fs)](auto &e) {
|
fs->Bind(EVT_STATUS_CHANGED, [this, wfs = boost::weak_ptr(fs)](auto& e) {
|
||||||
e.Skip();
|
e.Skip();
|
||||||
boost::shared_ptr fs(wfs.lock());
|
boost::shared_ptr fs(wfs.lock());
|
||||||
if (m_image_grid->GetFileSystem() != fs) // canceled
|
if (m_image_grid->GetFileSystem() != fs) // canceled
|
||||||
return;
|
return;
|
||||||
ScalableBitmap icon;
|
ScalableBitmap icon;
|
||||||
wxString msg;
|
wxString msg;
|
||||||
switch (e.GetInt()) {
|
int status = e.GetInt();
|
||||||
|
switch (status) {
|
||||||
case PrinterFileSystem::Initializing: icon = m_bmp_loading; msg = _L("Initializing..."); break;
|
case PrinterFileSystem::Initializing: icon = m_bmp_loading; msg = _L("Initializing..."); break;
|
||||||
case PrinterFileSystem::Connecting: icon = m_bmp_loading; msg = _L("Connecting..."); break;
|
case PrinterFileSystem::Connecting: icon = m_bmp_loading; msg = _L("Connecting..."); break;
|
||||||
case PrinterFileSystem::Failed: icon = m_bmp_failed; msg = _L("Connect failed [%d]!"); break;
|
case PrinterFileSystem::Failed: icon = m_bmp_failed; msg = _L("Connect failed [%d]!"); break;
|
||||||
|
@ -246,6 +247,53 @@ void MediaFilePanel::SetMachineObject(MachineObject* obj)
|
||||||
m_image_grid->SetStatus(icon, msg);
|
m_image_grid->SetStatus(icon, msg);
|
||||||
if (e.GetInt() == PrinterFileSystem::Initializing)
|
if (e.GetInt() == PrinterFileSystem::Initializing)
|
||||||
fetchUrl(boost::weak_ptr(fs));
|
fetchUrl(boost::weak_ptr(fs));
|
||||||
|
|
||||||
|
if (status == PrinterFileSystem::Failed
|
||||||
|
|| status == PrinterFileSystem::ListReady) {
|
||||||
|
json j;
|
||||||
|
j["code"] = fs->GetLastError();
|
||||||
|
j["dev_id"] = m_machine;
|
||||||
|
j["dev_ip"] = m_lan_ip;
|
||||||
|
NetworkAgent* agent = wxGetApp().getAgent();
|
||||||
|
if (status == PrinterFileSystem::Failed) {
|
||||||
|
j["result"] = "failed";
|
||||||
|
if (agent)
|
||||||
|
agent->track_event("download_video_conn", j.dump());
|
||||||
|
} else if (status == PrinterFileSystem::ListReady) {
|
||||||
|
j["result"] = "success";
|
||||||
|
if (agent)
|
||||||
|
agent->track_event("download_video_conn", j.dump());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
fs->Bind(EVT_DOWNLOAD, [this, wfs = boost::weak_ptr(fs)](auto& e) {
|
||||||
|
e.Skip();
|
||||||
|
boost::shared_ptr fs(wfs.lock());
|
||||||
|
if (m_image_grid->GetFileSystem() != fs) // canceled
|
||||||
|
return;
|
||||||
|
|
||||||
|
int result = e.GetExtraLong();
|
||||||
|
NetworkAgent* agent = wxGetApp().getAgent();
|
||||||
|
if (result > 1 || result == 0) {
|
||||||
|
json j;
|
||||||
|
j["code"] = result;
|
||||||
|
j["dev_id"] = m_machine;
|
||||||
|
j["dev_ip"] = m_lan_ip;
|
||||||
|
if (result > 1) {
|
||||||
|
// download failed
|
||||||
|
j["result"] = "failed";
|
||||||
|
if (agent) {
|
||||||
|
agent->track_event("download_video", j.dump());
|
||||||
|
}
|
||||||
|
} else if (result == 0) {
|
||||||
|
// download success
|
||||||
|
j["result"] = "success";
|
||||||
|
if (agent) {
|
||||||
|
agent->track_event("download_video", j.dump());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
});
|
});
|
||||||
if (IsShown()) fs->Start();
|
if (IsShown()) fs->Start();
|
||||||
}
|
}
|
||||||
|
|
|
@ -233,6 +233,19 @@ void MediaPlayCtrl::Stop(wxString const &msg)
|
||||||
} else if (!msg.IsEmpty()) {
|
} else if (!msg.IsEmpty()) {
|
||||||
SetStatus(msg, false);
|
SetStatus(msg, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_failed_code != 0) {
|
||||||
|
json j;
|
||||||
|
j["stage"] = std::to_string(m_last_state);
|
||||||
|
j["dev_id"] = m_machine;
|
||||||
|
j["dev_ip"] = m_lan_ip;
|
||||||
|
j["result"] = "failed";
|
||||||
|
j["code"] = m_failed_code;
|
||||||
|
NetworkAgent* agent = wxGetApp().getAgent();
|
||||||
|
if (agent)
|
||||||
|
agent->track_event("start_liveview", j.dump());
|
||||||
|
}
|
||||||
|
|
||||||
++m_failed_retry;
|
++m_failed_retry;
|
||||||
if (m_failed_code != 0 && !m_tutk_support && (m_failed_retry > 1 || m_user_triggered)) {
|
if (m_failed_code != 0 && !m_tutk_support && (m_failed_retry > 1 || m_user_triggered)) {
|
||||||
m_next_retry = wxDateTime(); // stop retry
|
m_next_retry = wxDateTime(); // stop retry
|
||||||
|
@ -369,6 +382,18 @@ void MediaPlayCtrl::onStateChanged(wxMediaEvent &event)
|
||||||
if (size.GetWidth() > 1000) {
|
if (size.GetWidth() > 1000) {
|
||||||
m_last_state = state;
|
m_last_state = state;
|
||||||
SetStatus(_L("Playing..."), false);
|
SetStatus(_L("Playing..."), false);
|
||||||
|
|
||||||
|
// track event
|
||||||
|
json j;
|
||||||
|
j["stage"] = std::to_string(m_last_state);
|
||||||
|
j["dev_id"] = m_machine;
|
||||||
|
j["dev_ip"] = m_lan_ip;
|
||||||
|
j["result"] = "success";
|
||||||
|
j["code"] = 0;
|
||||||
|
NetworkAgent* agent = wxGetApp().getAgent();
|
||||||
|
if (agent)
|
||||||
|
agent->track_event("start_liveview", j.dump());
|
||||||
|
|
||||||
m_failed_retry = 0;
|
m_failed_retry = 0;
|
||||||
m_failed_code = 0;
|
m_failed_code = 0;
|
||||||
boost::unique_lock lock(m_mutex);
|
boost::unique_lock lock(m_mutex);
|
||||||
|
|
|
@ -481,14 +481,12 @@ void PrinterFileSystem::DownloadNextFile()
|
||||||
download->index = FindFile(download->index, download->name);
|
download->index = FindFile(download->index, download->name);
|
||||||
if (download->index != size_t(-1)) {
|
if (download->index != size_t(-1)) {
|
||||||
int progress = data.size * 100 / data.total;
|
int progress = data.size * 100 / data.total;
|
||||||
if (result > CONTINUE)
|
|
||||||
progress = -2;
|
|
||||||
auto & file = m_file_list[download->index];
|
auto & file = m_file_list[download->index];
|
||||||
if (result == ERROR_CANCEL)
|
if (result == ERROR_CANCEL)
|
||||||
file.flags &= ~FF_DOWNLOAD;
|
file.flags &= ~FF_DOWNLOAD;
|
||||||
else if (file.progress != progress) {
|
else if (file.progress != progress) {
|
||||||
file.progress = progress;
|
file.progress = progress;
|
||||||
SendChangedEvent(EVT_DOWNLOAD, download->index, file.path, data.size);
|
SendChangedEvent(EVT_DOWNLOAD, download->index, file.path, result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (result != CONTINUE) DownloadNextFile();
|
if (result != CONTINUE) DownloadNextFile();
|
||||||
|
|
|
@ -2228,6 +2228,11 @@ void SelectMachineDialog::on_ok()
|
||||||
wxGetApp().show_ip_address_enter_dialog();
|
wxGetApp().show_ip_address_enter_dialog();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// update ota version
|
||||||
|
NetworkAgent* agent = wxGetApp().getAgent();
|
||||||
|
if (agent)
|
||||||
|
agent->track_update_property("dev_ota_version", obj_->get_ota_version());
|
||||||
|
|
||||||
m_print_job->start();
|
m_print_job->start();
|
||||||
BOOST_LOG_TRIVIAL(info) << "print_job: start print job";
|
BOOST_LOG_TRIVIAL(info) << "print_job: start print job";
|
||||||
}
|
}
|
||||||
|
|
|
@ -2445,7 +2445,7 @@ bool StatusPanel::check_axis_z_at_home(MachineObject* obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatusPanel::on_axis_ctrl_z_up_10(wxCommandEvent &event)
|
void StatusPanel::on_axis_ctrl_z_up_10(wxCommandEvent &event)
|
||||||
{
|
{
|
||||||
if (obj) {
|
if (obj) {
|
||||||
obj->command_axis_control("Z", 1.0, -10.0f, 900);
|
obj->command_axis_control("Z", 1.0, -10.0f, 900);
|
||||||
if (!check_axis_z_at_home(obj))
|
if (!check_axis_z_at_home(obj))
|
||||||
|
|
|
@ -97,6 +97,10 @@ func_get_profile_3mf NetworkAgent::get_profile_3mf_ptr = nullptr;
|
||||||
func_get_model_publish_url NetworkAgent::get_model_publish_url_ptr = nullptr;
|
func_get_model_publish_url NetworkAgent::get_model_publish_url_ptr = nullptr;
|
||||||
func_get_model_mall_home_url NetworkAgent::get_model_mall_home_url_ptr = nullptr;
|
func_get_model_mall_home_url NetworkAgent::get_model_mall_home_url_ptr = nullptr;
|
||||||
func_get_my_profile NetworkAgent::get_my_profile_ptr = nullptr;
|
func_get_my_profile NetworkAgent::get_my_profile_ptr = nullptr;
|
||||||
|
func_track_enable NetworkAgent::track_enable_ptr = nullptr;
|
||||||
|
func_track_event NetworkAgent::track_event_ptr = nullptr;
|
||||||
|
func_track_header NetworkAgent::track_header_ptr = nullptr;
|
||||||
|
func_track_update_property NetworkAgent::track_update_property_ptr = nullptr;
|
||||||
|
|
||||||
|
|
||||||
NetworkAgent::NetworkAgent()
|
NetworkAgent::NetworkAgent()
|
||||||
|
@ -240,6 +244,10 @@ int NetworkAgent::initialize_network_module(bool using_backup)
|
||||||
get_model_publish_url_ptr = reinterpret_cast<func_get_model_publish_url>(get_network_function("bambu_network_get_model_publish_url"));
|
get_model_publish_url_ptr = reinterpret_cast<func_get_model_publish_url>(get_network_function("bambu_network_get_model_publish_url"));
|
||||||
get_model_mall_home_url_ptr = reinterpret_cast<func_get_model_mall_home_url>(get_network_function("bambu_network_get_model_mall_home_url"));
|
get_model_mall_home_url_ptr = reinterpret_cast<func_get_model_mall_home_url>(get_network_function("bambu_network_get_model_mall_home_url"));
|
||||||
get_my_profile_ptr = reinterpret_cast<func_get_my_profile>(get_network_function("bambu_network_get_my_profile"));
|
get_my_profile_ptr = reinterpret_cast<func_get_my_profile>(get_network_function("bambu_network_get_my_profile"));
|
||||||
|
track_enable_ptr = reinterpret_cast<func_track_enable>(get_network_function("bambu_network_track_enable"));
|
||||||
|
track_event_ptr = reinterpret_cast<func_track_event>(get_network_function("bambu_network_track_event"));
|
||||||
|
track_header_ptr = reinterpret_cast<func_track_header>(get_network_function("bambu_network_track_header"));
|
||||||
|
track_update_property_ptr = reinterpret_cast<func_track_update_property>(get_network_function("bambu_network_track_update_property"));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -336,6 +344,10 @@ int NetworkAgent::unload_network_module()
|
||||||
get_model_publish_url_ptr = nullptr;
|
get_model_publish_url_ptr = nullptr;
|
||||||
get_model_mall_home_url_ptr = nullptr;
|
get_model_mall_home_url_ptr = nullptr;
|
||||||
get_my_profile_ptr = nullptr;
|
get_my_profile_ptr = nullptr;
|
||||||
|
track_enable_ptr = nullptr;
|
||||||
|
track_event_ptr = nullptr;
|
||||||
|
track_header_ptr = nullptr;
|
||||||
|
track_update_property_ptr = nullptr;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -787,11 +799,11 @@ std::string NetworkAgent::build_login_info()
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int NetworkAgent::bind(std::string dev_ip, std::string timezone, OnUpdateStatusFn update_fn)
|
int NetworkAgent::bind(std::string dev_ip, std::string dev_id, std::string timezone, OnUpdateStatusFn update_fn)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
if (network_agent && bind_ptr) {
|
if (network_agent && bind_ptr) {
|
||||||
ret = bind_ptr(network_agent, dev_ip, timezone, update_fn);
|
ret = bind_ptr(network_agent, dev_ip, dev_id, timezone, update_fn);
|
||||||
if (ret)
|
if (ret)
|
||||||
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(" error: network_agent=%1%, ret=%2%, dev_ip=%3%, timezone=%4%")
|
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(" error: network_agent=%1%, ret=%2%, dev_ip=%3%, timezone=%4%")
|
||||||
%network_agent %ret %dev_ip %timezone;
|
%network_agent %ret %dev_ip %timezone;
|
||||||
|
@ -1130,4 +1142,48 @@ int NetworkAgent::get_my_profile(std::string token, unsigned int *http_code, std
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int NetworkAgent::track_enable(bool enable)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
if (network_agent && track_enable_ptr) {
|
||||||
|
ret = track_enable_ptr(network_agent, enable);
|
||||||
|
if (ret)
|
||||||
|
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format("error network_agnet=%1%, ret = %2%") % network_agent % ret;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int NetworkAgent::track_event(std::string evt_key, std::string content)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
if (network_agent && track_event_ptr) {
|
||||||
|
ret = track_event_ptr(network_agent, evt_key, content);
|
||||||
|
if (ret)
|
||||||
|
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format("error network_agnet=%1%, ret = %2%") % network_agent % ret;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int NetworkAgent::track_header(std::string header)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
if (network_agent && track_header_ptr) {
|
||||||
|
ret = track_header_ptr(network_agent, header);
|
||||||
|
if (ret)
|
||||||
|
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format("error network_agnet=%1%, ret = %2%") % network_agent % ret;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int NetworkAgent::track_update_property(std::string name, std::string value, std::string type)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
if (network_agent && track_update_property_ptr) {
|
||||||
|
ret = track_update_property_ptr(network_agent, name, value, type);
|
||||||
|
if (ret)
|
||||||
|
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format("error network_agnet=%1%, ret = %2%") % network_agent % ret;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
} //namespace
|
} //namespace
|
||||||
|
|
|
@ -45,7 +45,7 @@ typedef std::string (*func_get_user_nickanme)(void *agent);
|
||||||
typedef std::string (*func_build_login_cmd)(void *agent);
|
typedef std::string (*func_build_login_cmd)(void *agent);
|
||||||
typedef std::string (*func_build_logout_cmd)(void *agent);
|
typedef std::string (*func_build_logout_cmd)(void *agent);
|
||||||
typedef std::string (*func_build_login_info)(void *agent);
|
typedef std::string (*func_build_login_info)(void *agent);
|
||||||
typedef int (*func_bind)(void *agent, std::string dev_ip, std::string timezone, OnUpdateStatusFn update_fn);
|
typedef int (*func_bind)(void *agent, std::string dev_ip, std::string dev_id, std::string timezone, OnUpdateStatusFn update_fn);
|
||||||
typedef int (*func_unbind)(void *agent, std::string dev_id);
|
typedef int (*func_unbind)(void *agent, std::string dev_id);
|
||||||
typedef std::string (*func_get_bambulab_host)(void *agent);
|
typedef std::string (*func_get_bambulab_host)(void *agent);
|
||||||
typedef std::string (*func_get_user_selected_machine)(void *agent);
|
typedef std::string (*func_get_user_selected_machine)(void *agent);
|
||||||
|
@ -77,6 +77,10 @@ typedef int (*func_get_profile_3mf)(void *agent, BBLProfile* profile);
|
||||||
typedef int (*func_get_model_publish_url)(void *agent, std::string* url);
|
typedef int (*func_get_model_publish_url)(void *agent, std::string* url);
|
||||||
typedef int (*func_get_model_mall_home_url)(void *agent, std::string* url);
|
typedef int (*func_get_model_mall_home_url)(void *agent, std::string* url);
|
||||||
typedef int (*func_get_my_profile)(void *agent, std::string token, unsigned int *http_code, std::string *http_body);
|
typedef int (*func_get_my_profile)(void *agent, std::string token, unsigned int *http_code, std::string *http_body);
|
||||||
|
typedef int (*func_track_enable)(void *agent, bool enable);
|
||||||
|
typedef int (*func_track_event)(void *agent, std::string evt_key, std::string content);
|
||||||
|
typedef int (*func_track_header)(void *agent, std::string header);
|
||||||
|
typedef int (*func_track_update_property)(void *agent, std::string name, std::string value, std::string type);
|
||||||
|
|
||||||
|
|
||||||
//the NetworkAgent class
|
//the NetworkAgent class
|
||||||
|
@ -130,7 +134,7 @@ public:
|
||||||
std::string build_login_cmd();
|
std::string build_login_cmd();
|
||||||
std::string build_logout_cmd();
|
std::string build_logout_cmd();
|
||||||
std::string build_login_info();
|
std::string build_login_info();
|
||||||
int bind(std::string dev_ip, std::string timezone, OnUpdateStatusFn update_fn);
|
int bind(std::string dev_ip, std::string dev_id, std::string timezone, OnUpdateStatusFn update_fn);
|
||||||
int unbind(std::string dev_id);
|
int unbind(std::string dev_id);
|
||||||
std::string get_bambulab_host();
|
std::string get_bambulab_host();
|
||||||
std::string get_user_selected_machine();
|
std::string get_user_selected_machine();
|
||||||
|
@ -162,6 +166,10 @@ public:
|
||||||
int get_model_publish_url(std::string* url);
|
int get_model_publish_url(std::string* url);
|
||||||
int get_model_mall_home_url(std::string* url);
|
int get_model_mall_home_url(std::string* url);
|
||||||
int get_my_profile(std::string token, unsigned int* http_code, std::string* http_body);
|
int get_my_profile(std::string token, unsigned int* http_code, std::string* http_body);
|
||||||
|
int track_enable(bool enable);
|
||||||
|
int track_event(std::string evt_key, std::string content);
|
||||||
|
int track_header(std::string header);
|
||||||
|
int track_update_property(std::string name, std::string value, std::string type = "string");
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -237,6 +245,10 @@ private:
|
||||||
static func_get_model_publish_url get_model_publish_url_ptr;
|
static func_get_model_publish_url get_model_publish_url_ptr;
|
||||||
static func_get_model_mall_home_url get_model_mall_home_url_ptr;
|
static func_get_model_mall_home_url get_model_mall_home_url_ptr;
|
||||||
static func_get_my_profile get_my_profile_ptr;
|
static func_get_my_profile get_my_profile_ptr;
|
||||||
|
static func_track_enable track_enable_ptr;
|
||||||
|
static func_track_event track_event_ptr;
|
||||||
|
static func_track_header track_header_ptr;
|
||||||
|
static func_track_update_property track_update_property_ptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue