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

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

Collaboration diagram for Slic3r::DevAmsTray:

Public Member Functions

 DevAmsTray (std::string tray_id)
bool operator== (DevAmsTray const &o) const
bool operator!= (DevAmsTray const &o) const
void reset ()
void UpdateColorFromStr (const std::string &color)
void set_hold_count ()
bool is_tray_info_ready () const
bool is_unset_third_filament () const
wxColour get_color () const
std::string get_display_filament_type () const
std::string get_filament_type ()
std::optional< DevFilamentDryingPreset > get_ams_drying_preset () const

Static Public Member Functions

static wxColour decode_color (const std::string &color)

Public Attributes

std::string id
std::string tag_uid
std::string setting_id
std::string filament_setting_id
std::string m_fila_type
std::string sub_brands
std::string color
std::vector< std::string > cols
std::string weight
std::string diameter
std::string temp
std::string time
std::string bed_temp_type
std::string bed_temp
std::string nozzle_temp_max
std::string nozzle_temp_min
std::string xcam_info
std::string uuid
int ctype = 0
float k = 0.0f
float n = 0.0f
int cali_idx = -1
wxColour wx_color
bool is_bbl
bool is_exists = false
bool is_slot_placeholder = false
int hold_count = 0
int remain = 0

Detailed Description

DevAmsTray - Represents a single filament tray/slot in an AMS unit or virtual tray.

Data Population:

This class is used in two contexts with different population paths:

  1. AMS Trays (within DevFilaSystem): NetworkAgent → MachineObject::parse_json() → DevFilaSystemParser::ParseV1_0()
  2. Virtual Trays (MachineObject::vt_slot for external/manual filament): NetworkAgent → MachineObject::parse_json() → MachineObject::parse_vt_tray()

Key Fields Used by build_filament_ams_list():

  • setting_id: Filament preset identifier (tray_info_idx from printer)
  • tag_uid: RFID tag unique ID for identifying filament spools
  • m_fila_type: Filament material type (e.g., "PLA", "ABS", "PETG")
  • color: Hex color string without '#' prefix (e.g., "FF0000")
  • cols: Multi-color component list for gradient/multi-color filaments
  • ctype: Color type indicator
  • is_exists: Whether filament is currently loaded in the tray

Constructor & Destructor Documentation

◆ DevAmsTray()

Slic3r::DevAmsTray::DevAmsTray ( std::string tray_id)
inline
54 {
55 is_bbl = false;
56 id = tray_id;
57 }
bool is_bbl
Definition DevFilaSystem.h:83

References is_bbl.

Referenced by operator!=(), and operator==().

Here is the caller graph for this function:

Member Function Documentation

◆ decode_color()

wxColour Slic3r::DevAmsTray::decode_color ( const std::string & color)
static
39{
40 std::array<int, 4> ret = {0, 0, 0, 0};
41 const char * c = color.data();
42 if (color.size() == 8) {
43 for (size_t j = 0; j < 4; ++j) {
44 int digit1 = _hex_digit_to_int(*c++);
45 int digit2 = _hex_digit_to_int(*c++);
46 if (digit1 == -1 || digit2 == -1) break;
47 ret[j] = static_cast<float>(digit1 * 16 + digit2);
48 }
49 } else { return wxColour(255, 255, 255, 255); }
50
51 return wxColour(ret[0], ret[1], ret[2], ret[3]);
52}
std::string color
Definition DevFilaSystem.h:65
static int _hex_digit_to_int(const char c)
Definition DevFilaSystem.cpp:36

References Slic3r::_hex_digit_to_int(), and color.

Referenced by Slic3r::DevMappingUtil::ams_filament_mapping(), Slic3r::GUI::collect_ams_color_items(), Slic3r::DevFilaSystem::CollectAmsColors(), Slic3r::GUI::SyncAmsInfoDialog::decode_ams_color(), get_color(), Slic3r::GUI::StatusPanel::on_ext_spool_edit(), Slic3r::GUI::StatusPanel::on_filament_edit(), Slic3r::GUI::AMSinfo::parse_ams_info(), Slic3r::GUI::AmsMapingPopup::parse_ams_mapping(), Slic3r::GUI::AMSinfo::parse_ext_info(), Slic3r::GUI::sGetTrayData(), Slic3r::GUI::SelectMachineDialog::sync_ams_mapping_result(), Slic3r::GUI::SyncAmsInfoDialog::sync_ams_mapping_result(), and Slic3r::GUI::AmsReplaceMaterialDialog::update_to_nozzle().

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

◆ get_ams_drying_preset()

std::optional< Slic3r::DevFilamentDryingPreset > Slic3r::DevAmsTray::get_ams_drying_preset ( ) const
130{
132}
std::string setting_id
Definition DevFilaSystem.h:61
static std::optional< DevFilamentDryingPreset > GetFilamentDryingPreset(const std::string &fila_id)
Definition DevUtilBackend.cpp:78

References Slic3r::DevUtilBackend::GetFilamentDryingPreset(), and setting_id.

Here is the call graph for this function:

◆ get_color()

wxColour Slic3r::DevAmsTray::get_color ( ) const
inline
106{ return decode_color(color); };
static wxColour decode_color(const std::string &color)
Definition DevFilaSystem.cpp:38

References color, and decode_color().

Here is the call graph for this function:

◆ get_display_filament_type()

std::string Slic3r::DevAmsTray::get_display_filament_type ( ) const
105{
106 if (m_fila_type == "PLA-S") return "Sup.PLA";
107 if (m_fila_type == "PA-S") return "Sup.PA";
108 if (m_fila_type == "ABS-S") return "Sup.ABS";
109 return m_fila_type;
110}
std::string m_fila_type
Definition DevFilaSystem.h:63

References m_fila_type.

Referenced by Slic3r::MachineObject::get_filament_display_type(), Slic3r::GUI::AmsMapingPopup::parse_ams_mapping(), Slic3r::GUI::AMSinfo::parse_ext_info(), Slic3r::GUI::sGetTrayData(), and Slic3r::GUI::AmsReplaceMaterialDialog::update_to_nozzle().

Here is the caller graph for this function:

◆ get_filament_type()

std::string Slic3r::DevAmsTray::get_filament_type ( )
113{
114 if (m_fila_type == "Sup.PLA") { return "PLA-S"; }
115 if (m_fila_type == "Sup.PA") { return "PA-S"; }
116 if (m_fila_type == "Sup.ABS") { return "ABS-S"; }
117 if (m_fila_type == "Support W") { return "PLA-S"; }
118 if (m_fila_type == "Support G") { return "PA-S"; }
119 // setting_id is our OF id; GFS00/GFS01 are the printer's own support-filament ids.
120 if (m_fila_type == "Support") {
121 auto* agent = GUI::wxGetApp().getAgent();
122 const std::string printer_filament_id = agent ? agent->from_orca_filament_id(setting_id) : setting_id;
123 if (printer_filament_id == "GFS00") { m_fila_type = "PLA-S"; } else if (printer_filament_id == "GFS01") { m_fila_type = "PA-S"; } else { return "PLA-S"; }
124 }
125
126 return m_fila_type;
127}

References m_fila_type, and setting_id.

Referenced by Slic3r::_parse_tray_info(), Slic3r::MachineObject::get_filament_type(), Slic3r::GUI::AmsMapingPopup::parse_ams_mapping(), Slic3r::GUI::sGetTrayData(), and Slic3r::GUI::SelectMachineDialog::update_show_status().

Here is the caller graph for this function:

◆ is_tray_info_ready()

bool Slic3r::DevAmsTray::is_tray_info_ready ( ) const
91{
92 if (color.empty()) return false;
93 if (m_fila_type.empty()) return false;
94 //if (setting_id.empty()) return false;
95 return true;
96}

References color, and m_fila_type.

Referenced by Slic3r::GUI::collect_ams_color_items(), Slic3r::GUI::AmsMapingPopup::parse_ams_mapping(), Slic3r::GUI::AMSinfo::parse_ext_info(), and Slic3r::GUI::sGetTrayData().

Here is the caller graph for this function:

◆ is_unset_third_filament()

bool Slic3r::DevAmsTray::is_unset_third_filament ( ) const
99{
100 if (this->is_bbl) return false;
101 return (color.empty() || m_fila_type.empty());
102}

References color, is_bbl, and m_fila_type.

◆ operator!=()

bool Slic3r::DevAmsTray::operator!= ( DevAmsTray const & o) const
inline
95{ return !operator==(o); }
bool operator==(DevAmsTray const &o) const
Definition DevFilaSystem.h:91

References DevAmsTray(), and operator==().

Here is the call graph for this function:

◆ operator==()

bool Slic3r::DevAmsTray::operator== ( DevAmsTray const & o) const
inline
92 {
93 return id == o.id && m_fila_type == o.m_fila_type && filament_setting_id == o.filament_setting_id && color == o.color;
94 }
std::string filament_setting_id
Definition DevFilaSystem.h:62

References DevAmsTray(), color, filament_setting_id, id, and m_fila_type.

Referenced by operator!=().

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

◆ reset()

void Slic3r::DevAmsTray::reset ( )
65{
66 tag_uid = "";
67 setting_id = "";
69 m_fila_type = "";
70 sub_brands = "";
71 color = "";
72 weight = "";
73 diameter = "";
74 temp = "";
75 time = "";
76 bed_temp_type = "";
77 bed_temp = "";
78 nozzle_temp_max = "";
79 nozzle_temp_min = "";
80 xcam_info = "";
81 uuid = "";
82 k = 0.0f;
83 n = 0.0f;
84 is_bbl = false;
85 hold_count = 0;
86 remain = 0;
87}
std::string uuid
Definition DevFilaSystem.h:76
std::string nozzle_temp_min
Definition DevFilaSystem.h:74
std::string diameter
Definition DevFilaSystem.h:68
float n
Definition DevFilaSystem.h:79
std::string time
Definition DevFilaSystem.h:70
int remain
Definition DevFilaSystem.h:87
float k
Definition DevFilaSystem.h:78
std::string sub_brands
Definition DevFilaSystem.h:64
std::string nozzle_temp_max
Definition DevFilaSystem.h:73
std::string bed_temp
Definition DevFilaSystem.h:72
std::string xcam_info
Definition DevFilaSystem.h:75
std::string tag_uid
Definition DevFilaSystem.h:60
std::string temp
Definition DevFilaSystem.h:69
int hold_count
Definition DevFilaSystem.h:86
std::string weight
Definition DevFilaSystem.h:67
std::string bed_temp_type
Definition DevFilaSystem.h:71

References bed_temp, bed_temp_type, color, diameter, filament_setting_id, hold_count, is_bbl, k, m_fila_type, n, nozzle_temp_max, nozzle_temp_min, remain, setting_id, sub_brands, tag_uid, temp, time, uuid, weight, and xcam_info.

◆ set_hold_count()

void Slic3r::DevAmsTray::set_hold_count ( )
inline
#define HOLD_COUNT_MAX
Definition DevFilaSystem.h:21

References hold_count, and HOLD_COUNT_MAX.

Referenced by Slic3r::GUI::AMSMaterialsSetting::on_select_ok().

Here is the caller graph for this function:

◆ UpdateColorFromStr()

void Slic3r::DevAmsTray::UpdateColorFromStr ( const std::string & color)
55{
56 if (color.empty()) return;
57 if (this->color != color)
58 {
59 wx_color = "#" + wxString::FromUTF8(color);
60 this->color = color;
61 }
62}
wxColour wx_color
Definition DevFilaSystem.h:82

References color, and wx_color.

Referenced by Slic3r::DevFilaSystemParser::ParseAgentFilament(), and Slic3r::DevFilaSystemParser::ParseV1_0().

Here is the caller graph for this function:

Member Data Documentation

◆ bed_temp

std::string Slic3r::DevAmsTray::bed_temp

◆ bed_temp_type

std::string Slic3r::DevAmsTray::bed_temp_type

◆ cali_idx

◆ color

◆ cols

◆ ctype

◆ diameter

◆ filament_setting_id

std::string Slic3r::DevAmsTray::filament_setting_id

◆ hold_count

int Slic3r::DevAmsTray::hold_count = 0

◆ id

◆ is_bbl

bool Slic3r::DevAmsTray::is_bbl

◆ is_exists

◆ is_slot_placeholder

bool Slic3r::DevAmsTray::is_slot_placeholder = false

◆ k

◆ m_fila_type

◆ n

float Slic3r::DevAmsTray::n = 0.0f

◆ nozzle_temp_max

◆ nozzle_temp_min

◆ remain

◆ setting_id

◆ sub_brands

std::string Slic3r::DevAmsTray::sub_brands

◆ tag_uid

std::string Slic3r::DevAmsTray::tag_uid

◆ temp

std::string Slic3r::DevAmsTray::temp

◆ time

std::string Slic3r::DevAmsTray::time

◆ uuid

std::string Slic3r::DevAmsTray::uuid

◆ weight

◆ wx_color

wxColour Slic3r::DevAmsTray::wx_color

◆ xcam_info

std::string Slic3r::DevAmsTray::xcam_info

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