ENH:Support more SD card states

jira:[for sdcard]

Change-Id: Ic09198a0ed357f827768ed2f8d8a9ed6266f749f
This commit is contained in:
tao wang 2024-11-29 19:31:06 +08:00 committed by lane.wei
parent e0508a9e51
commit c877405cab
9 changed files with 59 additions and 69 deletions

View File

@ -1484,6 +1484,8 @@ void MachineObject::parse_status(int flag)
camera_recording = ((flag >> 5) & 0x1) != 0; camera_recording = ((flag >> 5) & 0x1) != 0;
ams_calibrate_remain_flag = ((flag >> 7) & 0x1) != 0; ams_calibrate_remain_flag = ((flag >> 7) & 0x1) != 0;
sdcard_state = MachineObject::SdcardState(get_flag_bits(flag, 8, 2));
if (ams_print_option_count > 0) if (ams_print_option_count > 0)
ams_print_option_count--; ams_print_option_count--;
else { else {
@ -1536,8 +1538,6 @@ void MachineObject::parse_status(int flag)
is_support_upgrade_kit = ((flag >> 27) & 0x1) != 0; is_support_upgrade_kit = ((flag >> 27) & 0x1) != 0;
installed_upgrade_kit = ((flag >> 26) & 0x1) != 0; installed_upgrade_kit = ((flag >> 26) & 0x1) != 0;
sdcard_state = MachineObject::SdcardState((flag >> 8) & 0x11);
is_support_agora = ((flag >> 30) & 0x1) != 0; is_support_agora = ((flag >> 30) & 0x1) != 0;
if (is_support_agora) if (is_support_agora)
is_support_tunnel_mqtt = false; is_support_tunnel_mqtt = false;
@ -1586,11 +1586,6 @@ bool MachineObject::is_sdcard_printing()
return false; return false;
} }
bool MachineObject::has_sdcard()
{
return (sdcard_state == MachineObject::SdcardState::HAS_SDCARD_NORMAL);
}
MachineObject::SdcardState MachineObject::get_sdcard_state() MachineObject::SdcardState MachineObject::get_sdcard_state()
{ {
return sdcard_state; return sdcard_state;
@ -3382,6 +3377,16 @@ int MachineObject::parse_json(std::string payload, bool key_field_only)
if (jj["print_error"].is_number()) if (jj["print_error"].is_number())
print_error = jj["print_error"].get<int>(); print_error = jj["print_error"].get<int>();
} }
if (jj.contains("sdcard")) {
if (jj["sdcard"].get<bool>())
sdcard_state = MachineObject::SdcardState::HAS_SDCARD_NORMAL;
else
sdcard_state = MachineObject::SdcardState::NO_SDCARD;
} else {
sdcard_state = MachineObject::SdcardState::NO_SDCARD;
}
if (!key_field_only) { if (!key_field_only) {
if (jj.contains("home_flag")) { if (jj.contains("home_flag")) {
home_flag = jj["home_flag"].get<int>(); home_flag = jj["home_flag"].get<int>();
@ -3748,21 +3753,6 @@ int MachineObject::parse_json(std::string payload, bool key_field_only)
catch (...) { catch (...) {
; ;
} }
// media
try {
if (jj.contains("sdcard")) {
if (jj["sdcard"].get<bool>())
sdcard_state = MachineObject::SdcardState::HAS_SDCARD_NORMAL;
else
sdcard_state = MachineObject::SdcardState::NO_SDCARD;
} else {
//do not check sdcard if no sdcard field
sdcard_state = MachineObject::SdcardState::NO_SDCARD;
}
}
catch (...) {
;
}
} }
#pragma endregion #pragma endregion
if (!key_field_only) { if (!key_field_only) {

View File

@ -523,7 +523,8 @@ public:
NO_SDCARD = 0, NO_SDCARD = 0,
HAS_SDCARD_NORMAL = 1, HAS_SDCARD_NORMAL = 1,
HAS_SDCARD_ABNORMAL = 2, HAS_SDCARD_ABNORMAL = 2,
SDCARD_STATE_NUM = 3 HAS_SDCARD_READONLY = 3,
SDCARD_STATE_NUM = 4
}; };
enum ActiveState { enum ActiveState {
@ -980,7 +981,6 @@ public:
std::string obj_subtask_id; // subtask_id == 0 for sdcard std::string obj_subtask_id; // subtask_id == 0 for sdcard
std::string subtask_name; std::string subtask_name;
bool is_sdcard_printing(); bool is_sdcard_printing();
bool has_sdcard();
bool is_timelapse(); bool is_timelapse();
bool is_recording_enable(); bool is_recording_enable();
bool is_recording(); bool is_recording();

View File

@ -221,7 +221,7 @@ void MediaFilePanel::SetMachineObject(MachineObject* obj)
m_lan_passwd = obj->get_access_code(); m_lan_passwd = obj->get_access_code();
m_dev_ver = obj->get_ota_version(); m_dev_ver = obj->get_ota_version();
m_device_busy = obj->is_camera_busy_off(); m_device_busy = obj->is_camera_busy_off();
m_sdcard_exist = obj->has_sdcard(); m_sdcard_exist = obj->sdcard_state == MachineObject::SdcardState::HAS_SDCARD_NORMAL || obj->sdcard_state == MachineObject::SdcardState::HAS_SDCARD_READONLY;
m_local_proto = obj->file_local; m_local_proto = obj->file_local;
m_remote_proto = obj->file_remote; m_remote_proto = obj->file_remote;
m_model_download_support = obj->file_model_download; m_model_download_support = obj->file_model_download;

View File

@ -181,7 +181,7 @@ MonitorPanel::~MonitorPanel()
auto page = m_tabpanel->GetCurrentPage(); auto page = m_tabpanel->GetCurrentPage();
if (page == m_media_file_panel) { if (page == m_media_file_panel) {
auto title = m_tabpanel->GetPageText(m_tabpanel->GetSelection()); auto title = m_tabpanel->GetPageText(m_tabpanel->GetSelection());
m_media_file_panel->SwitchStorage(title == _L("SD Card")); m_media_file_panel->SwitchStorage(title == _L("Storage"));
} }
page->SetFocus(); page->SetFocus();
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << __LINE__ << " select :" << get_string_from_tab(PrinterTab(m_tabpanel->GetSelection())) BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << __LINE__ << " select :" << get_string_from_tab(PrinterTab(m_tabpanel->GetSelection()))
@ -212,7 +212,7 @@ MonitorPanel::~MonitorPanel()
m_tabpanel->AddPage(m_status_info_panel, _L("Status"), "", true); m_tabpanel->AddPage(m_status_info_panel, _L("Status"), "", true);
m_media_file_panel = new MediaFilePanel(m_tabpanel); m_media_file_panel = new MediaFilePanel(m_tabpanel);
m_tabpanel->AddPage(m_media_file_panel, _L("SD Card"), "", false); m_tabpanel->AddPage(m_media_file_panel, _L("Storage"), "", false);
//m_tabpanel->AddPage(m_media_file_panel, _L("Internal Storage"), "", false); //m_tabpanel->AddPage(m_media_file_panel, _L("Internal Storage"), "", false);
m_upgrade_panel = new UpgradePanel(m_tabpanel); m_upgrade_panel = new UpgradePanel(m_tabpanel);

View File

@ -2354,7 +2354,7 @@ void SelectMachineDialog::on_send_print()
m_print_job->task_ams_mapping_info = ""; m_print_job->task_ams_mapping_info = "";
} }
m_print_job->has_sdcard = obj_->has_sdcard(); m_print_job->has_sdcard = obj_->get_sdcard_state() == MachineObject::SdcardState::HAS_SDCARD_NORMAL;
bool timelapse_option = m_checkbox_list["timelapse"]->IsShown()?true:false; bool timelapse_option = m_checkbox_list["timelapse"]->IsShown()?true:false;

View File

@ -571,7 +571,7 @@ BBL::PrintParams SendMultiMachinePage::request_params(MachineObject* obj)
params.comments = "no_ip"; params.comments = "no_ip";
else if (obj->is_support_cloud_print_only) else if (obj->is_support_cloud_print_only)
params.comments = "low_version"; params.comments = "low_version";
else if (!obj->has_sdcard()) else if (obj->get_sdcard_state() == MachineObject::SdcardState::NO_SDCARD)
params.comments = "no_sdcard"; params.comments = "no_sdcard";
else if (params.password.empty()) else if (params.password.empty())
params.comments = "no_password"; params.comments = "no_password";

View File

@ -791,7 +791,7 @@ void SendToPrinterDialog::on_ok(wxCommandEvent &event)
m_send_job->connection_type = obj_->connection_type(); m_send_job->connection_type = obj_->connection_type();
m_send_job->cloud_print_only = true; m_send_job->cloud_print_only = true;
m_send_job->has_sdcard = obj_->has_sdcard(); m_send_job->has_sdcard = obj_->get_sdcard_state() == MachineObject::SdcardState::HAS_SDCARD_NORMAL;
m_send_job->set_project_name(m_current_project_name.utf8_string()); m_send_job->set_project_name(m_current_project_name.utf8_string());
enable_prepare_mode = false; enable_prepare_mode = false;

View File

@ -1217,7 +1217,7 @@ wxBoxSizer *StatusBasePanel::create_monitoring_page()
m_setting_button->SetMinSize(wxSize(FromDIP(38), FromDIP(24))); m_setting_button->SetMinSize(wxSize(FromDIP(38), FromDIP(24)));
m_setting_button->SetBackgroundColour(STATUS_TITLE_BG); m_setting_button->SetBackgroundColour(STATUS_TITLE_BG);
m_bitmap_sdcard_img->SetToolTip(_L("SD Card")); m_bitmap_sdcard_img->SetToolTip(_L("Storage"));
m_bitmap_timelapse_img->SetToolTip(_L("Timelapse")); m_bitmap_timelapse_img->SetToolTip(_L("Timelapse"));
m_bitmap_recording_img->SetToolTip(_L("Video")); m_bitmap_recording_img->SetToolTip(_L("Video"));
m_bitmap_vcamera_img->SetToolTip(_L("Go Live")); m_bitmap_vcamera_img->SetToolTip(_L("Go Live"));
@ -1903,16 +1903,16 @@ void StatusPanel::update_camera_state(MachineObject* obj)
if (m_last_sdcard != (int)obj->get_sdcard_state()) { if (m_last_sdcard != (int)obj->get_sdcard_state()) {
if (obj->get_sdcard_state() == MachineObject::SdcardState::NO_SDCARD) { if (obj->get_sdcard_state() == MachineObject::SdcardState::NO_SDCARD) {
m_bitmap_sdcard_img->SetBitmap(m_bitmap_sdcard_state_no.bmp()); m_bitmap_sdcard_img->SetBitmap(m_bitmap_sdcard_state_no.bmp());
m_bitmap_sdcard_img->SetToolTip(_L("No SD Card")); m_bitmap_sdcard_img->SetToolTip(_L("No Storage"));
} else if (obj->get_sdcard_state() == MachineObject::SdcardState::HAS_SDCARD_NORMAL) { } else if (obj->get_sdcard_state() == MachineObject::SdcardState::HAS_SDCARD_NORMAL) {
m_bitmap_sdcard_img->SetBitmap(m_bitmap_sdcard_state_normal.bmp()); m_bitmap_sdcard_img->SetBitmap(m_bitmap_sdcard_state_normal.bmp());
m_bitmap_sdcard_img->SetToolTip(_L("SD Card")); m_bitmap_sdcard_img->SetToolTip(_L("Storage"));
} else if (obj->get_sdcard_state() == MachineObject::SdcardState::HAS_SDCARD_ABNORMAL) { } else if (obj->get_sdcard_state() == MachineObject::SdcardState::HAS_SDCARD_ABNORMAL) {
m_bitmap_sdcard_img->SetBitmap(m_bitmap_sdcard_state_abnormal.bmp()); m_bitmap_sdcard_img->SetBitmap(m_bitmap_sdcard_state_abnormal.bmp());
m_bitmap_sdcard_img->SetToolTip(_L("SD Card Abnormal")); m_bitmap_sdcard_img->SetToolTip(_L("Storage Abnormal"));
} else { } else {
m_bitmap_sdcard_img->SetBitmap(m_bitmap_sdcard_state_normal.bmp()); m_bitmap_sdcard_img->SetBitmap(m_bitmap_sdcard_state_normal.bmp());
m_bitmap_sdcard_img->SetToolTip(_L("SD Card")); m_bitmap_sdcard_img->SetToolTip(_L("Storage"));
} }
m_last_sdcard = (int)obj->get_sdcard_state(); m_last_sdcard = (int)obj->get_sdcard_state();
} }

View File

@ -1318,7 +1318,7 @@ void CalibUtils::send_to_print(const CalibInfo &calib_info, wxString &error_mess
print_job->m_project_name = get_calib_mode_name(cali_mode, flow_ratio_mode); print_job->m_project_name = get_calib_mode_name(cali_mode, flow_ratio_mode);
print_job->set_calibration_task(true); print_job->set_calibration_task(true);
print_job->has_sdcard = obj_->has_sdcard(); print_job->has_sdcard = obj_->get_sdcard_state() == MachineObject::SdcardState::HAS_SDCARD_NORMAL;
print_job->set_print_config(MachineBedTypeString[bed_type], true, false, false, false, true, 0, 0, 0); print_job->set_print_config(MachineBedTypeString[bed_type], true, false, false, false, true, 0, 0, 0);
print_job->set_print_job_finished_event(wxGetApp().plater()->get_send_calibration_finished_event(), print_job->m_project_name); print_job->set_print_job_finished_event(wxGetApp().plater()->get_send_calibration_finished_event(), print_job->m_project_name);