#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/Utils/TCPConsole.hpp>
|
| using | tcp = boost::asio::ip::tcp |
◆ tcp
◆ TCPConsole() [1/2]
| Slic3r::Utils::TCPConsole::TCPConsole |
( |
| ) |
|
|
inline |
tcp::resolver m_resolver
Definition TCPConsole.hpp:99
void set_defaults()
Definition TCPConsole.hpp:31
tcp::socket m_socket
Definition TCPConsole.hpp:100
boost::asio::io_context m_io_context
Definition TCPConsole.hpp:98
References m_io_context, m_resolver, m_socket, and set_defaults().
◆ TCPConsole() [2/2]
| Slic3r::Utils::TCPConsole::TCPConsole |
( |
const std::string & | host_name, |
|
|
const std::string & | port_name ) |
|
inline |
◆ ~TCPConsole()
| Slic3r::Utils::TCPConsole::~TCPConsole |
( |
| ) |
|
|
default |
◆ enqueue_cmd()
| bool Slic3r::Utils::TCPConsole::enqueue_cmd |
( |
const SerialMessage & | cmd | ) |
|
|
inline |
◆ error_message()
| std::string Slic3r::Utils::TCPConsole::error_message |
( |
| ) |
const |
|
inline |
◆ extract_next_line()
| std::string Slic3r::Utils::TCPConsole::extract_next_line |
( |
| ) |
|
|
private |
72{
73 char linebuf[1024];
75 is.getline(linebuf, sizeof(linebuf));
76 return is.good() ? linebuf : std::string{};
77}
boost::asio::streambuf m_recv_buffer
Definition TCPConsole.hpp:101
References m_recv_buffer.
Referenced by handle_read().
◆ handle_connect()
| void Slic3r::Utils::TCPConsole::handle_connect |
( |
const boost::system::error_code & | ec | ) |
|
|
private |
135{
137
138 if (ec) {
139 BOOST_LOG_TRIVIAL(error) << boost::format("TCPConsole: Can't connect to %1%:%2%: %3%")
142 % ec.message();
143
145 }
146 else {
148 BOOST_LOG_TRIVIAL(info) << boost::format("TCPConsole: connected to %1%:%2%")
151
153 }
154}
std::string m_host_name
Definition TCPConsole.hpp:87
std::string m_port_name
Definition TCPConsole.hpp:88
void transmit_next_command()
Definition TCPConsole.cpp:28
bool m_is_connected
Definition TCPConsole.hpp:104
References m_error_code, m_host_name, m_io_context, m_is_connected, m_port_name, and transmit_next_command().
Referenced by run_queue().
◆ handle_read()
| void Slic3r::Utils::TCPConsole::handle_read |
( |
const boost::system::error_code & | ec, |
|
|
std::size_t | bytes_transferred ) |
|
private |
82{
84
85 if (ec) {
86 BOOST_LOG_TRIVIAL(error) << boost::format("TCPConsole: Can't read from %1%:%2%: %3%")
89 % ec.message();
90
92 }
93 else {
95 boost::trim(line);
96
97 BOOST_LOG_TRIVIAL(debug) << boost::format("TCPConsole: received '%3%' from %1%:%2%")
100 % line;
101
102 boost::to_lower(line);
103
106 else
108 }
109}
void wait_next_line()
Definition TCPConsole.cpp:59
std::string m_done_string
Definition TCPConsole.hpp:90
std::string extract_next_line()
Definition TCPConsole.cpp:71
References extract_next_line(), m_done_string, m_error_code, m_host_name, m_io_context, m_port_name, transmit_next_command(), and wait_next_line().
Referenced by wait_next_line().
◆ handle_write()
| void Slic3r::Utils::TCPConsole::handle_write |
( |
const boost::system::error_code & | ec, |
|
|
std::size_t | bytes_transferred, |
|
|
SerialMessageType | messageType ) |
|
private |
◆ is_deadline_over()
| bool Slic3r::Utils::TCPConsole::is_deadline_over |
( |
| ) |
const |
|
private |
161{
162 return m_deadline < std::chrono::steady_clock::now();
163}
std::chrono::steady_clock::time_point m_deadline
Definition TCPConsole.hpp:106
References m_deadline.
Referenced by run_queue().
◆ run_queue()
| bool Slic3r::Utils::TCPConsole::run_queue |
( |
| ) |
|
166{
167 try {
168
172
174
175 m_socket.async_connect(endpoints->endpoint(),
177 );
178
179
180
181 bool timeout = false;
185 }
186 m_io_context.run_for(boost::asio::chrono::milliseconds(100));
187 }
188
189
190 if (timeout)
191 m_error_code = make_error_code(boost::asio::error::timed_out);
192
193
195
197
198 return false;
199 }
200
201
203 BOOST_LOG_TRIVIAL(error) << "TCPConsole: command queue is not empty after end of exchange";
204 return false;
205 }
206 }
207 catch (std::exception& e)
208 {
209 BOOST_LOG_TRIVIAL(error) << boost::format("TCPConsole: Exception while talking with %1%:%2%: %3%")
212 % e.what();
213
214 return false;
215 }
216
217 return true;
218}
void set_deadline_in(std::chrono::steady_clock::duration)
Definition TCPConsole.cpp:156
void handle_connect(const boost::system::error_code &ec)
Definition TCPConsole.cpp:134
std::chrono::steady_clock::duration m_connect_timeout
Definition TCPConsole.hpp:91
bool is_deadline_over() const
Definition TCPConsole.cpp:160
References handle_connect(), is_deadline_over(), m_cmd_queue, m_connect_timeout, m_error_code, m_host_name, m_io_context, m_is_connected, m_port_name, m_resolver, m_socket, and set_deadline_in().
Referenced by Slic3r::MKS::start_print(), and Slic3r::MKS::test().
◆ set_command_done_string()
| void Slic3r::Utils::TCPConsole::set_command_done_string |
( |
const std::string & | done_string | ) |
|
|
inline |
◆ set_deadline_in()
| void Slic3r::Utils::TCPConsole::set_deadline_in |
( |
std::chrono::steady_clock::duration | d | ) |
|
|
private |
◆ set_defaults()
| void Slic3r::Utils::TCPConsole::set_defaults |
( |
| ) |
|
|
inline |
◆ set_line_delimiter()
| void Slic3r::Utils::TCPConsole::set_line_delimiter |
( |
const std::string & | newline | ) |
|
|
inline |
◆ set_read_timeout()
| void Slic3r::Utils::TCPConsole::set_read_timeout |
( |
std::chrono::steady_clock::duration | timeout | ) |
|
|
inline |
◆ set_remote()
| void Slic3r::Utils::TCPConsole::set_remote |
( |
const std::string & | host_name, |
|
|
const std::string & | port_name ) |
|
inline |
◆ set_tcp_queue_delay()
| void Slic3r::Utils::TCPConsole::set_tcp_queue_delay |
( |
std::chrono::steady_clock::duration | delay | ) |
|
|
inline |
◆ set_write_timeout()
| void Slic3r::Utils::TCPConsole::set_write_timeout |
( |
std::chrono::steady_clock::duration | timeout | ) |
|
|
inline |
◆ transmit_next_command()
| void Slic3r::Utils::TCPConsole::transmit_next_command |
( |
| ) |
|
|
private |
29{
32 return;
33 }
34
36
39
40 BOOST_LOG_TRIVIAL(debug) << boost::format("TCPConsole: transmitting '%3%' to %1%:%2%")
43 % cmd.message;
44
46
47 if (cmd.messageType ==
Command) {
49 }
50
52 boost::asio::async_write(
56 );
57}
std::string m_send_buffer
Definition TCPConsole.hpp:102
void handle_write(const boost::system::error_code &ec, std::size_t bytes_transferred, SerialMessageType messageType)
Definition TCPConsole.cpp:111
References Slic3r::Utils::Command, handle_write(), m_cmd_queue, m_host_name, m_io_context, m_newline, m_port_name, m_send_buffer, m_socket, m_tcp_queue_delay, m_write_timeout, Slic3r::Utils::SerialMessage::message, Slic3r::Utils::SerialMessage::messageType, and set_deadline_in().
Referenced by handle_connect(), handle_read(), and handle_write().
◆ wait_next_line()
| void Slic3r::Utils::TCPConsole::wait_next_line |
( |
| ) |
|
|
private |
◆ m_cmd_queue
◆ m_connect_timeout
| std::chrono::steady_clock::duration Slic3r::Utils::TCPConsole::m_connect_timeout |
|
private |
◆ m_deadline
| std::chrono::steady_clock::time_point Slic3r::Utils::TCPConsole::m_deadline |
|
private |
◆ m_done_string
| std::string Slic3r::Utils::TCPConsole::m_done_string |
|
private |
◆ m_error_code
| boost::system::error_code Slic3r::Utils::TCPConsole::m_error_code |
|
private |
◆ m_host_name
| std::string Slic3r::Utils::TCPConsole::m_host_name |
|
private |
◆ m_io_context
| boost::asio::io_context Slic3r::Utils::TCPConsole::m_io_context |
|
private |
◆ m_is_connected
| bool Slic3r::Utils::TCPConsole::m_is_connected |
|
private |
◆ m_newline
| std::string Slic3r::Utils::TCPConsole::m_newline |
|
private |
◆ m_port_name
| std::string Slic3r::Utils::TCPConsole::m_port_name |
|
private |
◆ m_read_timeout
| std::chrono::steady_clock::duration Slic3r::Utils::TCPConsole::m_read_timeout |
|
private |
◆ m_recv_buffer
| boost::asio::streambuf Slic3r::Utils::TCPConsole::m_recv_buffer |
|
private |
◆ m_resolver
| tcp::resolver Slic3r::Utils::TCPConsole::m_resolver |
|
private |
◆ m_send_buffer
| std::string Slic3r::Utils::TCPConsole::m_send_buffer |
|
private |
◆ m_socket
| tcp::socket Slic3r::Utils::TCPConsole::m_socket |
|
private |
◆ m_tcp_queue_delay
| std::chrono::steady_clock::duration Slic3r::Utils::TCPConsole::m_tcp_queue_delay |
|
private |
◆ m_write_timeout
| std::chrono::steady_clock::duration Slic3r::Utils::TCPConsole::m_write_timeout |
|
private |
The documentation for this class was generated from the following files:
- /home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/Utils/TCPConsole.hpp
- /home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/Utils/TCPConsole.cpp