NEW:Support parsing of bit parameters
Change-Id: I9b474a0e8b1bbfb5b1a4f2748f3f3f1e2afc6239 (cherry picked from commit 73c2ccd83b96490aee58f8cfe912e3ab66982094)
This commit is contained in:
parent
8f08b587c6
commit
66e5cbd8e8
2 changed files with 23 additions and 1 deletions
|
@ -3173,7 +3173,7 @@ int MachineObject::parse_json(std::string payload, bool key_field_only)
|
|||
if (!key_field_only) {
|
||||
if (jj.contains("flag3")) {
|
||||
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) {
|
||||
|
@ -5203,6 +5203,26 @@ void MachineObject::update_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)
|
||||
{
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ << "start update preset_name";
|
||||
|
|
|
@ -980,6 +980,8 @@ public:
|
|||
std::string m_printer_preset_name;
|
||||
std::map<std::string, std::pair<int, int>> m_filament_list; // filament_id, pair<min temp, max temp>
|
||||
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);
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue