mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2026-01-18 05:45:42 -07:00
FIX: complete the AMS fresh while state changed
jira: [STUDIO-10305] Change-Id: Ie6cbc359bdf9fe02f103f58e25f490105faaf381 (cherry picked from commit 9d7c9c54fc47d6e9000d2570fd391a9823e8b33e)
This commit is contained in:
parent
13c3c32237
commit
b3ca79146b
3 changed files with 118 additions and 79 deletions
|
|
@ -1118,8 +1118,7 @@ void AMSControl::createAmsPanel(wxSimplebook* parent, int& idx, std::vector<AMSi
|
|||
}
|
||||
}
|
||||
else { //only an ext in a panel
|
||||
if (ams1->get_ext_image()) {
|
||||
ams1->get_ext_image()->setShowState(false);
|
||||
if (ams1->get_ext_image()) { ams1->get_ext_image()->setShowState(false);
|
||||
}
|
||||
if (ams1->get_ams_model() == AMSModel::EXT_AMS) {
|
||||
if (ams1->get_ext_type() == LITE_EXT) {
|
||||
|
|
@ -1487,8 +1486,7 @@ void AMSControl::SetAmsStep(std::string ams_id, std::string canid, AMSPassRoadTy
|
|||
if (ams->get_can_count() == GENERIC_AMS_SLOT_NUM){
|
||||
length = left ? 129 : 145;
|
||||
model = ams->get_ams_model();
|
||||
}
|
||||
else if (ams->get_can_count() == 1){
|
||||
} else if (ams->get_can_count() == 1) {
|
||||
for (auto it : pair_id){
|
||||
if (it.first == ams_id){
|
||||
length = left ? 218 : 124;
|
||||
|
|
|
|||
|
|
@ -1917,8 +1917,11 @@ void AMSRoadUpPart::create(wxWindow* parent, wxWindowID id, const wxPoint& pos,
|
|||
|
||||
void AMSRoadUpPart::Update(AMSinfo amsinfo)
|
||||
{
|
||||
m_amsinfo = amsinfo;
|
||||
Refresh();
|
||||
if (m_amsinfo != amsinfo)
|
||||
{
|
||||
m_amsinfo = amsinfo;
|
||||
Refresh();
|
||||
}
|
||||
}
|
||||
|
||||
void AMSRoadUpPart::OnVamsLoading(bool load, wxColour col /*= AMS_CONTROL_GRAY500*/)
|
||||
|
|
@ -1928,12 +1931,22 @@ void AMSRoadUpPart::OnVamsLoading(bool load, wxColour col /*= AMS_CONTROL_GRAY50
|
|||
Refresh();*/
|
||||
}
|
||||
|
||||
void AMSRoadUpPart::SetPassRoadColour(wxColour col) { m_road_color = col; }
|
||||
void AMSRoadUpPart::SetPassRoadColour(wxColour col)
|
||||
{
|
||||
if (m_road_color != col)
|
||||
{
|
||||
m_road_color = col;
|
||||
Refresh();
|
||||
}
|
||||
}
|
||||
|
||||
void AMSRoadUpPart::SetMode(AMSRoadShowMode mode)
|
||||
{
|
||||
m_road_mode = mode;
|
||||
Refresh();
|
||||
if (m_road_mode != mode)
|
||||
{
|
||||
m_road_mode = mode;
|
||||
Refresh();
|
||||
}
|
||||
}
|
||||
|
||||
void AMSRoadUpPart::paintEvent(wxPaintEvent& evt)
|
||||
|
|
@ -2019,10 +2032,19 @@ void AMSRoadUpPart::doRender(wxDC& dc)
|
|||
// left mode
|
||||
}
|
||||
|
||||
void AMSRoadUpPart::UpdatePassRoad(std::string ams_index, std::string slot_index, AMSPassRoadType type, AMSPassRoadSTEP step) {
|
||||
m_load_ams_index = atoi(ams_index.c_str());
|
||||
m_load_slot_index = atoi(slot_index.c_str());
|
||||
void AMSRoadUpPart::UpdatePassRoad(std::string ams_index, std::string slot_index, AMSPassRoadType type, AMSPassRoadSTEP step)
|
||||
{
|
||||
int ams_idx = atoi(ams_index.c_str());
|
||||
int slot_idx = atoi(slot_index.c_str());
|
||||
if (m_load_ams_index == ams_idx && m_load_slot_index == slot_idx && m_load_step == step)
|
||||
{
|
||||
return;
|
||||
};
|
||||
|
||||
m_load_ams_index = ams_idx;
|
||||
m_load_slot_index = slot_idx;
|
||||
m_load_step = step;
|
||||
Refresh();
|
||||
}
|
||||
|
||||
void AMSRoadUpPart::OnPassRoad(std::vector<AMSPassRoadMode> prord_list)
|
||||
|
|
@ -2069,25 +2091,18 @@ AMSRoadDownPart::AMSRoadDownPart(wxWindow* parent, wxWindowID id, const wxPoint&
|
|||
|
||||
void AMSRoadDownPart::create(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size) { wxWindow::Create(parent, id, pos, size); }
|
||||
|
||||
//void AMSRoadDownPart::Update(int nozzle_num, AMSRoadShowMode left_mode, AMSRoadShowMode right_mode, int left_len, int right_len)
|
||||
//{
|
||||
// this->m_nozzle_num = nozzle_num;
|
||||
// this->m_left_rode_mode = left_mode;
|
||||
// this->m_right_rode_mode = right_mode;
|
||||
//
|
||||
// m_left_road_length = left_len;
|
||||
// m_right_road_length = right_len;
|
||||
// m_selected = false;
|
||||
//
|
||||
// Refresh();
|
||||
//}
|
||||
void AMSRoadDownPart::UpdateLeft(int nozzle_num, AMSRoadShowMode mode)
|
||||
{
|
||||
if (nozzle_num == m_nozzle_num && m_left_rode_mode == mode) { return;}
|
||||
|
||||
void AMSRoadDownPart::UpdateLeft(int nozzle_num, AMSRoadShowMode mode) {
|
||||
this->m_left_rode_mode = mode;
|
||||
m_nozzle_num = nozzle_num;
|
||||
Refresh();
|
||||
}
|
||||
void AMSRoadDownPart::UpdateRight(int nozzle_num, AMSRoadShowMode mode) {
|
||||
void AMSRoadDownPart::UpdateRight(int nozzle_num, AMSRoadShowMode mode)
|
||||
{
|
||||
if (nozzle_num == m_nozzle_num && m_right_rode_mode == mode) { return; }
|
||||
|
||||
this->m_right_rode_mode = mode;
|
||||
m_nozzle_num = nozzle_num;
|
||||
Refresh();
|
||||
|
|
@ -2102,20 +2117,33 @@ void AMSRoadDownPart::OnVamsLoading(bool load, wxColour col /*= AMS_CONTROL_GRAY
|
|||
|
||||
void AMSRoadDownPart::SetPassRoadColour(bool left, wxColour col)
|
||||
{
|
||||
if (left){
|
||||
if (left)
|
||||
{
|
||||
if (m_road_color[DEPUTY_NOZZLE_ID] == col)
|
||||
{
|
||||
return;
|
||||
}
|
||||
m_road_color[DEPUTY_NOZZLE_ID] = col;
|
||||
}
|
||||
else{
|
||||
else
|
||||
{
|
||||
if (m_road_color[MAIN_NOZZLE_ID] == col)
|
||||
{
|
||||
return;
|
||||
}
|
||||
m_road_color[MAIN_NOZZLE_ID] = col;
|
||||
}
|
||||
|
||||
Refresh();
|
||||
}
|
||||
|
||||
//void AMSRoadDownPart::SetMode(AMSRoadDownPartMode mode) {
|
||||
//
|
||||
//}
|
||||
void AMSRoadDownPart::SetShowMode(AMSRoadShowMode left_mode, AMSRoadShowMode right_mode) {
|
||||
void AMSRoadDownPart::SetShowMode(AMSRoadShowMode left_mode, AMSRoadShowMode right_mode)
|
||||
{
|
||||
if (m_left_rode_mode == left_mode && m_right_rode_mode == right_mode) { return; }
|
||||
|
||||
m_left_rode_mode = left_mode;
|
||||
m_right_rode_mode = right_mode;
|
||||
Refresh();
|
||||
}
|
||||
|
||||
void AMSRoadDownPart::paintEvent(wxPaintEvent& evt)
|
||||
|
|
|
|||
|
|
@ -236,6 +236,16 @@ public:
|
|||
return false;
|
||||
};
|
||||
|
||||
bool operator!=(const AMSinfo &other) const
|
||||
{
|
||||
if (operator==(other))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
bool parse_ams_info(MachineObject* obj, Ams *ams, bool remain_flag = false, bool humidity_flag = false);
|
||||
void parse_ext_info(MachineObject* obj, AmsTray tray);
|
||||
};
|
||||
|
|
@ -530,29 +540,7 @@ public:
|
|||
void create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
|
||||
|
||||
public:
|
||||
AMSinfo m_amsinfo;
|
||||
//Caninfo m_info;
|
||||
int m_load_slot_index = { 0 };
|
||||
int m_load_ams_index = { 0 };
|
||||
//AMSRoadMode m_rode_mode = { AMSRoadMode::AMS_ROAD_MODE_LEFT_RIGHT };
|
||||
std::vector<AMSPassRoadMode> m_pass_rode_mode = { AMSPassRoadMode::AMS_ROAD_MODE_NONE };
|
||||
AMSRoadShowMode m_road_mode = { AMSRoadShowMode::AMS_ROAD_MODE_FOUR };
|
||||
AMSPassRoadSTEP m_load_step = { AMSPassRoadSTEP::AMS_ROAD_STEP_NONE };
|
||||
|
||||
bool m_selected = { false };
|
||||
int m_passroad_width = { 6 };
|
||||
double m_radius = { 4 };
|
||||
wxColour m_road_def_color;
|
||||
wxColour m_road_color;
|
||||
void Update(AMSinfo amsinfo);
|
||||
|
||||
std::vector<ScalableBitmap> ams_humidity_img;
|
||||
|
||||
|
||||
int m_humidity = { 0 };
|
||||
bool m_show_humidity = { false };
|
||||
bool m_vams_loading{ false };
|
||||
AMSModel m_ams_model;
|
||||
void Update(AMSinfo amsinfo);
|
||||
|
||||
void OnVamsLoading(bool load, wxColour col = AMS_CONTROL_GRAY500);
|
||||
void SetPassRoadColour(wxColour col);
|
||||
|
|
@ -565,6 +553,32 @@ public:
|
|||
void doRender(wxDC& dc);
|
||||
|
||||
void msw_rescale();
|
||||
|
||||
private:
|
||||
AMSinfo m_amsinfo;
|
||||
|
||||
// Caninfo m_info;
|
||||
|
||||
int m_load_slot_index = {0};
|
||||
int m_load_ams_index = {0};
|
||||
|
||||
// AMSRoadMode m_rode_mode = { AMSRoadMode::AMS_ROAD_MODE_LEFT_RIGHT };
|
||||
std::vector<AMSPassRoadMode> m_pass_rode_mode = {AMSPassRoadMode::AMS_ROAD_MODE_NONE};
|
||||
AMSRoadShowMode m_road_mode = {AMSRoadShowMode::AMS_ROAD_MODE_FOUR};
|
||||
AMSPassRoadSTEP m_load_step = {AMSPassRoadSTEP::AMS_ROAD_STEP_NONE};
|
||||
|
||||
bool m_selected = {false};
|
||||
int m_passroad_width = {6};
|
||||
double m_radius = {4};
|
||||
wxColour m_road_def_color;
|
||||
wxColour m_road_color;
|
||||
|
||||
std::vector<ScalableBitmap> ams_humidity_img;
|
||||
|
||||
int m_humidity = {0};
|
||||
bool m_show_humidity = {false};
|
||||
bool m_vams_loading{false};
|
||||
AMSModel m_ams_model;
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -579,29 +593,9 @@ public:
|
|||
void create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
|
||||
|
||||
public:
|
||||
int m_nozzle_num = { 1 };
|
||||
AMSRoadShowMode m_single_ext_rode_mode = { AMSRoadShowMode::AMS_ROAD_MODE_FOUR };
|
||||
AMSRoadShowMode m_left_rode_mode = { AMSRoadShowMode::AMS_ROAD_MODE_FOUR };
|
||||
AMSRoadShowMode m_right_rode_mode = { AMSRoadShowMode::AMS_ROAD_MODE_FOUR };
|
||||
bool m_selected = { false };
|
||||
|
||||
int m_left_road_length = { -1 };
|
||||
int m_right_road_length = { -1 };
|
||||
int m_passroad_width = { 6 };
|
||||
double m_radius = { 4 };
|
||||
AMSPassRoadType m_pass_road_type = { AMSPassRoadType::AMS_ROAD_TYPE_NONE };
|
||||
AMSPassRoadSTEP m_pass_road_left_step = { AMSPassRoadSTEP::AMS_ROAD_STEP_NONE };
|
||||
AMSPassRoadSTEP m_pass_road_right_step = { AMSPassRoadSTEP::AMS_ROAD_STEP_NONE };
|
||||
|
||||
std::map<int, wxColour> m_road_color;
|
||||
|
||||
//void Update(AMSRoadDownPartMode nozzle, AMSRoadShowMode left_mode, AMSRoadShowMode right_mode, int left_len, int right_len);
|
||||
void UpdateLeft(int nozzle_num, AMSRoadShowMode mode);
|
||||
void UpdateRight(int nozzle_num, AMSRoadShowMode mode);
|
||||
|
||||
bool m_vams_loading{ false };
|
||||
|
||||
AMSModel m_ams_model;
|
||||
// void Update(AMSRoadDownPartMode nozzle, AMSRoadShowMode left_mode, AMSRoadShowMode right_mode, int left_len, int right_len);
|
||||
void UpdateLeft(int nozzle_num, AMSRoadShowMode mode);
|
||||
void UpdateRight(int nozzle_num, AMSRoadShowMode mode);
|
||||
|
||||
void OnVamsLoading(bool load, wxColour col = AMS_CONTROL_GRAY500);
|
||||
void SetPassRoadColour(bool left, wxColour col);
|
||||
|
|
@ -612,7 +606,26 @@ public:
|
|||
void render(wxDC& dc);
|
||||
void doRender(wxDC& dc);
|
||||
|
||||
void msw_rescale();
|
||||
void msw_rescale();
|
||||
|
||||
private:
|
||||
int m_nozzle_num = {1};
|
||||
AMSRoadShowMode m_single_ext_rode_mode = {AMSRoadShowMode::AMS_ROAD_MODE_FOUR};
|
||||
AMSRoadShowMode m_left_rode_mode = {AMSRoadShowMode::AMS_ROAD_MODE_FOUR};
|
||||
AMSRoadShowMode m_right_rode_mode = {AMSRoadShowMode::AMS_ROAD_MODE_FOUR};
|
||||
bool m_selected = {false};
|
||||
|
||||
int m_left_road_length = {-1};
|
||||
int m_right_road_length = {-1};
|
||||
int m_passroad_width = {6};
|
||||
double m_radius = {4};
|
||||
AMSPassRoadType m_pass_road_type = {AMSPassRoadType::AMS_ROAD_TYPE_NONE};
|
||||
AMSPassRoadSTEP m_pass_road_left_step = {AMSPassRoadSTEP::AMS_ROAD_STEP_NONE};
|
||||
AMSPassRoadSTEP m_pass_road_right_step = {AMSPassRoadSTEP::AMS_ROAD_STEP_NONE};
|
||||
|
||||
std::map<int, wxColour> m_road_color;
|
||||
bool m_vams_loading{false};
|
||||
AMSModel m_ams_model;
|
||||
};
|
||||
|
||||
/*************************************************
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue