mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-23 14:44:19 -06:00
FIX: handle printer file downalod failure
Change-Id: I1e8cbf4a6d4081270ed78bf7d1471eb1d6114a0b
This commit is contained in:
parent
5a0f9ff4f0
commit
448e3b8a8b
3 changed files with 18 additions and 3 deletions
|
@ -19,6 +19,16 @@
|
|||
//#define PRINTER_FILE_SYSTEM_TEST
|
||||
#endif
|
||||
|
||||
std::string last_system_error() {
|
||||
return std::error_code(
|
||||
#ifdef _WIN32
|
||||
GetLastError(),
|
||||
#else
|
||||
errno,
|
||||
#endif
|
||||
std::system_category()).message();
|
||||
}
|
||||
|
||||
wxDEFINE_EVENT(EVT_STATUS_CHANGED, wxCommandEvent);
|
||||
wxDEFINE_EVENT(EVT_MODE_CHANGED, wxCommandEvent);
|
||||
wxDEFINE_EVENT(EVT_FILE_CHANGED, wxCommandEvent);
|
||||
|
@ -628,6 +638,7 @@ void PrinterFileSystem::DownloadNextFile()
|
|||
prog.total = resp["total"];
|
||||
if (prog.size == 0) {
|
||||
download->ofs.open(download->local_path, std::ios::binary);
|
||||
wxLogWarning("PrinterFileSystem::DownloadNextFile open error: %s\n", wxString::FromUTF8(last_system_error()));
|
||||
if (!download->ofs) return FILE_OPEN_ERR;
|
||||
}
|
||||
if (download->total && (download->size != prog.size || download->total != prog.total)) {
|
||||
|
@ -635,6 +646,10 @@ void PrinterFileSystem::DownloadNextFile()
|
|||
}
|
||||
// receive data
|
||||
download->ofs.write((char const *) data, size);
|
||||
if (!download->ofs) {
|
||||
wxLogWarning("PrinterFileSystem::DownloadNextFile write error: %s\n", wxString::FromUTF8(last_system_error()));
|
||||
return FILE_READ_WRITE_ERR;
|
||||
}
|
||||
download->boost_md5.process_bytes(data, size);
|
||||
prog.size += size;
|
||||
download->total = prog.total;
|
||||
|
@ -993,7 +1008,7 @@ void PrinterFileSystem::SendChangedEvent(wxEventType type, size_t index, std::st
|
|||
if (!str.empty())
|
||||
event.SetString(wxString::FromUTF8(str.c_str()));
|
||||
else if (auto iter = error_messages.find(extra); iter != error_messages.end())
|
||||
event.SetString(wxString::FromUTF8(iter->second.c_str()));
|
||||
event.SetString(_L(iter->second.c_str()));
|
||||
event.SetExtraLong(extra);
|
||||
if (wxThread::IsMain())
|
||||
ProcessEventLocally(event);
|
||||
|
|
|
@ -48,7 +48,7 @@ public:
|
|||
FILE_NAME_INVALID = 11,
|
||||
FILE_SIZE_ERR = 12,
|
||||
FILE_OPEN_ERR = 13,
|
||||
FILE_READ_ERR = 14,
|
||||
FILE_READ_WRITE_ERR = 14,
|
||||
FILE_CHECK_ERR = 15,
|
||||
FILE_TYPE_ERR = 16,
|
||||
STORAGE_UNAVAILABLE = 17,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue