NEW: add calibration wiki pages

Change-Id: Ib931b187e0e6629fe387a8b25bc8b9adc964de86
Signed-off-by: Stone Li <stone.li@bambulab.com>
This commit is contained in:
Stone Li 2023-06-27 17:01:39 +08:00 committed by Lane.Wei
parent 8c97f1b2b4
commit c04979495b
5 changed files with 47 additions and 32 deletions

View file

@ -15,18 +15,18 @@ namespace Slic3r { namespace GUI {
wxDEFINE_EVENT(EVT_FINISHED_UPDATE_MLIST, wxCommandEvent); wxDEFINE_EVENT(EVT_FINISHED_UPDATE_MLIST, wxCommandEvent);
wxDEFINE_EVENT(EVT_UPDATE_USER_MLIST, wxCommandEvent); wxDEFINE_EVENT(EVT_UPDATE_USER_MLIST, wxCommandEvent);
wxString get_calibration_type_name(CalibrationType cali_type) wxString get_calibration_type_name(CalibMode cali_mode)
{ {
switch (cali_type) { switch (cali_mode) {
case CalibrationType::CALI_TYPE_PA: case CalibMode::Calib_PA_Line:
return _L("Pressure Adavance"); return _L("Pressure Adavance");
case CalibrationType::CALI_TYPE_FLOW: case CalibMode::Calib_Flow_Rate:
return _L("Flow Rate"); return _L("Flow Rate");
case CalibrationType::CALI_TYPE_VOLUMETRIC: case CalibMode::Calib_Vol_speed_Tower:
return _L("Max Volumetric Speed"); return _L("Max Volumetric Speed");
case CalibrationType::CALI_TYPE_TEMPERATURE: case CalibMode::Calib_Temp_Tower:
return _L("Temperature"); return _L("Temperature");
case CalibrationType::CALI_TYPE_RETRACTION: case CalibMode::Calib_Retraction_tower:
return _L("Retraction"); return _L("Retraction");
default: default:
return ""; return "";
@ -468,23 +468,23 @@ void CalibrationPanel::init_tabpanel() {
m_tabpanel = new Tabbook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, sizer_side_tools, wxNB_LEFT | wxTAB_TRAVERSAL | wxNB_NOPAGETHEME); m_tabpanel = new Tabbook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, sizer_side_tools, wxNB_LEFT | wxTAB_TRAVERSAL | wxNB_NOPAGETHEME);
m_tabpanel->SetBackgroundColour(*wxWHITE); m_tabpanel->SetBackgroundColour(*wxWHITE);
m_cali_panels[(int)CalibrationType::CALI_TYPE_PA] = new PressureAdvanceWizard(m_tabpanel); m_cali_panels[0] = new PressureAdvanceWizard(m_tabpanel);
m_cali_panels[(int)CalibrationType::CALI_TYPE_FLOW] = new FlowRateWizard(m_tabpanel); m_cali_panels[1] = new FlowRateWizard(m_tabpanel);
m_cali_panels[(int)CalibrationType::CALI_TYPE_VOLUMETRIC] = new MaxVolumetricSpeedWizard(m_tabpanel); m_cali_panels[2] = new MaxVolumetricSpeedWizard(m_tabpanel);
m_cali_panels[(int)CalibrationType::CALI_TYPE_TEMPERATURE] = new TemperatureWizard(m_tabpanel); m_cali_panels[3] = new TemperatureWizard(m_tabpanel);
m_cali_panels[(int)CalibrationType::CALI_TYPE_RETRACTION] = new RetractionWizard(m_tabpanel); m_cali_panels[4] = new RetractionWizard(m_tabpanel);
for (int i = 0; i < (int)CalibrationType::CALI_MAX_COUNT; i++) { for (int i = 0; i < (int)CALI_MODE_COUNT; i++) {
bool selected = false; bool selected = false;
if (i == 0) if (i == 0)
selected = true; selected = true;
m_tabpanel->AddPage(m_cali_panels[i], m_tabpanel->AddPage(m_cali_panels[i],
get_calibration_type_name(static_cast<CalibrationType>(i)), get_calibration_type_name(m_cali_panels[i]->get_calibration_mode()),
"", "",
selected); selected);
} }
for (int i = 0; i < (int)CalibrationType::CALI_MAX_COUNT; i++) for (int i = 0; i < (int)CALI_MODE_COUNT; i++)
m_tabpanel->SetPageImage(i, ""); m_tabpanel->SetPageImage(i, "");
m_tabpanel->Bind(wxEVT_BOOKCTRL_PAGE_CHANGED, [this](wxBookCtrlEvent&) { m_tabpanel->Bind(wxEVT_BOOKCTRL_PAGE_CHANGED, [this](wxBookCtrlEvent&) {
@ -514,7 +514,7 @@ void CalibrationPanel::update_print_error_info(int code, std::string msg, std::s
} }
void CalibrationPanel::update_all() { void CalibrationPanel::update_all() {
for (int i = 0; i < (int)CalibrationType::CALI_MAX_COUNT; i++) { for (int i = 0; i < (int)CALI_MODE_COUNT; i++) {
m_cali_panels[i]->update_printer(); m_cali_panels[i]->update_printer();
if (m_cali_panels[i]->IsShown()) if (m_cali_panels[i]->IsShown())
m_cali_panels[i]->update_print_progress(); m_cali_panels[i]->update_print_progress();

View file

@ -14,16 +14,10 @@ namespace Slic3r { namespace GUI {
#define SELECT_MACHINE_REMIND wxColour(255,111,0) #define SELECT_MACHINE_REMIND wxColour(255,111,0)
#define SELECT_MACHINE_LIGHT_GREEN wxColour(219, 253, 231) #define SELECT_MACHINE_LIGHT_GREEN wxColour(219, 253, 231)
enum class CalibrationType { #define CALI_MODE_COUNT 5
CALI_TYPE_PA = 0,
CALI_TYPE_FLOW,
CALI_TYPE_VOLUMETRIC,
CALI_TYPE_TEMPERATURE,
CALI_TYPE_RETRACTION,
CALI_MAX_COUNT,
};
wxString get_calibration_type_name(CalibrationType cali_type);
wxString get_calibration_type_name(CalibMode cali_mode);
class MObjectPanel : public wxPanel class MObjectPanel : public wxPanel
{ {
@ -125,7 +119,7 @@ private:
Tabbook* m_tabpanel{ nullptr }; Tabbook* m_tabpanel{ nullptr };
SelectMObjectPopup m_mobjectlist_popup; SelectMObjectPopup m_mobjectlist_popup;
CalibrationWizard* m_cali_panels[(int)CalibrationType::CALI_MAX_COUNT]; CalibrationWizard* m_cali_panels[CALI_MODE_COUNT];
wxTimer* m_refresh_timer = nullptr; wxTimer* m_refresh_timer = nullptr;
}; };

View file

@ -34,6 +34,24 @@ static bool is_high_end_type(MachineObject* obj) {
return false; return false;
} }
wxString get_calibration_wiki_page(CalibMode cali_mode)
{
switch (cali_mode) {
case CalibMode::Calib_PA_Line:
return wxString("https://wiki.bambulab.com/en/software/bambu-studio/calibration_pa");
case CalibMode::Calib_Flow_Rate:
return wxString("https://wiki.bambulab.com/en/software/bambu-studio/calibration_flow_rate");
case CalibMode::Calib_Vol_speed_Tower:
return wxString("https://wiki.bambulab.com/en/software/bambu-studio/calibration_volumetric");
case CalibMode::Calib_Temp_Tower:
return wxString("https://wiki.bambulab.com/en/software/bambu-studio/calibration_temperature");
case CalibMode::Calib_Retraction_tower:
return wxString("https://wiki.bambulab.com/en/software/bambu-studio/calibration_retraction");
default:
return "";
}
}
FilamentComboBox::FilamentComboBox(wxWindow* parent, const wxPoint& pos, const wxSize& size) FilamentComboBox::FilamentComboBox(wxWindow* parent, const wxPoint& pos, const wxSize& size)
: wxPanel(parent, wxID_ANY, pos, size, wxTAB_TRAVERSAL) : wxPanel(parent, wxID_ANY, pos, size, wxTAB_TRAVERSAL)
{ {
@ -133,6 +151,8 @@ CalibrationWizard::CalibrationWizard(wxWindow* parent, CalibMode mode, wxWindowI
: wxPanel(parent, id, pos, size, style) : wxPanel(parent, id, pos, size, style)
, m_mode(mode) , m_mode(mode)
{ {
m_wiki_url = get_calibration_wiki_page(m_mode);
SetBackgroundColour(wxColour(0xEEEEEE)); SetBackgroundColour(wxColour(0xEEEEEE));
wxBoxSizer* main_sizer = new wxBoxSizer(wxVERTICAL); wxBoxSizer* main_sizer = new wxBoxSizer(wxVERTICAL);

View file

@ -21,6 +21,10 @@ enum FilamentSelectMode {
FSMCheckBoxMode, FSMCheckBoxMode,
FSMRadioMode FSMRadioMode
}; };
wxString get_calibration_wiki_page(CalibMode cali_mode);
class FilamentComboBox : public wxPanel class FilamentComboBox : public wxPanel
{ {
public: public:
@ -99,6 +103,8 @@ private:
ScalableBitmap m_bitmap_abort_disable; ScalableBitmap m_bitmap_abort_disable;
protected: protected:
wxString m_wiki_url;
std::map<std::string, PrinterCaliInfo> m_printer_calib_infos; std::map<std::string, PrinterCaliInfo> m_printer_calib_infos;
bool is_between_start_and_runing = false; bool is_between_start_and_runing = false;
CalibMode m_mode; CalibMode m_mode;
@ -243,7 +249,6 @@ private:
// start page // start page
CalibrationWizardPage* m_page0{ nullptr }; CalibrationWizardPage* m_page0{ nullptr };
std::string m_wiki_url;
// preset page // preset page
CalibrationWizardPage* m_page1{ nullptr }; CalibrationWizardPage* m_page1{ nullptr };
@ -292,7 +297,6 @@ protected:
private: private:
// start page // start page
CalibrationWizardPage* m_page0{ nullptr }; CalibrationWizardPage* m_page0{ nullptr };
std::string m_wiki_url;
// preset page // preset page
CalibrationWizardPage* m_page1{ nullptr }; CalibrationWizardPage* m_page1{ nullptr };
@ -352,7 +356,6 @@ protected:
private: private:
// start page // start page
CalibrationWizardPage* m_page0; CalibrationWizardPage* m_page0;
std::string m_wiki_url;
// preset page // preset page
CalibrationWizardPage* m_page1; CalibrationWizardPage* m_page1;
@ -386,7 +389,6 @@ protected:
private: private:
// start page // start page
CalibrationWizardPage* m_page0; CalibrationWizardPage* m_page0;
std::string m_wiki_url;
// preset page // preset page
CalibrationWizardPage* m_page1; CalibrationWizardPage* m_page1;
@ -418,7 +420,6 @@ protected:
private: private:
// start page // start page
CalibrationWizardPage* m_page0; CalibrationWizardPage* m_page0;
std::string m_wiki_url;
// preset page // preset page
CalibrationWizardPage* m_page1; CalibrationWizardPage* m_page1;

View file

@ -3988,7 +3988,7 @@ int MachineObject::parse_json(std::string payload)
if (j.contains("upgrade")) { if (j.contains("upgrade")) {
if (j["upgrade"].contains("command")) { if (j["upgrade"].contains("command")) {
if (j["upgrade"]["command"].get<std::string>() == "upgrade_confirm") { if (j["upgrade"]["command"].get<std::string>() == "upgrade_confirm") {
this->upgrade_display_state == UpgradingInProgress; this->upgrade_display_state = UpgradingInProgress;
upgrade_display_hold_count = HOLD_COUNT_MAX; upgrade_display_hold_count = HOLD_COUNT_MAX;
BOOST_LOG_TRIVIAL(info) << "ack of upgrade_confirm"; BOOST_LOG_TRIVIAL(info) << "ack of upgrade_confirm";
} }