OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::DevUpgrade Class Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/DeviceCore/DevUpgrade.h>

Collaboration diagram for Slic3r::DevUpgrade:

Public Member Functions

bool IsUpgrading () const
bool IsUpgradeAvaliable () const
DevFirmwareUpgradeState GetUpgradeState () const
std::string GetUpgradeStatusStr () const
bool IsUpgradeConsistencyRequest () const
bool IsUpgradeForceUpgrade () const
bool HasNewVersion () const
std::string GetOtaNewVersion () const
std::map< std::string, DevFirmwareVersionInfo > GetNewVersionList () const
std::string GetUpgradeModuleStr () const
std::string GetUpgradeProgressStr () const
int GetUpgradeProgressInt () const
std::string GetUpgradeMessageStr () const
wxString GetUpgradeErrCodeStr () const
int CtrlUpgradeConfirm ()
int CtrlUpgradeConsistencyConfirm ()
int CtrlUpgradeFirmware (FirmwareInfo info)
int CtrlUpgradeModule (std::string url, std::string module_type, std::string version)
void ParseUpgrade_V1_0 (const nlohmann::json &print_jj)
void ParseUpgradeDisplayState (const nlohmann::json &upgrade_state_jj)

Static Public Member Functions

static std::shared_ptr< DevUpgrade > Create (MachineObject *owner)

Protected Member Functions

 DevUpgrade (MachineObject *owner)

Private Attributes

MachineObject * m_owner = nullptr
int m_upgrade_new_version_state = 0
bool m_upgrade_consistency_request = false
bool m_upgrade_force_upgrade = false
std::string m_ota_new_version_number
std::map< std::string, DevFirmwareVersionInfo > m_new_ver_list
DevFirmwareUpgradeState m_upgrade_display_state = DevFirmwareUpgradeState::DC
int m_upgrade_err_code = 0
std::string m_upgrade_status
std::string m_upgrade_progress
std::string m_upgrade_message
std::string m_upgrade_module

Detailed Description

Constructor & Destructor Documentation

◆ DevUpgrade()

Slic3r::DevUpgrade::DevUpgrade ( MachineObject * owner)
inlineprotected
53: m_owner(owner) {}
MachineObject * m_owner
Definition DevUpgrade.h:56

References m_owner.

Referenced by Create().

Here is the caller graph for this function:

Member Function Documentation

◆ Create()

std::shared_ptr< DevUpgrade > Slic3r::DevUpgrade::Create ( MachineObject * owner)
inlinestatic
17{ return std::shared_ptr<DevUpgrade>(new DevUpgrade(owner)); }
DevUpgrade(MachineObject *owner)
Definition DevUpgrade.h:53

References DevUpgrade().

Referenced by Slic3r::MachineObject::MachineObject().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CtrlUpgradeConfirm()

int Slic3r::DevUpgrade::CtrlUpgradeConfirm ( )
13{
14 json j;
15 j["upgrade"]["command"] = "upgrade_confirm";
16 j["upgrade"]["sequence_id"] = std::to_string(MachineObject::m_sequence_id++);
17 j["upgrade"]["src_id"] = 1; // 1 for slicer
18 return m_owner->publish_json(j);
19}
static int m_sequence_id
Definition DeviceManager.hpp:197
nlohmann::json json
Definition AssembleList.cpp:42

References m_owner, and Slic3r::MachineObject::m_sequence_id.

◆ CtrlUpgradeConsistencyConfirm()

int Slic3r::DevUpgrade::CtrlUpgradeConsistencyConfirm ( )
22{
23 json j;
24 j["upgrade"]["command"] = "consistency_confirm";
25 j["upgrade"]["sequence_id"] = std::to_string(MachineObject::m_sequence_id++);
26 j["upgrade"]["src_id"] = 1; // 1 for slicer
27 return m_owner->publish_json(j);
28}

References m_owner, and Slic3r::MachineObject::m_sequence_id.

◆ CtrlUpgradeFirmware()

int Slic3r::DevUpgrade::CtrlUpgradeFirmware ( FirmwareInfo info)
31{
32 std::string version = info.version;
33 std::string dst_url = info.url;
34 std::string module_name = info.module_type;
35
36 json j;
37 j["upgrade"]["command"] = "start";
38 j["upgrade"]["sequence_id"] = std::to_string(MachineObject::m_sequence_id++);
39 j["upgrade"]["url"] = info.url;
40 j["upgrade"]["module"] = info.module_type;
41 j["upgrade"]["version"] = info.version;
42 j["upgrade"]["src_id"] = 1;
43
44 return m_owner->publish_json(j);
45}

