ENH:Support more SD card states

jira:[for sdcard]

Change-Id: Ic09198a0ed357f827768ed2f8d8a9ed6266f749f
(cherry picked from commit c877405caba2b75c515c814b7aaa0793200eee04)
This commit is contained in:
tao wang
2024-11-29 19:31:06 +08:00
committed by Noisyfox
parent f970bf8160
commit 54748aee1c
9 changed files with 59 additions and 69 deletions

View File

@@ -1513,6 +1513,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 {
@@ -1565,8 +1567,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;
@@ -1615,11 +1615,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;
@@ -3358,6 +3353,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>();
@@ -3703,21 +3708,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) {