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

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

Collaboration diagram for Slic3r::DevAmsSystemFirmwareSwitch:

Classes

struct  DevAmsSystemFirmware

Public Types

enum  DevAmsSystemIdx : int { IDX_DC = -1 , IDX_LITE = 0 , IDX_AMS_AMS2_AMSHT = 1 }

Public Member Functions

DevFilaSystem * GetFilaSystem () const
bool SupportSwitchFirmware () const
DevAmsSystemIdx GetCurrentFirmwareIdxSel () const
DevAmsSystemIdx GetCurrentFirmwareIdxRun () const
std::unordered_map< int, DevAmsSystemFirmware > GetSuppotedFirmwares () const
bool IsSwitching () const
bool IsIdle () const
int CrtlSwitchFirmware (int firmware_idx)
void Reset ()
void ParseFirmwareSwitch (const nlohmann::json &j)

Static Public Member Functions

static std::shared_ptr< DevAmsSystemFirmwareSwitch > Create (DevFilaSystem *owner)

Protected Member Functions

 DevAmsSystemFirmwareSwitch (DevFilaSystem *owner)

Private Attributes

DevFilaSystem * m_owner = nullptr
std::string m_status
DevAmsSystemFirmware m_current_firmware_run
DevAmsSystemFirmware m_current_firmware_sel
std::unordered_map< int, DevAmsSystemFirmware > m_firmwares
DevCtrlInfo m_ctrl_switching

Detailed Description

Member Enumeration Documentation

◆ DevAmsSystemIdx

Enumerator
IDX_DC 
IDX_LITE 
IDX_AMS_AMS2_AMSHT 
45 {
46 IDX_DC = -1,
47 IDX_LITE = 0,
49 };
@ IDX_DC
Definition DevFilaAmsSetting.h:46
@ IDX_LITE
Definition DevFilaAmsSetting.h:47
@ IDX_AMS_AMS2_AMSHT
Definition DevFilaAmsSetting.h:48

Constructor & Destructor Documentation

◆ DevAmsSystemFirmwareSwitch()

Slic3r::DevAmsSystemFirmwareSwitch::DevAmsSystemFirmwareSwitch ( DevFilaSystem * owner)
inlineprotected
73: m_owner(owner) {};
DevFilaSystem * m_owner
Definition DevFilaAmsSetting.h:94

References m_owner.

Referenced by Create().

Here is the caller graph for this function:

Member Function Documentation

◆ Create()

std::shared_ptr< DevAmsSystemFirmwareSwitch > Slic3r::DevAmsSystemFirmwareSwitch::Create ( DevFilaSystem * owner)
inlinestatic
68 {
69 return std::shared_ptr<DevAmsSystemFirmwareSwitch>(new DevAmsSystemFirmwareSwitch(owner));
70 };
DevAmsSystemFirmwareSwitch(DevFilaSystem *owner)
Definition DevFilaAmsSetting.h:73

References DevAmsSystemFirmwareSwitch().

Here is the call graph for this function:

◆ CrtlSwitchFirmware()

int Slic3r::DevAmsSystemFirmwareSwitch::CrtlSwitchFirmware ( int firmware_idx)
13 {
14 if (!m_owner) {
15 return -1;
16 }
17
18 MachineObject* obj_ = m_owner->GetOwner();
19
20 json command_json;
21 command_json["upgrade"]["command"] = "mc_for_ams_firmware_upgrade";
22 command_json["upgrade"]["sequence_id"] = std::to_string(obj_->m_sequence_id++);
23 command_json["upgrade"]["src_id"] = 1;// 1-Studio
24 command_json["upgrade"]["id"] = firmware_idx;
25
26 int rtn = obj_->publish_json(command_json);
27 if (rtn == 0) {
28 m_status = "SWITCHING";
29 m_ctrl_switching = DevCtrlInfo(obj_, obj_->m_sequence_id - 1, command_json, 3, 1);
30 }
31
32 return rtn;
33 };
std::string m_status
Definition DevFilaAmsSetting.h:96
DevCtrlInfo m_ctrl_switching
Definition DevFilaAmsSetting.h:102
nlohmann::json json
Definition AssembleList.cpp:42

References m_ctrl_switching, m_owner, Slic3r::MachineObject::m_sequence_id, m_status, and Slic3r::MachineObject::publish_json().

Here is the call graph for this function:

◆ GetCurrentFirmwareIdxRun()

DevAmsSystemIdx Slic3r::DevAmsSystemFirmwareSwitch::GetCurrentFirmwareIdxRun ( ) const
inline
80{ return m_current_firmware_run.m_firmare_idx; };
DevAmsSystemFirmware m_current_firmware_run
Definition DevFilaAmsSetting.h:98

References m_current_firmware_run.

◆ GetCurrentFirmwareIdxSel()

DevAmsSystemIdx Slic3r::DevAmsSystemFirmwareSwitch::GetCurrentFirmwareIdxSel ( ) const
inline
79{ return m_current_firmware_sel.m_firmare_idx; };
DevAmsSystemFirmware m_current_firmware_sel
Definition DevFilaAmsSetting.h:99

References m_current_firmware_sel.

◆ GetFilaSystem()