References m_owner, Slic3r::MachineObject::m_sequence_id, Slic3r::FirmwareInfo::module_type, Slic3r::FirmwareInfo::url, and Slic3r::FirmwareInfo::version.

◆ CtrlUpgradeModule()

int Slic3r::DevUpgrade::CtrlUpgradeModule ( std::string url,
std::string module_type,
std::string version )
48{
49 json j;
50 j["upgrade"]["command"] = "start";
51 j["upgrade"]["sequence_id"] = std::to_string(MachineObject::m_sequence_id++);
52 j["upgrade"]["url"] = url;
53 j["upgrade"]["module"] = module_type;
54 j["upgrade"]["version"] = version;
55 j["upgrade"]["src_id"] = 1;
56
57 return m_owner->publish_json(j);
58}

References m_owner, and Slic3r::MachineObject::m_sequence_id.

◆ GetNewVersionList()

std::map< std::string, DevFirmwareVersionInfo > Slic3r::DevUpgrade::GetNewVersionList ( ) const
inline
32{ return m_new_ver_list; }
std::map< std::string, DevFirmwareVersionInfo > m_new_ver_list
Definition DevUpgrade.h:63

References m_new_ver_list.

◆ GetOtaNewVersion()

std::string Slic3r::DevUpgrade::GetOtaNewVersion ( ) const
inline
std::string m_ota_new_version_number
Definition DevUpgrade.h:62

References m_ota_new_version_number.

◆ GetUpgradeErrCodeStr()

wxString Slic3r::DevUpgrade::GetUpgradeErrCodeStr ( ) const
126{
127 switch (m_upgrade_err_code) {
128 case UpgradeNoError: return _L("Update successful.");
129 case UpgradeDownloadFailed: return _L("Downloading failed.");
130 case UpgradeVerfifyFailed: return _L("Verification failed.");
131 case UpgradeFlashFailed: return _L("Update failed.");
132 case UpgradePrinting: return _L("Update failed.");
133 default: return _L("Update failed.");
134 }
135
136 return "";
137}
#define UpgradeVerfifyFailed
Definition DevUpgrade.cpp:121
#define UpgradePrinting
Definition DevUpgrade.cpp:123
#define UpgradeFlashFailed
Definition DevUpgrade.cpp:122
#define UpgradeDownloadFailed
Definition DevUpgrade.cpp:120
#define UpgradeNoError
Definition DevUpgrade.cpp:119
#define _L(s)
Definition OBJ.cpp:34
int m_upgrade_err_code
Definition DevUpgrade.h:66

References _L, m_upgrade_err_code, UpgradeDownloadFailed, UpgradeFlashFailed, UpgradeNoError, UpgradePrinting, and UpgradeVerfifyFailed.

◆ GetUpgradeMessageStr()

std::string Slic3r::DevUpgrade::GetUpgradeMessageStr ( ) const
inline
38{ return m_upgrade_message; }
std::string m_upgrade_message
Definition DevUpgrade.h:69

References m_upgrade_message.

◆ GetUpgradeModuleStr()

std::string Slic3r::DevUpgrade::GetUpgradeModuleStr ( ) const
inline
35{ return m_upgrade_module; }
std::string m_upgrade_module
Definition DevUpgrade.h:70

References m_upgrade_module.

◆ GetUpgradeProgressInt()

int Slic3r::DevUpgrade::GetUpgradeProgressInt ( ) const
21{
22 try {
23 return std::stoi(m_upgrade_progress);
24 } catch (const std::exception &e) {
25 BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ": " << e.what();
26 }
27
28 return 0;
29}
std::string m_upgrade_progress
Definition DevUpgrade.h:68

References m_upgrade_progress.

◆ GetUpgradeProgressStr()

std::string Slic3r::DevUpgrade::GetUpgradeProgressStr ( ) const
inline
36{ return m_upgrade_progress; }

References m_upgrade_progress.

◆ GetUpgradeState()

DevFirmwareUpgradeState Slic3r::DevUpgrade::GetUpgradeState ( ) const
inline
DevFirmwareUpgradeState m_upgrade_display_state
Definition DevUpgrade.h:64

References m_upgrade_display_state.

