Loading openflexure_microscope/rescue/auto.py +22 −3 Original line number Diff line number Diff line Loading @@ -9,7 +9,13 @@ from openflexure_microscope.paths import ( PREFERRED_OPENFLEXURE_VAR_PATH, ) from . import check_capture_reload, check_settings, check_picamera, check_sangaboard, check_system from . import ( check_capture_reload, check_settings, check_picamera, check_sangaboard, check_system, ) # Paths for suggestions LOGS_PATHS = [ Loading @@ -35,12 +41,25 @@ if "-d" in sys.argv or "--debug" in sys.argv: logger.setLevel(logging.DEBUG) logging.debug("Testing debug logger. One two one two.") else: logger.setLevel(logging.INFO) logger.setLevel(logging.WARNING) if __name__ == "__main__": spoof = False print() print(bcolors.HEADER + "OpenFlexure Rescue" + bcolors.ENDC) print() print( "This script attempts to identify common issues for a microscope not working properly." ) print( "It is not designed to identify bugs in the code, but rather configuration or setup issues." ) print() print("Any identified warnings [?] or errors [!] will be reported.") print() error_sources = [] error_sources.extend(check_system.main()) Loading @@ -51,7 +70,7 @@ if __name__ == "__main__": if not error_sources: print() print(bcolors.OKGREEN + "No errors found!" + bcolors.ENDC) print(bcolors.OKGREEN + "No issues found!" + bcolors.ENDC) print( "That's not to say everything is fine, only that our automatic diagnostics couldn't find much." ) Loading openflexure_microscope/rescue/check_system.py +34 −19 Original line number Diff line number Diff line Loading @@ -4,10 +4,11 @@ import psutil from .error_sources import WarningSource def internet_on(): test_urls = ( 'https://build.openflexure.org', # Bath server 'https://openflexure.org' # GitHub pages "https://build.openflexure.org", # Bath server "https://openflexure.org", # GitHub pages ) for url in test_urls: try: Loading @@ -25,29 +26,43 @@ def main(): # Check internet if not internet_on(): error_sources.append(WarningSource( error_sources.append( WarningSource( "No internet connection detected. Updates may not be available." )) ) ) # Check memory mem = psutil.virtual_memory() total_gb = mem.total / 1E9 total_gb = mem.total / 1e9 if total_gb <= 1: error_sources.append(WarningSource( ("Less than 1GB total memory available.", 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.") )) "\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"] 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.") )) 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 +22 −3 Original line number Diff line number Diff line Loading @@ -9,7 +9,13 @@ from openflexure_microscope.paths import ( PREFERRED_OPENFLEXURE_VAR_PATH, ) from . import check_capture_reload, check_settings, check_picamera, check_sangaboard, check_system from . import ( check_capture_reload, check_settings, check_picamera, check_sangaboard, check_system, ) # Paths for suggestions LOGS_PATHS = [ Loading @@ -35,12 +41,25 @@ if "-d" in sys.argv or "--debug" in sys.argv: logger.setLevel(logging.DEBUG) logging.debug("Testing debug logger. One two one two.") else: logger.setLevel(logging.INFO) logger.setLevel(logging.WARNING) if __name__ == "__main__": spoof = False print() print(bcolors.HEADER + "OpenFlexure Rescue" + bcolors.ENDC) print() print( "This script attempts to identify common issues for a microscope not working properly." ) print( "It is not designed to identify bugs in the code, but rather configuration or setup issues." ) print() print("Any identified warnings [?] or errors [!] will be reported.") print() error_sources = [] error_sources.extend(check_system.main()) Loading @@ -51,7 +70,7 @@ if __name__ == "__main__": if not error_sources: print() print(bcolors.OKGREEN + "No errors found!" + bcolors.ENDC) print(bcolors.OKGREEN + "No issues found!" + bcolors.ENDC) print( "That's not to say everything is fine, only that our automatic diagnostics couldn't find much." ) Loading
openflexure_microscope/rescue/check_system.py +34 −19 Original line number Diff line number Diff line Loading @@ -4,10 +4,11 @@ import psutil from .error_sources import WarningSource def internet_on(): test_urls = ( 'https://build.openflexure.org', # Bath server 'https://openflexure.org' # GitHub pages "https://build.openflexure.org", # Bath server "https://openflexure.org", # GitHub pages ) for url in test_urls: try: Loading @@ -25,29 +26,43 @@ def main(): # Check internet if not internet_on(): error_sources.append(WarningSource( error_sources.append( WarningSource( "No internet connection detected. Updates may not be available." )) ) ) # Check memory mem = psutil.virtual_memory() total_gb = mem.total / 1E9 total_gb = mem.total / 1e9 if total_gb <= 1: error_sources.append(WarningSource( ("Less than 1GB total memory available.", 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.") )) "\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"] 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.") )) 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