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;
ams_calibrate_remain_flag = ((flag >> 7) & 0x1) != 0;
sdcard_state = MachineObject::SdcardState(get_flag_bits(flag, 8, 2));
if (ams_print_option_count > 0)
ams_print_option_count--;
else {
@ -1536,8 +1538,6 @@ void MachineObject::parse_status(int flag)
is_support_upgrade_kit = ((flag >> 27) & 0x1) != 0;
installed_upgrade_kit = ((flag >> 26) & 0x1) != 0;
sdcard_state = MachineObject::SdcardState((flag >> 8) & 0x11);
is_support_agora = ((flag >> 30) & 0x1) != 0;
if (is_support_agora)
is_support_tunnel_mqtt = false;
@ -1586,11 +1586,6 @@ bool MachineObject::is_sdcard_printing()
return false;
}
bool MachineObject::has_sdcard()
{
return (sdcard_state == MachineObject::SdcardState::HAS_SDCARD_NORMAL);
}
MachineObject::SdcardState MachineObject::get_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())
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 (jj.contains("home_flag")) {
home_flag = jj["home_flag"].get<int>();
@ -3748,21 +3753,6 @@ int MachineObject::parse_json(std::string payload, bool key_field_only)
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
if (!key_field_only) {

View File

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

View File

@ -221,7 +221,7 @@ void MediaFilePanel::SetMachineObject(MachineObject* obj)
m_lan_passwd = obj->get_access_code();
m_dev_ver = obj->get_ota_version();
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_remote_proto = obj->file_remote;
m_model_download_support = obj->file_model_download;

View File

@ -181,7 +181,7 @@ MonitorPanel::~MonitorPanel()
auto page = m_tabpanel->GetCurrentPage();
if (page == m_media_file_panel) {
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();
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_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_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->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;

View File

@ -571,7 +571,7 @@ BBL::PrintParams SendMultiMachinePage::request_params(MachineObject* obj)
params.comments = "no_ip";
else if (obj->is_support_cloud_print_only)
params.comments = "low_version";
else if (!obj->has_sdcard())
else if (obj->get_sdcard_state() == MachineObject::SdcardState::NO_SDCARD)
params.comments = "no_sdcard";
else if (params.password.empty())
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->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());
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->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_recording_img->SetToolTip(_L("Video"));
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 (obj->get_sdcard_state() == MachineObject::SdcardState::NO_SDCARD) {
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) {
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) {
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 {
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();
}

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->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_job_finished_event(wxGetApp().plater()->get_send_calibration_finished_event(), print_job->m_project_name);