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

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

Collaboration diagram for Slic3r::DevCtrlInfo:

Public Member Functions

 DevCtrlInfo ()
 DevCtrlInfo (MachineObject *obj, int sequence_id, const nlohmann::json &req_json, int interval_max=3, int interval_min=0)
bool CheckCanUpdateData (const nlohmann::json &jj)

Private Member Functions

void OnTimeOut ()
void OnReceived ()

Private Attributes

bool m_time_out = false
bool m_received = false
std::string m_request_dev_id = ""
time_t m_request_time = 0
int m_request_seq = 0
nlohmann::json m_request_json = nlohmann::json()
int m_request_interval_max = 3
int m_request_interval_min = 0

Detailed Description

Constructor & Destructor Documentation

◆ DevCtrlInfo() [1/2]

Slic3r::DevCtrlInfo::DevCtrlInfo ( )
inline
17{};

◆ DevCtrlInfo() [2/2]

Slic3r::DevCtrlInfo::DevCtrlInfo ( MachineObject * obj,
int sequence_id,
const nlohmann::json & req_json,
int interval_max = 3,
int interval_min = 0 )
16{
17 m_request_dev_id = obj->get_dev_id();
18 m_request_seq = sequence_id;
19 m_request_time = time(nullptr);
20 m_request_json = req_json;
21 m_request_interval_max = interval_max;
22 m_request_interval_min = interval_min;
23}
nlohmann::json m_request_json
Definition DevCtrl.h:35
time_t m_request_time
Definition DevCtrl.h:33
int m_request_interval_max
Definition DevCtrl.h:38
int m_request_seq
Definition DevCtrl.h:34
int m_request_interval_min
Definition DevCtrl.h:39
std::string m_request_dev_id
Definition DevCtrl.h:31

References Slic3r::MachineObject::get_dev_id(), m_request_dev_id, m_request_interval_max, m_request_interval_min, m_request_json, m_request_seq, and m_request_time.

Here is the call graph for this function:

Member Function Documentation

◆ CheckCanUpdateData()

bool Slic3r::DevCtrlInfo::CheckCanUpdateData ( const nlohmann::json & jj)
26{
27 if (m_request_json.empty()) {
28 return true;
29 }
30
31 if (m_time_out) {
32 return true;
33 }
34 if (time(nullptr) - m_request_time > m_request_interval_max) {
35 OnTimeOut();
36 return true;
37 }
38 if (time(nullptr) - m_request_time < m_request_interval_min) {
39 return false;
40 }
41
42 if (m_received) {
43 return true;
44 }
45 try {
46 if (jj.contains("sequence_id") && jj["sequence_id"].is_string()) {
47 int sequence_id = stoi(jj["sequence_id"].get<std::string>());
48 if (sequence_id >= m_request_seq) {
49 OnReceived();
50 return true;
51 }
52 }
53 } catch (...) {
54 ;
55 }
56
57 return false;
58}
bool m_received
Definition DevCtrl.h:29
void OnReceived()
Definition DevCtrl.h:25
bool m_time_out
Definition DevCtrl.h:28
void OnTimeOut()
Definition DevCtrl.h:24

References m_received, m_request_interval_max, m_request_interval_min, m_request_json, m_request_seq, m_request_time, m_time_out, OnReceived(), and OnTimeOut().

Here is the call graph for this function:

◆ OnReceived()

void Slic3r::DevCtrlInfo::OnReceived ( )
inlineprivate
25{ m_received = true;} ;

References m_received.

Referenced by CheckCanUpdateData().

Here is the caller graph for this function:

◆ OnTimeOut()

void Slic3r::DevCtrlInfo::OnTimeOut ( )
inlineprivate
24{ m_time_out = true;}

References m_time_out.

Referenced by CheckCanUpdateData().

Here is the caller graph for this function:

Member Data Documentation

◆ m_received

bool Slic3r::DevCtrlInfo::m_received = false
private

Referenced by CheckCanUpdateData(), and OnReceived().

◆ m_request_dev_id

std::string Slic3r::DevCtrlInfo::m_request_dev_id = ""
private

Referenced by DevCtrlInfo().

◆ m_request_interval_max

int Slic3r::DevCtrlInfo::m_request_interval_max = 3
private

Referenced by DevCtrlInfo(), and CheckCanUpdateData().

◆ m_request_interval_min

int Slic3r::DevCtrlInfo::m_request_interval_min = 0
private

Referenced by DevCtrlInfo(), and CheckCanUpdateData().

◆ m_request_json

nlohmann::json Slic3r::DevCtrlInfo::m_request_json = nlohmann::json()
private

Referenced by DevCtrlInfo(), and CheckCanUpdateData().

◆ m_request_seq

int Slic3r::DevCtrlInfo::m_request_seq = 0
private

Referenced by DevCtrlInfo(), and CheckCanUpdateData().

◆ m_request_time

time_t Slic3r::DevCtrlInfo::m_request_time = 0
private

Referenced by DevCtrlInfo(), and CheckCanUpdateData().

◆ m_time_out

bool Slic3r::DevCtrlInfo::m_time_out = false
private

Referenced by CheckCanUpdateData(), and OnTimeOut().


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