DevFilaSystem * Slic3r::DevAmsSystemFirmwareSwitch::GetFilaSystem ( ) const
inline
76{ return m_owner; };

References m_owner.

◆ GetSuppotedFirmwares()

std::unordered_map< int, DevAmsSystemFirmware > Slic3r::DevAmsSystemFirmwareSwitch::GetSuppotedFirmwares ( ) const
inline
81{ return m_firmwares;}; // Orca: unordered (mirrored by AMSSetting.cpp)
std::unordered_map< int, DevAmsSystemFirmware > m_firmwares
Definition DevFilaAmsSetting.h:100

References m_firmwares.

◆ IsIdle()

bool Slic3r::DevAmsSystemFirmwareSwitch::IsIdle ( ) const
inline
84{ return m_status == "IDLE";};

References m_status.

◆ IsSwitching()

bool Slic3r::DevAmsSystemFirmwareSwitch::IsSwitching ( ) const
inline
83{ return m_status == "SWITCHING";};

References m_status.

◆ ParseFirmwareSwitch()

void Slic3r::DevAmsSystemFirmwareSwitch::ParseFirmwareSwitch ( const nlohmann::json & j)
25{
26 if (!m_ctrl_switching.CheckCanUpdateData(j.contains("upgrade") ? j["upgrade"] :j)) {
27 return;
28 }
29
30 if (j.contains("print")) {
31 const auto& print_jj = j["print"];
32 if (print_jj.contains("upgrade_state")) {
33 const auto& upgrade_jj = print_jj["upgrade_state"];
34 if (upgrade_jj.contains("mc_for_ams_firmware")) {
35 const auto& mc_for_ams_firmware_jj = upgrade_jj["mc_for_ams_firmware"];
36 if (mc_for_ams_firmware_jj.contains("firmware")) {
37 m_firmwares.clear();
38 const auto& firmwares = mc_for_ams_firmware_jj["firmware"];
39 for (auto item : firmwares) {
40 DevAmsSystemFirmware firmware;
41 DevJsonValParser::ParseVal(item, "id", firmware.m_firmare_idx);
42 DevJsonValParser::ParseVal(item, "name", firmware.m_name);
43 DevJsonValParser::ParseVal(item, "version", firmware.m_version);
44 m_firmwares[firmware.m_firmare_idx] = firmware;
45 }
46 }
47
48 if (mc_for_ams_firmware_jj.contains("current_firmware_id")) {
49 int idx = DevJsonValParser::GetVal(mc_for_ams_firmware_jj, "current_firmware_id", -1);
50 if (m_firmwares.count(idx) != 0) {
52 } else {
54 }
55 }
56
57 if (mc_for_ams_firmware_jj.contains("current_run_firmware_id")) {
58 auto idx = DevJsonValParser::GetVal(mc_for_ams_firmware_jj, "current_run_firmware_id", IDX_DC);
59 if (m_firmwares.count(idx) != 0) {
61 } else {
63 }
64 }
65
66 DevJsonValParser::ParseVal(mc_for_ams_firmware_jj, "status", m_status);
67 }
68 }
69 }
70}
static void ParseVal(const nlohmann::json &j, const std::string &key, T &val)
Definition DevUtil.h:76
static T GetVal(const nlohmann::json &j, const std::string &key, const T &default_val=T())
Definition DevUtil.h:60

References Slic3r::DevJsonValParser::GetVal(), IDX_DC, m_ctrl_switching, m_current_firmware_run, m_current_firmware_sel, Slic3r::DevAmsSystemFirmwareSwitch::DevAmsSystemFirmware::m_firmare_idx, m_firmwares, Slic3r::DevAmsSystemFirmwareSwitch::DevAmsSystemFirmware::m_name, m_status, Slic3r::DevAmsSystemFirmwareSwitch::DevAmsSystemFirmware::m_version, and Slic3r::DevJsonValParser::ParseVal().

Here is the call graph for this function:

◆ Reset()

void Slic3r::DevAmsSystemFirmwareSwitch::Reset ( )

◆ SupportSwitchFirmware()

bool Slic3r::DevAmsSystemFirmwareSwitch::SupportSwitchFirmware ( ) const
inline
77{ return !m_firmwares.empty();};

References m_firmwares.

Member Data Documentation

◆ m_ctrl_switching

DevCtrlInfo Slic3r::DevAmsSystemFirmwareSwitch::m_ctrl_switching
private

◆ m_current_firmware_run

DevAmsSystemFirmware Slic3r::DevAmsSystemFirmwareSwitch::m_current_firmware_run
private

◆ m_current_firmware_sel

DevAmsSystemFirmware Slic3r::DevAmsSystemFirmwareSwitch::m_current_firmware_sel
private

◆ m_firmwares

std::unordered_map<int, DevAmsSystemFirmware> Slic3r::DevAmsSystemFirmwareSwitch::m_firmwares
private

◆ m_owner

DevFilaSystem* Slic3r::DevAmsSystemFirmwareSwitch::m_owner = nullptr
private

◆ m_status

std::string Slic3r::DevAmsSystemFirmwareSwitch::m_status
private

The documentation for this class was generated from the following files: