diff --git a/src/slic3r/Utils/Flashforge.cpp b/src/slic3r/Utils/Flashforge.cpp index 068b1432d7..6161623e15 100644 --- a/src/slic3r/Utils/Flashforge.cpp +++ b/src/slic3r/Utils/Flashforge.cpp @@ -67,6 +67,9 @@ bool Flashforge::upload(PrintHostUpload upload_data, ProgressFn progress_fn, Err bool res = true; Utils::TCPConsole client(m_host, m_console_port); + //sometimes FF AD5M is very slow in data upload, so timeout is increased to 10 minutes + client.set_write_timeout(std::chrono::minutes(10)); + client.set_read_timeout(std::chrono::minutes(10)); client.enqueue_cmd(controlCommand); client.enqueue_cmd(connect5MCommand); diff --git a/src/slic3r/Utils/TCPConsole.hpp b/src/slic3r/Utils/TCPConsole.hpp index 7592e9c7ec..ac11f60de5 100644 --- a/src/slic3r/Utils/TCPConsole.hpp +++ b/src/slic3r/Utils/TCPConsole.hpp @@ -33,6 +33,14 @@ class TCPConsole m_read_timeout = std::chrono::milliseconds(10000); } + void set_write_timeout(std::chrono::steady_clock::duration timeout) { + m_write_timeout = timeout; + } + + void set_read_timeout(std::chrono::steady_clock::duration timeout) { + m_read_timeout = timeout; + } + void set_line_delimiter(const std::string& newline) { m_newline = newline; }