NEW:Support parsing of bit parameters
Change-Id: I9b474a0e8b1bbfb5b1a4f2748f3f3f1e2afc6239
This commit is contained in:
parent
9e6c0106fe
commit
73c2ccd83b
|
@ -3214,7 +3214,7 @@ int MachineObject::parse_json(std::string payload, bool key_field_only)
|
||||||
if (!key_field_only) {
|
if (!key_field_only) {
|
||||||
if (jj.contains("flag3")) {
|
if (jj.contains("flag3")) {
|
||||||
int flag3 = jj["flag3"].get<int>();
|
int flag3 = jj["flag3"].get<int>();
|
||||||
//is_support_filament_setting_inprinting = get_flag_bits(flag3, 3);
|
is_support_filament_setting_inprinting = get_flag_bits(flag3, 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!key_field_only) {
|
if (!key_field_only) {
|
||||||
|
@ -5266,6 +5266,26 @@ void MachineObject::update_filament_list()
|
||||||
m_filament_list = filament_list;
|
m_filament_list = filament_list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int MachineObject::get_flag_bits(std::string str, int start, int count)
|
||||||
|
{
|
||||||
|
int decimal_value = std::stoi(str, nullptr, 16);
|
||||||
|
int mask = 0;
|
||||||
|
for (int i = 0; i < count; i++) { mask += 1 << (start + i); }
|
||||||
|
|
||||||
|
int flag = (decimal_value & (mask)) >> start;
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
int MachineObject::get_flag_bits(int num, int start, int count)
|
||||||
|
{
|
||||||
|
int decimal_value = num;
|
||||||
|
int mask = 0;
|
||||||
|
for (int i = 0; i < count; i++) { mask += 1 << (start + i); }
|
||||||
|
|
||||||
|
int flag = (decimal_value & (mask)) >> start;
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
|
||||||
void MachineObject::update_printer_preset_name(const std::string &nozzle_diameter_str)
|
void MachineObject::update_printer_preset_name(const std::string &nozzle_diameter_str)
|
||||||
{
|
{
|
||||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ << "start update preset_name";
|
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ << "start update preset_name";
|
||||||
|
|
|
@ -980,6 +980,8 @@ public:
|
||||||
std::string m_printer_preset_name;
|
std::string m_printer_preset_name;
|
||||||
std::map<std::string, std::pair<int, int>> m_filament_list; // filament_id, pair<min temp, max temp>
|
std::map<std::string, std::pair<int, int>> m_filament_list; // filament_id, pair<min temp, max temp>
|
||||||
void update_filament_list();
|
void update_filament_list();
|
||||||
|
int get_flag_bits(std::string str, int start, int count);
|
||||||
|
int get_flag_bits(int num, int start, int count);
|
||||||
void update_printer_preset_name(const std::string &nozzle_diameter_str);
|
void update_printer_preset_name(const std::string &nozzle_diameter_str);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue