mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-19 11:23:42 +00: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:
@@ -1118,8 +1118,7 @@ void AMSControl::createAmsPanel(wxSimplebook* parent, int& idx, std::vector<AMSi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else { //only an ext in a panel
|
else { //only an ext in a panel
|
||||||
if (ams1->get_ext_image()) {
|
if (ams1->get_ext_image()) { ams1->get_ext_image()->setShowState(false);
|
||||||
ams1->get_ext_image()->setShowState(false);
|
|
||||||
}
|
}
|
||||||
if (ams1->get_ams_model() == AMSModel::EXT_AMS) {
|
if (ams1->get_ams_model() == AMSModel::EXT_AMS) {
|
||||||
if (ams1->get_ext_type() == LITE_EXT) {
|
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){
|
if (ams->get_can_count() == GENERIC_AMS_SLOT_NUM){
|
||||||
length = left ? 129 : 145;
|
length = left ? 129 : 145;
|
||||||
model = ams->get_ams_model();
|
model = ams->get_ams_model();
|
||||||
}
|
} else if (ams->get_can_count() == 1) {
|
||||||
else if (ams->get_can_count() == 1){
|
|
||||||
for (auto it : pair_id){
|
for (auto it : pair_id){
|
||||||
if (it.first == ams_id){
|
if (it.first == ams_id){
|
||||||
length = left ? 218 : 124;
|
length = left ? 218 : 124;
|
||||||
|
|||||||
@@ -1917,8 +1917,11 @@ void AMSRoadUpPart::create(wxWindow* parent, wxWindowID id, const wxPoint& pos,
|
|||||||
|
|
||||||
void AMSRoadUpPart::Update(AMSinfo amsinfo)
|
void AMSRoadUpPart::Update(AMSinfo amsinfo)
|
||||||
{
|
{
|
||||||
m_amsinfo = amsinfo;
|
if (m_amsinfo != amsinfo)
|
||||||
Refresh();
|
{
|
||||||
|
m_amsinfo = amsinfo;
|
||||||
|
Refresh();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AMSRoadUpPart::OnVamsLoading(bool load, wxColour col /*= AMS_CONTROL_GRAY500*/)
|
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();*/
|
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)
|
void AMSRoadUpPart::SetMode(AMSRoadShowMode mode)
|
||||||
{
|
{
|
||||||
m_road_mode = mode;
|
if (m_road_mode != mode)
|
||||||
Refresh();
|
{
|
||||||
|
m_road_mode = mode;
|
||||||
|
Refresh();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AMSRoadUpPart::paintEvent(wxPaintEvent& evt)
|
void AMSRoadUpPart::paintEvent(wxPaintEvent& evt)
|
||||||
@@ -2019,10 +2032,19 @@ void AMSRoadUpPart::doRender(wxDC& dc)
|
|||||||
// left mode
|
// left mode
|
||||||
}
|
}
|
||||||
|
|
||||||
void AMSRoadUpPart::UpdatePassRoad(std::string ams_index, std::string slot_index, AMSPassRoadType type, AMSPassRoadSTEP step) {
|
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());
|
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;
|
m_load_step = step;
|
||||||
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AMSRoadUpPart::OnPassRoad(std::vector<AMSPassRoadMode> prord_list)
|
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::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)
|
void AMSRoadDownPart::UpdateLeft(int nozzle_num, AMSRoadShowMode mode)
|
||||||
//{
|
{
|
||||||
// this->m_nozzle_num = nozzle_num;
|
if (nozzle_num == m_nozzle_num && m_left_rode_mode == mode) { return;}
|
||||||
// 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) {
|
|
||||||
this->m_left_rode_mode = mode;
|
this->m_left_rode_mode = mode;
|
||||||
m_nozzle_num = nozzle_num;
|
m_nozzle_num = nozzle_num;
|
||||||
Refresh();
|
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;
|
this->m_right_rode_mode = mode;
|
||||||
m_nozzle_num = nozzle_num;
|
m_nozzle_num = nozzle_num;
|
||||||
Refresh();
|
Refresh();
|
||||||
@@ -2102,20 +2117,33 @@ void AMSRoadDownPart::OnVamsLoading(bool load, wxColour col /*= AMS_CONTROL_GRAY
|
|||||||
|
|
||||||
void AMSRoadDownPart::SetPassRoadColour(bool left, wxColour col)
|
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;
|
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;
|
m_road_color[MAIN_NOZZLE_ID] = col;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
//void AMSRoadDownPart::SetMode(AMSRoadDownPartMode mode) {
|
void AMSRoadDownPart::SetShowMode(AMSRoadShowMode left_mode, AMSRoadShowMode right_mode)
|
||||||
//
|
{
|
||||||
//}
|
if (m_left_rode_mode == left_mode && m_right_rode_mode == right_mode) { return; }
|
||||||
void AMSRoadDownPart::SetShowMode(AMSRoadShowMode left_mode, AMSRoadShowMode right_mode) {
|
|
||||||
m_left_rode_mode = left_mode;
|
m_left_rode_mode = left_mode;
|
||||||
m_right_rode_mode = right_mode;
|
m_right_rode_mode = right_mode;
|
||||||
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AMSRoadDownPart::paintEvent(wxPaintEvent& evt)
|
void AMSRoadDownPart::paintEvent(wxPaintEvent& evt)
|
||||||
|
|||||||
@@ -236,6 +236,16 @@ public:
|
|||||||
return false;
|
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);
|
bool parse_ams_info(MachineObject* obj, Ams *ams, bool remain_flag = false, bool humidity_flag = false);
|
||||||
void parse_ext_info(MachineObject* obj, AmsTray tray);
|
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);
|
void create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
AMSinfo m_amsinfo;
|
void Update(AMSinfo 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 OnVamsLoading(bool load, wxColour col = AMS_CONTROL_GRAY500);
|
void OnVamsLoading(bool load, wxColour col = AMS_CONTROL_GRAY500);
|
||||||
void SetPassRoadColour(wxColour col);
|
void SetPassRoadColour(wxColour col);
|
||||||
@@ -565,6 +553,32 @@ public:
|
|||||||
void doRender(wxDC& dc);
|
void doRender(wxDC& dc);
|
||||||
|
|
||||||
void msw_rescale();
|
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);
|
void create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
int m_nozzle_num = { 1 };
|
// void Update(AMSRoadDownPartMode nozzle, AMSRoadShowMode left_mode, AMSRoadShowMode right_mode, int left_len, int right_len);
|
||||||
AMSRoadShowMode m_single_ext_rode_mode = { AMSRoadShowMode::AMS_ROAD_MODE_FOUR };
|
void UpdateLeft(int nozzle_num, AMSRoadShowMode mode);
|
||||||
AMSRoadShowMode m_left_rode_mode = { AMSRoadShowMode::AMS_ROAD_MODE_FOUR };
|
void UpdateRight(int nozzle_num, AMSRoadShowMode mode);
|
||||||
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 OnVamsLoading(bool load, wxColour col = AMS_CONTROL_GRAY500);
|
void OnVamsLoading(bool load, wxColour col = AMS_CONTROL_GRAY500);
|
||||||
void SetPassRoadColour(bool left, wxColour col);
|
void SetPassRoadColour(bool left, wxColour col);
|
||||||
@@ -612,7 +606,26 @@ public:
|
|||||||
void render(wxDC& dc);
|
void render(wxDC& dc);
|
||||||
void doRender(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;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*************************************************
|
/*************************************************
|
||||||
|
|||||||
Reference in New Issue
Block a user