Loading openflexure_microscope/rescue/auto.py +2 −1 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ from openflexure_microscope.paths import ( PREFERRED_OPENFLEXURE_VAR_PATH, ) from . import check_capture_reload, check_settings, check_picamera, check_sangaboard from . import check_capture_reload, check_settings, check_picamera, check_sangaboard, check_system # Paths for suggestions LOGS_PATHS = [ Loading Loading @@ -43,6 +43,7 @@ if __name__ == "__main__": error_sources = [] error_sources.extend(check_system.main()) error_sources.extend(check_settings.main()) error_sources.extend(check_picamera.main()) error_sources.extend(check_capture_reload.main()) Loading openflexure_microscope/rescue/check_system.py 0 → 100644 +53 −0 Original line number Diff line number Diff line from urllib.request import urlopen from urllib.error import URLError import psutil from .error_sources import WarningSource def internet_on(): test_urls = ( 'https://build.openflexure.org', # Bath server 'https://openflexure.org' # GitHub pages ) for url in test_urls: try: urlopen(url, timeout=10) # If any test passes, return True return True except URLError: pass # If no test passed, return False return False def main(): error_sources = [] # Check internet if not internet_on(): error_sources.append(WarningSource( "No internet connection detected. Updates may not be available." )) # Check memory mem = psutil.virtual_memory() total_gb = mem.total / 1E9 if total_gb <= 1: error_sources.append(WarningSource( ("Less than 1GB total memory available.", "For small scans, or control from another device, this is usually fine.", "\n More complex usage may require additional resources.") )) # Check disks data_partitions = [disk for disk in psutil.disk_partitions() if "rw" in disk.opts and disk.mountpoint != "/boot"] for part in data_partitions: usage = psutil.disk_usage(part.mountpoint) if int(usage.percent) >= 90: error_sources.append(WarningSource( (f"Disk {part.device}, at {part.mountpoint} is {int(usage.percent)}% full.", "Captures may fail to save soon.") )) return error_sources Loading
openflexure_microscope/rescue/auto.py +2 −1 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ from openflexure_microscope.paths import ( PREFERRED_OPENFLEXURE_VAR_PATH, ) from . import check_capture_reload, check_settings, check_picamera, check_sangaboard from . import check_capture_reload, check_settings, check_picamera, check_sangaboard, check_system # Paths for suggestions LOGS_PATHS = [ Loading Loading @@ -43,6 +43,7 @@ if __name__ == "__main__": error_sources = [] error_sources.extend(check_system.main()) error_sources.extend(check_settings.main()) error_sources.extend(check_picamera.main()) error_sources.extend(check_capture_reload.main()) Loading
openflexure_microscope/rescue/check_system.py 0 → 100644 +53 −0 Original line number Diff line number Diff line from urllib.request import urlopen from urllib.error import URLError import psutil from .error_sources import WarningSource def internet_on(): test_urls = ( 'https://build.openflexure.org', # Bath server 'https://openflexure.org' # GitHub pages ) for url in test_urls: try: urlopen(url, timeout=10) # If any test passes, return True return True except URLError: pass # If no test passed, return False return False def main(): error_sources = [] # Check internet if not internet_on(): error_sources.append(WarningSource( "No internet connection detected. Updates may not be available." )) # Check memory mem = psutil.virtual_memory() total_gb = mem.total / 1E9 if total_gb <= 1: error_sources.append(WarningSource( ("Less than 1GB total memory available.", "For small scans, or control from another device, this is usually fine.", "\n More complex usage may require additional resources.") )) # Check disks data_partitions = [disk for disk in psutil.disk_partitions() if "rw" in disk.opts and disk.mountpoint != "/boot"] for part in data_partitions: usage = psutil.disk_usage(part.mountpoint) if int(usage.percent) >= 90: error_sources.append(WarningSource( (f"Disk {part.device}, at {part.mountpoint} is {int(usage.percent)}% full.", "Captures may fail to save soon.") )) return error_sources