mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-07 23:17:35 -06:00
FIX: not handle print sequence id in mqtt message
Change-Id: I2d097cc23b165a2c8c7e85cd38a34b314f7b0bb5
This commit is contained in:
parent
e7af4eeccc
commit
2ccf0a84d8
2 changed files with 4 additions and 26 deletions
|
@ -2484,7 +2484,7 @@ int MachineObject::parse_json(std::string payload)
|
||||||
parse_msg_count++;
|
parse_msg_count++;
|
||||||
std::chrono::system_clock::time_point clock_start = std::chrono::system_clock::now();
|
std::chrono::system_clock::time_point clock_start = std::chrono::system_clock::now();
|
||||||
this->set_online_state(true);
|
this->set_online_state(true);
|
||||||
if (m_active_state == NotActive) m_active_state = SequenceNotValid;
|
if (m_active_state == NotActive) m_active_state = Active;
|
||||||
|
|
||||||
/* update last received time */
|
/* update last received time */
|
||||||
last_update_time = std::chrono::system_clock::now();
|
last_update_time = std::chrono::system_clock::now();
|
||||||
|
@ -2498,26 +2498,6 @@ int MachineObject::parse_json(std::string payload)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (j_pre.contains("print")) {
|
if (j_pre.contains("print")) {
|
||||||
if (j_pre["print"].contains("sequence_id") && j_pre["print"]["command"] == "push_status") {
|
|
||||||
if (j_pre["print"]["sequence_id"].is_string()) {
|
|
||||||
std::string str_seq = j_pre["print"]["sequence_id"].get<std::string>();
|
|
||||||
try {
|
|
||||||
int sequence_id = stoi(str_seq);
|
|
||||||
if (j_pre["print"]["msg"].get<int>() == 0) { // all message
|
|
||||||
if (m_active_state == SequenceNotValid) m_active_state = SequenceValid; // Have init print_sequence_id
|
|
||||||
print_sequence_id = sequence_id;
|
|
||||||
} else if (sequence_id != print_sequence_id + 1 && m_active_state >= SequenceValid) {
|
|
||||||
wxLogWarning("parse_json: print_sequence_id gap, %d -> %d %s", print_sequence_id, sequence_id, wxString::FromUTF8(payload));
|
|
||||||
if (m_active_state == SequenceValid) m_active_state = SequenceNotValid;
|
|
||||||
GUI::wxGetApp().CallAfter([this] { this->command_request_push_all(); });
|
|
||||||
} else if (m_active_state >= SequenceValid) {
|
|
||||||
print_sequence_id = sequence_id;
|
|
||||||
}
|
|
||||||
} catch (...) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (j_pre["print"].contains("command")) {
|
if (j_pre["print"].contains("command")) {
|
||||||
if (j_pre["print"]["command"].get<std::string>() == "push_status") {
|
if (j_pre["print"]["command"].get<std::string>() == "push_status") {
|
||||||
if (j_pre["print"].contains("msg")) {
|
if (j_pre["print"].contains("msg")) {
|
||||||
|
@ -3895,7 +3875,7 @@ int MachineObject::parse_json(std::string payload)
|
||||||
}
|
}
|
||||||
catch (...) {}
|
catch (...) {}
|
||||||
|
|
||||||
if (m_active_state == SequenceValid) {
|
if (m_active_state == Active) {
|
||||||
m_active_state = UpdateToDate;
|
m_active_state = UpdateToDate;
|
||||||
parse_version_func();
|
parse_version_func();
|
||||||
if (is_support_tunnel_mqtt && connection_type() != "lan") {
|
if (is_support_tunnel_mqtt && connection_type() != "lan") {
|
||||||
|
|
|
@ -422,8 +422,7 @@ public:
|
||||||
|
|
||||||
enum ActiveState {
|
enum ActiveState {
|
||||||
NotActive,
|
NotActive,
|
||||||
SequenceNotValid,
|
Active,
|
||||||
SequenceValid,
|
|
||||||
UpdateToDate
|
UpdateToDate
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -497,9 +496,8 @@ public:
|
||||||
std::chrono::system_clock::time_point last_request_push; /* last received print push from machine */
|
std::chrono::system_clock::time_point last_request_push; /* last received print push from machine */
|
||||||
std::chrono::system_clock::time_point last_request_start; /* last received print push from machine */
|
std::chrono::system_clock::time_point last_request_start; /* last received print push from machine */
|
||||||
|
|
||||||
int m_active_state = 0; // 0 - not active, 1 - active but print_sequence_id not valid, 1 - active but no update-to-date state, 2 - update-to-date
|
int m_active_state = 0; // 0 - not active, 1 - active, 2 - update-to-date
|
||||||
bool is_support_tunnel_mqtt = false;
|
bool is_support_tunnel_mqtt = false;
|
||||||
int print_sequence_id = 0;
|
|
||||||
bool is_tunnel_mqtt = false;
|
bool is_tunnel_mqtt = false;
|
||||||
|
|
||||||
/* ams properties */
|
/* ams properties */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue