FIX:fixed some multi job issue
Change-Id: I338078ad8fcf809888db9d8daeb470a9bf4eab46
This commit is contained in:
parent
d7db83812f
commit
1a7c32c984
|
@ -3295,40 +3295,42 @@ int MachineObject::parse_json(std::string payload, bool key_field_only)
|
|||
catch (...) {}
|
||||
}
|
||||
}
|
||||
if (jj.contains("project_id")
|
||||
&& jj.contains("profile_id")
|
||||
&& jj.contains("subtask_id")
|
||||
) {
|
||||
obj_subtask_id = jj["subtask_id"].get<std::string>();
|
||||
}
|
||||
|
||||
int plate_index = -1;
|
||||
/* parse local plate_index from task */
|
||||
if (obj_subtask_id.compare("0") == 0 && jj["profile_id"].get<std::string>() != "0") {
|
||||
if (jj.contains("gcode_file")) {
|
||||
m_gcode_file = jj["gcode_file"].get<std::string>();
|
||||
int idx_start = m_gcode_file.find_last_of("_") + 1;
|
||||
int idx_end = m_gcode_file.find_last_of(".");
|
||||
if (idx_start > 0 && idx_end > idx_start) {
|
||||
try {
|
||||
plate_index = atoi(m_gcode_file.substr(idx_start, idx_end - idx_start).c_str());
|
||||
this->m_plate_index = plate_index;
|
||||
}
|
||||
catch (...) {
|
||||
;
|
||||
}
|
||||
if (jj.contains("project_id")
|
||||
&& jj.contains("profile_id")
|
||||
&& jj.contains("subtask_id")
|
||||
) {
|
||||
obj_subtask_id = jj["subtask_id"].get<std::string>();
|
||||
|
||||
int plate_index = -1;
|
||||
/* parse local plate_index from task */
|
||||
if (obj_subtask_id.compare("0") == 0 && jj["profile_id"].get<std::string>() != "0") {
|
||||
if (jj.contains("gcode_file")) {
|
||||
m_gcode_file = jj["gcode_file"].get<std::string>();
|
||||
int idx_start = m_gcode_file.find_last_of("_") + 1;
|
||||
int idx_end = m_gcode_file.find_last_of(".");
|
||||
if (idx_start > 0 && idx_end > idx_start) {
|
||||
try {
|
||||
plate_index = atoi(m_gcode_file.substr(idx_start, idx_end - idx_start).c_str());
|
||||
this->m_plate_index = plate_index;
|
||||
}
|
||||
catch (...) {
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
update_slice_info(jj["project_id"].get<std::string>(), jj["profile_id"].get<std::string>(), jj["subtask_id"].get<std::string>(), plate_index);
|
||||
BBLSubTask* curr_task = get_subtask();
|
||||
if (curr_task) {
|
||||
curr_task->task_progress = mc_print_percent;
|
||||
curr_task->printing_status = print_status;
|
||||
curr_task->task_id = jj["subtask_id"].get<std::string>();
|
||||
}
|
||||
update_slice_info(jj["project_id"].get<std::string>(), jj["profile_id"].get<std::string>(), jj["subtask_id"].get<std::string>(), plate_index);
|
||||
BBLSubTask* curr_task = get_subtask();
|
||||
if (curr_task) {
|
||||
curr_task->task_progress = mc_print_percent;
|
||||
curr_task->printing_status = print_status;
|
||||
curr_task->task_id = jj["subtask_id"].get<std::string>();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
|
||||
#pragma region status
|
||||
|
@ -3566,101 +3568,101 @@ int MachineObject::parse_json(std::string payload, bool key_field_only)
|
|||
}
|
||||
|
||||
#pragma region upgrade
|
||||
if (!key_field_only) {
|
||||
try {
|
||||
if (jj.contains("upgrade_state")) {
|
||||
if (jj["upgrade_state"].contains("status"))
|
||||
upgrade_status = jj["upgrade_state"]["status"].get<std::string>();
|
||||
if (jj["upgrade_state"].contains("progress")) {
|
||||
upgrade_progress = jj["upgrade_state"]["progress"].get<std::string>();
|
||||
} if (jj["upgrade_state"].contains("new_version_state"))
|
||||
upgrade_new_version = jj["upgrade_state"]["new_version_state"].get<int>() == 1 ? true : false;
|
||||
if (jj["upgrade_state"].contains("ams_new_version_number"))
|
||||
ams_new_version_number = jj["upgrade_state"]["ams_new_version_number"].get<std::string>();
|
||||
if (jj["upgrade_state"].contains("ota_new_version_number"))
|
||||
ota_new_version_number = jj["upgrade_state"]["ota_new_version_number"].get<std::string>();
|
||||
if (jj["upgrade_state"].contains("ahb_new_version_number"))
|
||||
ahb_new_version_number = jj["upgrade_state"]["ahb_new_version_number"].get<std::string>();
|
||||
if (jj["upgrade_state"].contains("module"))
|
||||
upgrade_module = jj["upgrade_state"]["module"].get<std::string>();
|
||||
if (jj["upgrade_state"].contains("message"))
|
||||
upgrade_message = jj["upgrade_state"]["message"].get<std::string>();
|
||||
if (jj["upgrade_state"].contains("consistency_request"))
|
||||
upgrade_consistency_request = jj["upgrade_state"]["consistency_request"].get<bool>();
|
||||
if (jj["upgrade_state"].contains("force_upgrade"))
|
||||
upgrade_force_upgrade = jj["upgrade_state"]["force_upgrade"].get<bool>();
|
||||
if (jj["upgrade_state"].contains("err_code"))
|
||||
upgrade_err_code = jj["upgrade_state"]["err_code"].get<int>();
|
||||
if (jj["upgrade_state"].contains("dis_state")) {
|
||||
if (upgrade_display_state != jj["upgrade_state"]["dis_state"].get<int>()
|
||||
&& jj["upgrade_state"]["dis_state"].get<int>() == 3) {
|
||||
GUI::wxGetApp().CallAfter([this] {
|
||||
this->command_get_version();
|
||||
try {
|
||||
if (jj.contains("upgrade_state")) {
|
||||
if (jj["upgrade_state"].contains("status"))
|
||||
upgrade_status = jj["upgrade_state"]["status"].get<std::string>();
|
||||
if (jj["upgrade_state"].contains("progress")) {
|
||||
upgrade_progress = jj["upgrade_state"]["progress"].get<std::string>();
|
||||
} if (jj["upgrade_state"].contains("new_version_state"))
|
||||
upgrade_new_version = jj["upgrade_state"]["new_version_state"].get<int>() == 1 ? true : false;
|
||||
if (jj["upgrade_state"].contains("ams_new_version_number"))
|
||||
ams_new_version_number = jj["upgrade_state"]["ams_new_version_number"].get<std::string>();
|
||||
if (jj["upgrade_state"].contains("ota_new_version_number"))
|
||||
ota_new_version_number = jj["upgrade_state"]["ota_new_version_number"].get<std::string>();
|
||||
if (jj["upgrade_state"].contains("ahb_new_version_number"))
|
||||
ahb_new_version_number = jj["upgrade_state"]["ahb_new_version_number"].get<std::string>();
|
||||
if (jj["upgrade_state"].contains("module"))
|
||||
upgrade_module = jj["upgrade_state"]["module"].get<std::string>();
|
||||
if (jj["upgrade_state"].contains("message"))
|
||||
upgrade_message = jj["upgrade_state"]["message"].get<std::string>();
|
||||
if (jj["upgrade_state"].contains("consistency_request"))
|
||||
upgrade_consistency_request = jj["upgrade_state"]["consistency_request"].get<bool>();
|
||||
if (jj["upgrade_state"].contains("force_upgrade"))
|
||||
upgrade_force_upgrade = jj["upgrade_state"]["force_upgrade"].get<bool>();
|
||||
if (jj["upgrade_state"].contains("err_code"))
|
||||
upgrade_err_code = jj["upgrade_state"]["err_code"].get<int>();
|
||||
if (jj["upgrade_state"].contains("dis_state")) {
|
||||
if (upgrade_display_state != jj["upgrade_state"]["dis_state"].get<int>()
|
||||
&& jj["upgrade_state"]["dis_state"].get<int>() == 3) {
|
||||
GUI::wxGetApp().CallAfter([this] {
|
||||
this->command_get_version();
|
||||
});
|
||||
}
|
||||
if (upgrade_display_hold_count > 0)
|
||||
upgrade_display_hold_count--;
|
||||
else
|
||||
upgrade_display_state = jj["upgrade_state"]["dis_state"].get<int>();
|
||||
}
|
||||
else {
|
||||
if (upgrade_display_hold_count > 0)
|
||||
upgrade_display_hold_count--;
|
||||
else {
|
||||
//BBS compatibility with old version
|
||||
if (upgrade_status == "DOWNLOADING"
|
||||
|| upgrade_status == "FLASHING"
|
||||
|| upgrade_status == "UPGRADE_REQUEST"
|
||||
|| upgrade_status == "PRE_FLASH_START"
|
||||
|| upgrade_status == "PRE_FLASH_SUCCESS") {
|
||||
upgrade_display_state = (int)UpgradingDisplayState::UpgradingInProgress;
|
||||
}
|
||||
else if (upgrade_status == "UPGRADE_SUCCESS"
|
||||
|| upgrade_status == "DOWNLOAD_FAIL"
|
||||
|| upgrade_status == "FLASH_FAIL"
|
||||
|| upgrade_status == "PRE_FLASH_FAIL"
|
||||
|| upgrade_status == "UPGRADE_FAIL") {
|
||||
upgrade_display_state = (int)UpgradingDisplayState::UpgradingFinished;
|
||||
}
|
||||
if (upgrade_display_hold_count > 0)
|
||||
upgrade_display_hold_count--;
|
||||
else
|
||||
upgrade_display_state = jj["upgrade_state"]["dis_state"].get<int>();
|
||||
} else {
|
||||
if (upgrade_display_hold_count > 0)
|
||||
upgrade_display_hold_count--;
|
||||
else {
|
||||
//BBS compatibility with old version
|
||||
if (upgrade_status == "DOWNLOADING"
|
||||
|| upgrade_status == "FLASHING"
|
||||
|| upgrade_status == "UPGRADE_REQUEST"
|
||||
|| upgrade_status == "PRE_FLASH_START"
|
||||
|| upgrade_status == "PRE_FLASH_SUCCESS") {
|
||||
upgrade_display_state = (int)UpgradingDisplayState::UpgradingInProgress;
|
||||
}
|
||||
else if (upgrade_status == "UPGRADE_SUCCESS"
|
||||
|| upgrade_status == "DOWNLOAD_FAIL"
|
||||
|| upgrade_status == "FLASH_FAIL"
|
||||
|| upgrade_status == "PRE_FLASH_FAIL"
|
||||
|| upgrade_status == "UPGRADE_FAIL") {
|
||||
upgrade_display_state = (int)UpgradingDisplayState::UpgradingFinished;
|
||||
if (upgrade_new_version) {
|
||||
upgrade_display_state = (int)UpgradingDisplayState::UpgradingAvaliable;
|
||||
}
|
||||
else {
|
||||
if (upgrade_new_version) {
|
||||
upgrade_display_state = (int)UpgradingDisplayState::UpgradingAvaliable;
|
||||
}
|
||||
else {
|
||||
upgrade_display_state = (int)UpgradingDisplayState::UpgradingUnavaliable;
|
||||
}
|
||||
upgrade_display_state = (int)UpgradingDisplayState::UpgradingUnavaliable;
|
||||
}
|
||||
}
|
||||
}
|
||||
// new ver list
|
||||
if (jj["upgrade_state"].contains("new_ver_list")) {
|
||||
m_new_ver_list_exist = true;
|
||||
new_ver_list.clear();
|
||||
for (auto ver_item = jj["upgrade_state"]["new_ver_list"].begin(); ver_item != jj["upgrade_state"]["new_ver_list"].end(); ver_item++) {
|
||||
ModuleVersionInfo ver_info;
|
||||
if (ver_item->contains("name"))
|
||||
ver_info.name = (*ver_item)["name"].get<std::string>();
|
||||
else
|
||||
continue;
|
||||
|
||||
if (ver_item->contains("cur_ver"))
|
||||
ver_info.sw_ver = (*ver_item)["cur_ver"].get<std::string>();
|
||||
if (ver_item->contains("new_ver"))
|
||||
ver_info.sw_new_ver = (*ver_item)["new_ver"].get<std::string>();
|
||||
|
||||
if (ver_info.name == "ota") {
|
||||
ota_new_version_number = ver_info.sw_new_ver;
|
||||
}
|
||||
|
||||
new_ver_list.insert(std::make_pair(ver_info.name, ver_info));
|
||||
}
|
||||
} else {
|
||||
new_ver_list.clear();
|
||||
}
|
||||
}
|
||||
// new ver list
|
||||
if (jj["upgrade_state"].contains("new_ver_list")) {
|
||||
m_new_ver_list_exist = true;
|
||||
new_ver_list.clear();
|
||||
for (auto ver_item = jj["upgrade_state"]["new_ver_list"].begin(); ver_item != jj["upgrade_state"]["new_ver_list"].end(); ver_item++) {
|
||||
ModuleVersionInfo ver_info;
|
||||
if (ver_item->contains("name"))
|
||||
ver_info.name = (*ver_item)["name"].get<std::string>();
|
||||
else
|
||||
continue;
|
||||
|
||||
if (ver_item->contains("cur_ver"))
|
||||
ver_info.sw_ver = (*ver_item)["cur_ver"].get<std::string>();
|
||||
if (ver_item->contains("new_ver"))
|
||||
ver_info.sw_new_ver = (*ver_item)["new_ver"].get<std::string>();
|
||||
|
||||
if (ver_info.name == "ota") {
|
||||
ota_new_version_number = ver_info.sw_new_ver;
|
||||
}
|
||||
|
||||
new_ver_list.insert(std::make_pair(ver_info.name, ver_info));
|
||||
}
|
||||
}
|
||||
else {
|
||||
new_ver_list.clear();
|
||||
}
|
||||
}
|
||||
catch (...) {
|
||||
;
|
||||
}
|
||||
}
|
||||
catch (...) {
|
||||
;
|
||||
}
|
||||
#pragma endregion
|
||||
|
||||
|
|
|
@ -12,13 +12,21 @@ wxDEFINE_EVENT(EVT_MULTI_CLOUD_TASK_SELECTED, wxCommandEvent);
|
|||
wxDEFINE_EVENT(EVT_MULTI_LOCAL_TASK_SELECTED, wxCommandEvent);
|
||||
wxDEFINE_EVENT(EVT_MULTI_DEVICE_SELECTED, wxCommandEvent);
|
||||
wxDEFINE_EVENT(EVT_MULTI_DEVICE_VIEW, wxCommandEvent);
|
||||
wxDEFINE_EVENT(EVT_MULTI_REFRESH, wxCommandEvent);
|
||||
|
||||
DeviceItem::DeviceItem(wxWindow* parent, MachineObject* obj)
|
||||
: wxWindow(parent, wxID_ANY)
|
||||
, obj_(obj)
|
||||
{
|
||||
sync_state();
|
||||
Bind(EVT_MULTI_REFRESH, &DeviceItem::on_refresh, this);
|
||||
}
|
||||
|
||||
void DeviceItem::on_refresh(wxCommandEvent& evt)
|
||||
{
|
||||
Refresh();
|
||||
}
|
||||
|
||||
void DeviceItem::sync_state()
|
||||
{
|
||||
if (obj_) {
|
||||
|
@ -38,9 +46,6 @@ void DeviceItem::sync_state()
|
|||
else if (obj_->is_in_printing()) {
|
||||
state_printable = 3;
|
||||
}
|
||||
else if (obj_->is_in_upgrading()) {
|
||||
state_printable = 4;
|
||||
}
|
||||
else {
|
||||
state_printable = 6;
|
||||
}
|
||||
|
@ -49,6 +54,10 @@ void DeviceItem::sync_state()
|
|||
state_printable = 5;
|
||||
}
|
||||
|
||||
if (obj_->is_in_upgrading()) {
|
||||
state_printable = 4;
|
||||
}
|
||||
|
||||
state_enable_ams = obj_->ams_exist_bits;
|
||||
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@ public:
|
|||
DeviceItem(wxWindow* parent, MachineObject* obj);
|
||||
~DeviceItem() {};
|
||||
|
||||
void on_refresh(wxCommandEvent& evt);
|
||||
void sync_state();
|
||||
wxString get_state_printable();
|
||||
wxString get_state_device();
|
||||
|
@ -111,6 +112,7 @@ wxDECLARE_EVENT(EVT_MULTI_DEVICE_SELECTED, wxCommandEvent);
|
|||
wxDECLARE_EVENT(EVT_MULTI_DEVICE_VIEW, wxCommandEvent);
|
||||
wxDECLARE_EVENT(EVT_MULTI_CLOUD_TASK_SELECTED, wxCommandEvent);
|
||||
wxDECLARE_EVENT(EVT_MULTI_LOCAL_TASK_SELECTED, wxCommandEvent);
|
||||
wxDECLARE_EVENT(EVT_MULTI_REFRESH, wxCommandEvent);
|
||||
|
||||
} // namespace GUI
|
||||
} // namespace Slic3r
|
||||
|
|
|
@ -45,7 +45,7 @@ bool MultiMachinePage::Show(bool show)
|
|||
if (show) {
|
||||
m_refresh_timer->Stop();
|
||||
m_refresh_timer->SetOwner(this);
|
||||
m_refresh_timer->Start(4000);
|
||||
m_refresh_timer->Start(2000);
|
||||
wxPostEvent(this, wxTimerEvent());
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -25,7 +25,7 @@ MultiTaskItem::MultiTaskItem(wxWindow* parent, MachineObject* obj, int type)
|
|||
Bind(wxEVT_MOTION, &MultiTaskItem::OnMove, this);
|
||||
Bind(EVT_MULTI_DEVICE_SELECTED, &MultiTaskItem::OnSelectedDevice, this);
|
||||
|
||||
m_bitmap_check_disable = ScalableBitmap(this, "check_off", 18);
|
||||
m_bitmap_check_disable = ScalableBitmap(this, "check_off_disabled", 18);
|
||||
m_bitmap_check_off = ScalableBitmap(this, "check_off_focused", 18);
|
||||
m_bitmap_check_on = ScalableBitmap(this, "check_on", 18);
|
||||
|
||||
|
@ -774,10 +774,11 @@ void LocalTaskManagerPage::refresh_user_device(bool clear)
|
|||
task_state_info->set_state_changed_fn([this, mtitem](TaskState state, int percent) {
|
||||
mtitem->state_local_task = state;
|
||||
if (state == TaskState::TS_SEND_COMPLETED) {
|
||||
|
||||
mtitem->m_send_time = mtitem->task_obj->get_sent_time();
|
||||
CallAfter([mtitem]() {
|
||||
mtitem->Refresh();
|
||||
});
|
||||
wxCommandEvent event(EVT_MULTI_REFRESH);
|
||||
event.SetEventObject(mtitem);
|
||||
wxPostEvent(mtitem, event);
|
||||
}
|
||||
mtitem->m_sending_percent = percent;
|
||||
});
|
||||
|
@ -876,7 +877,7 @@ CloudTaskManagerPage::CloudTaskManagerPage(wxWindow* parent)
|
|||
m_select_checkbox = new CheckBox(m_table_head_panel, wxID_ANY);
|
||||
m_select_checkbox->SetMinSize(wxSize(FromDIP(TASK_LEFT_PRINTABLE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
|
||||
m_select_checkbox->SetMaxSize(wxSize(FromDIP(TASK_LEFT_PRINTABLE), FromDIP(DEVICE_ITEM_MAX_HEIGHT)));
|
||||
m_table_head_sizer->AddSpacer(FromDIP(TASK_LEFT_PADDING_LEFT));
|
||||
//m_table_head_sizer->AddSpacer(FromDIP(TASK_LEFT_PADDING_LEFT));
|
||||
m_table_head_sizer->Add(m_select_checkbox, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||
|
||||
m_select_checkbox->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& e) {
|
||||
|
|
|
@ -29,7 +29,7 @@ SendDeviceItem::SendDeviceItem(wxWindow* parent, MachineObject* obj)
|
|||
: DeviceItem(parent, obj)
|
||||
{
|
||||
SetBackgroundColour(*wxWHITE);
|
||||
m_bitmap_check_disable = ScalableBitmap(this, "check_off", 18);
|
||||
m_bitmap_check_disable = ScalableBitmap(this, "check_off_disabled", 18);
|
||||
m_bitmap_check_off = ScalableBitmap(this, "check_off_focused", 18);
|
||||
m_bitmap_check_on = ScalableBitmap(this, "check_on", 18);
|
||||
|
||||
|
@ -912,6 +912,7 @@ void SendMultiMachinePage::on_set_finish_mapping(wxCommandEvent& evt)
|
|||
}
|
||||
iter++;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1313,6 +1314,7 @@ void SendMultiMachinePage::sync_ams_list()
|
|||
if (extruder >= materials.size() || extruder < 0 || extruder >= display_materials.size()) continue;
|
||||
|
||||
MaterialItem* item = new MaterialItem(m_main_page, colour_rgb, _L(display_materials[extruder]));
|
||||
item->set_ams_info(wxColour("#CECECE"), "A1", 0, std::vector<wxColour>());
|
||||
m_ams_list_sizer->Add(item, 0, wxALL, FromDIP(4));
|
||||
|
||||
item->Bind(wxEVT_LEFT_UP, [this, item, materials, extruder](wxMouseEvent& e) {});
|
||||
|
@ -1355,10 +1357,12 @@ void SendMultiMachinePage::sync_ams_list()
|
|||
if (extruder < materials.size() && extruder >= 0) {
|
||||
FilamentInfo info;
|
||||
info.id = extruder;
|
||||
info.tray_id = 0;
|
||||
info.type = materials[extruder];
|
||||
info.brand = brands[extruder];
|
||||
info.filament_id = m_filaments_id[extruder];
|
||||
info.color = wxString::Format("#%02X%02X%02X%02X", colour_rgb.Red(), colour_rgb.Green(), colour_rgb.Blue(), colour_rgb.Alpha()).ToStdString();
|
||||
//info.color = wxString::Format("#%02X%02X%02X%02X", colour_rgb.Red(), colour_rgb.Green(), colour_rgb.Blue(), colour_rgb.Alpha()).ToStdString();
|
||||
info.color = "#CECECEFF";
|
||||
m_filaments.push_back(info);
|
||||
m_ams_mapping_result.push_back(info);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue