FIX: wait the new result about 3 seconds

jira: [STUDIO-8518]
Change-Id: Ida64d94ab44e71473096ae55ef2db50d7c8286ca
This commit is contained in:
xin.zhang 2025-01-23 14:49:33 +08:00 committed by lane.wei
parent 4dcdfc6beb
commit 93446f05e1
2 changed files with 22 additions and 10 deletions

View File

@ -1542,7 +1542,11 @@ void MachineObject::parse_status(int flag)
}
camera_recording = ((flag >> 5) & 0x1) != 0;
ams_calibrate_remain_flag = ((flag >> 7) & 0x1) != 0;
if (time(nullptr) - ams_user_setting_start > HOLD_COUNT_MAX)
{
ams_calibrate_remain_flag = ((flag >> 7) & 0x1) != 0;
}
sdcard_state = MachineObject::SdcardState(get_flag_bits(flag, 8, 2));
@ -2123,7 +2127,7 @@ int MachineObject::command_ams_user_settings(int ams_id, bool start_read_opt, bo
ams_insert_flag = tray_read_opt;
ams_power_on_flag = start_read_opt;
ams_calibrate_remain_flag = remain_flag;
ams_user_setting_hold_count = HOLD_COUNT_MAX;
ams_user_setting_start = time(nullptr);
return this->publish_json(j.dump());
}
@ -4330,9 +4334,8 @@ int MachineObject::parse_json(std::string payload, bool key_field_only)
if (jj["ams"].contains("insert_flag") || jj["ams"].contains("power_on_flag")
|| jj["ams"].contains("calibrate_remain_flag")) {
if (ams_user_setting_hold_count > 0) {
ams_user_setting_hold_count--;
} else {
if (time(nullptr) - ams_user_setting_start > HOLD_TIME_MAX)
{
if (jj["ams"].contains("insert_flag")) {
ams_insert_flag = jj["ams"]["insert_flag"].get<bool>();
}
@ -5791,7 +5794,6 @@ void MachineObject::parse_new_info(json print)
BOOST_LOG_TRIVIAL(info) << "new print data cfg = " << cfg;
if(!cfg.empty()){
if (ams_user_setting_hold_count > 0) ams_user_setting_hold_count--;
if (camera_recording_hold_count > 0) camera_recording_hold_count--;
if (camera_resolution_hold_count > 0) camera_resolution_hold_count--;
if (camera_timelapse_hold_count > 0) camera_timelapse_hold_count--;
@ -5805,9 +5807,12 @@ void MachineObject::parse_new_info(json print)
if (nozzle_setting_hold_count > 0)nozzle_setting_hold_count--;
if (time(nullptr) - ams_user_setting_start > HOLD_COUNT_MAX)
{
ams_insert_flag = get_flag_bits(cfg, 0);
ams_power_on_flag = get_flag_bits(cfg, 1);
}
ams_insert_flag = get_flag_bits(cfg, 0);
ams_power_on_flag = get_flag_bits(cfg, 1);
upgrade_force_upgrade = get_flag_bits(cfg, 2);
camera_recording_when_printing = get_flag_bits(cfg, 3);
camera_resolution = get_flag_bits(cfg, 4) == 0 ? "720p" : "1080p";
@ -5837,7 +5842,12 @@ void MachineObject::parse_new_info(json print)
xcam_ai_monitoring = get_flag_bits(cfg, 15);
xcam_auto_recovery_step_loss = get_flag_bits(cfg, 16);
ams_calibrate_remain_flag = get_flag_bits(cfg, 17);
if (time(nullptr) - ams_user_setting_start > HOLD_COUNT_MAX)
{
ams_calibrate_remain_flag = get_flag_bits(cfg, 17);
}
ams_auto_switch_filament_flag = get_flag_bits(cfg, 18);
xcam_allow_prompt_sound = get_flag_bits(cfg, 22);
xcam_filament_tangle_detect = get_flag_bits(cfg, 23);

View File

@ -35,6 +35,8 @@
#define HOLD_COUNT_MAX 3
#define HOLD_COUNT_CAMERA 6
#define HOLD_TIME_MAX 3 // 3 seconds
#define GET_VERSION_RETRYS 10
#define RETRY_INTERNAL 2000
@ -676,7 +678,7 @@ public:
bool ams_air_print_status { false };
bool ams_support_virtual_tray { true };
int ams_humidity;
int ams_user_setting_hold_count = 0;
time_t ams_user_setting_start = 0;
AmsStatusMain ams_status_main;
int ams_status_sub;
int ams_version = 0;