Fix serial io exception handling. Fix file system data fetch.
This commit is contained in:
@ -286,8 +286,7 @@ class BambuVirtualPrinter:
|
||||
@gcode_executor.register("M23")
|
||||
def _select_sd_file(self, data: str) -> bool:
|
||||
filename = data.split(maxsplit=1)[1].strip()
|
||||
self.file_system.select_file(filename)
|
||||
return True
|
||||
return self.file_system.select_file(filename)
|
||||
|
||||
@gcode_executor.register("M26")
|
||||
def _set_sd_position(self, data: str) -> bool:
|
||||
|
@ -313,8 +313,7 @@ class GCodeExecutor:
|
||||
return True
|
||||
except Exception as e:
|
||||
self._log.error(f"Error during gcode {gcode_info}")
|
||||
self._log.error(e, exc_info=True)
|
||||
return False
|
||||
raise
|
||||
|
||||
def _gcode_with_info(self, gcode):
|
||||
return f"{gcode} ({GCODE_DOCUMENTATION.get(gcode, 'Info not specified')})"
|
||||
|
@ -76,6 +76,8 @@ class PrinterSerialIO(threading.Thread, BufferedIOBase):
|
||||
continue
|
||||
except Exception as e:
|
||||
self._error_detected = e
|
||||
self.input_bytes.task_done()
|
||||
self.input_bytes.clear()
|
||||
break
|
||||
|
||||
self._log.debug("Closing IO read loop")
|
||||
|
@ -95,10 +95,12 @@ class RemoteSDCardFileList:
|
||||
|
||||
def _get_file_data(self, file_path: str) -> FileInfo | None:
|
||||
self._logger.debug(f"_getSdFileData: {file_path}")
|
||||
|
||||
# replace if name is an alias
|
||||
file_name = Path(file_path).name.lower()
|
||||
full_file_name = self._file_alias_cache.get(file_name, None)
|
||||
if full_file_name is not None:
|
||||
data = self._file_data_cache.get(file_name, None)
|
||||
file_name = self._file_alias_cache.get(file_name, file_name)
|
||||
|
||||
data = self._file_data_cache.get(file_name, None)
|
||||
self._logger.debug(f"_getSdFileData: {data}")
|
||||
return data
|
||||
|
||||
@ -133,10 +135,8 @@ class RemoteSDCardFileList:
|
||||
file_name = Path(file_path).name
|
||||
file_info = self._get_file_data(file_name)
|
||||
if file_info is None:
|
||||
file_info = self._get_file_data(file_name)
|
||||
if file_info is None:
|
||||
self._logger.error(f"{file_name} open failed")
|
||||
return False
|
||||
self._logger.error(f"{file_name} open failed")
|
||||
return False
|
||||
|
||||
if (
|
||||
self._selected_file_info is not None
|
||||
|
Reference in New Issue
Block a user