◆ GetUpgradeStatusStr()

std::string Slic3r::DevUpgrade::GetUpgradeStatusStr ( ) const
inline
24{ return m_upgrade_status; }
std::string m_upgrade_status
Definition DevUpgrade.h:67

References m_upgrade_status.

◆ HasNewVersion()

bool Slic3r::DevUpgrade::HasNewVersion ( ) const
inline
30{ return m_upgrade_new_version_state == 1; }
int m_upgrade_new_version_state
Definition DevUpgrade.h:58

References m_upgrade_new_version_state.

Referenced by ParseUpgradeDisplayState().

Here is the caller graph for this function:

◆ IsUpgradeAvaliable()

bool Slic3r::DevUpgrade::IsUpgradeAvaliable ( ) const
inline

◆ IsUpgradeConsistencyRequest()

bool Slic3r::DevUpgrade::IsUpgradeConsistencyRequest ( ) const
inline
bool m_upgrade_consistency_request
Definition DevUpgrade.h:59

References m_upgrade_consistency_request.

◆ IsUpgradeForceUpgrade()

bool Slic3r::DevUpgrade::IsUpgradeForceUpgrade ( ) const
inline
bool m_upgrade_force_upgrade
Definition DevUpgrade.h:60

References m_upgrade_force_upgrade.

◆ IsUpgrading()

bool Slic3r::DevUpgrade::IsUpgrading ( ) const
inline

◆ ParseUpgrade_V1_0()

void Slic3r::DevUpgrade::ParseUpgrade_V1_0 ( const nlohmann::json & print_jj)
32{
33 if (print_jj.contains("upgrade_state")) {
34 const auto &upgrade_jj = print_jj["upgrade_state"];
35
36 // status and steps
37 DevJsonValParser::ParseVal(upgrade_jj, "status", m_upgrade_status);
38 DevJsonValParser::ParseVal(upgrade_jj, "progress", m_upgrade_progress);
39 DevJsonValParser::ParseVal(upgrade_jj, "message", m_upgrade_message);
40 DevJsonValParser::ParseVal(upgrade_jj, "module", m_upgrade_module);
41 DevJsonValParser::ParseVal(upgrade_jj, "err_code", m_upgrade_err_code);
42
43 // version requested
44 DevJsonValParser::ParseVal(upgrade_jj, "new_version_state", m_upgrade_new_version_state);
45 DevJsonValParser::ParseVal(upgrade_jj, "consistency_request", m_upgrade_consistency_request);
46 DevJsonValParser::ParseVal(upgrade_jj, "force_upgrade", m_upgrade_force_upgrade);
47
48 // version info
49 DevJsonValParser::ParseVal(upgrade_jj, "ota_new_version_number", m_ota_new_version_number);
50
51 // version list
52 if (upgrade_jj.contains("new_ver_list")) {
53 m_new_ver_list.clear();
54 for (auto ver_item = upgrade_jj["new_ver_list"].begin(); ver_item != upgrade_jj["new_ver_list"].end(); ver_item++) {
55 DevFirmwareVersionInfo ver_info;
56 DevJsonValParser::ParseVal(*ver_item, "name", ver_info.name);
57 DevJsonValParser::ParseVal(*ver_item, "cur_ver", ver_info.sw_ver);
58 DevJsonValParser::ParseVal(*ver_item, "new_ver", ver_info.sw_new_ver);
59 m_new_ver_list[ver_info.name] = ver_info;
60 if (ver_info.name == "ota" && m_ota_new_version_number.empty()) { m_ota_new_version_number = ver_info.sw_new_ver; }
61 }
62 } else {
63 m_new_ver_list.clear();
64 }
65
66 // try to parse display state
67 ParseUpgradeDisplayState(upgrade_jj);
68 }
69
70 if (print_jj.contains("cfg")) {
71 const std::string &cfg = print_jj["cfg"].get<std::string>();
72 if (!cfg.empty()) { m_upgrade_force_upgrade = DevUtil::get_flag_bits(cfg, 2); }
73 }
74}
static void ParseVal(const nlohmann::json &j, const std::string &key, T &val)
Definition DevUtil.h:76
void ParseUpgradeDisplayState(const nlohmann::json &upgrade_state_jj)
Definition DevUpgrade.cpp:76
static int get_flag_bits(std::string str, int start, int count=1)
Definition DevUtil.cpp:18
T * begin(Slic3r::Mat< N, M, T > &mat)
Definition Point.hpp:838

References Slic3r::DevUtil::get_flag_bits(), m_new_ver_list, m_ota_new_version_number, m_upgrade_consistency_request, m_upgrade_err_code, m_upgrade_force_upgrade, m_upgrade_message, m_upgrade_module, m_upgrade_new_version_state, m_upgrade_progress, m_upgrade_status, Slic3r::DevFirmwareVersionInfo::name, ParseUpgradeDisplayState(), Slic3r::DevJsonValParser::ParseVal(), Slic3r::DevFirmwareVersionInfo::sw_new_ver, and Slic3r::DevFirmwareVersionInfo::sw_ver.

Here is the call graph for this function:

◆ ParseUpgradeDisplayState()

void Slic3r::DevUpgrade::ParseUpgradeDisplayState ( const nlohmann::json & upgrade_state_jj)
77{
78 if (upgrade_state_jj.contains("dis_state")) {
79 if ((int) m_upgrade_display_state != upgrade_state_jj["dis_state"].get<int>()) {
80 DevJsonValParser::ParseVal(upgrade_state_jj, "dis_state", m_upgrade_display_state);
81
82 // update the version after upgrade finished
84 Slic3r::GUI::wxGetApp().CallAfter([this] {
85 m_owner->command_get_version();
86 });
87 }
88
89 // lan mode printer, hide upgrade avaliable state
91 m_owner->is_lan_mode_printer()) {
93 }
94 }
95 } else {
96 // BBS compatibility with old version
97 if (m_upgrade_status == "DOWNLOADING" ||
98 m_upgrade_status == "FLASHING" ||
99 m_upgrade_status == "UPGRADE_REQUEST" ||
100 m_upgrade_status == "PRE_FLASH_START" ||
101 m_upgrade_status == "PRE_FLASH_SUCCESS") {
103 } else if (m_upgrade_status == "UPGRADE_SUCCESS" ||
104 m_upgrade_status == "DOWNLOAD_FAIL" ||
105 m_upgrade_status == "FLASH_FAIL" ||
106 m_upgrade_status == "PRE_FLASH_FAIL" ||
107 m_upgrade_status == "UPGRADE_FAIL") {
109 } else {
110 if (HasNewVersion()) {
112 } else {
114 }
115 }
116 }
117}
bool HasNewVersion() const
Definition DevUpgrade.h:30
@ UpgradingUnavaliable
Definition DevDefs.h:148
@ UpgradingFinished
Definition DevDefs.h:151

References HasNewVersion(), m_owner, m_upgrade_display_state, m_upgrade_status, Slic3r::DevJsonValParser::ParseVal(), Slic3r::UpgradingAvaliable, Slic3r::UpgradingFinished, Slic3r::UpgradingInProgress, and Slic3r::UpgradingUnavaliable.

Referenced by ParseUpgrade_V1_0().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ m_new_ver_list

std::map<std::string, DevFirmwareVersionInfo> Slic3r::DevUpgrade::m_new_ver_list
private

◆ m_ota_new_version_number

std::string Slic3r::DevUpgrade::m_ota_new_version_number
private

◆ m_owner

◆ m_upgrade_consistency_request

bool Slic3r::DevUpgrade::m_upgrade_consistency_request = false
private

◆ m_upgrade_display_state

◆ m_upgrade_err_code

int Slic3r::DevUpgrade::m_upgrade_err_code = 0
private

◆ m_upgrade_force_upgrade

bool Slic3r::DevUpgrade::m_upgrade_force_upgrade = false
private

◆ m_upgrade_message

std::string Slic3r::DevUpgrade::m_upgrade_message
private

◆ m_upgrade_module

std::string Slic3r::DevUpgrade::m_upgrade_module
private

◆ m_upgrade_new_version_state

int Slic3r::DevUpgrade::m_upgrade_new_version_state = 0
private

Referenced by HasNewVersion(), and ParseUpgrade_V1_0().

◆ m_upgrade_progress

std::string Slic3r::DevUpgrade::m_upgrade_progress
private

◆ m_upgrade_status

std::string Slic3r::DevUpgrade::m_upgrade_status
private

The documentation for this class was generated from the following files:
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/DeviceCore/DevUpgrade.h
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/DeviceCore/DevUpgrade.cpp
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/DeviceCore/DevUpgradeCtrl.cpp