From a5e218f0b89eb7e53e73e57865e1021376dc7c52 Mon Sep 17 00:00:00 2001 From: Richard Date: Thu, 2 Jan 2025 16:39:13 -0600 Subject: [PATCH 1/9] Add option for az arrow reversal (#262) * Remove align related prints * GPS async processing (#237) * Remove active from state, put solver in loop. Fix typos and nox redefinition error * Restore logconf * Crashes on HardwarePWM * gps rewrite * wrap the generators * async gps * async gps * merge troubles * ignore hip_main.dat * SKY should leave time for TPV to run * No await for queue ops * Use other error info for faster lock * hdop and pdop getting it from sky * Fix logging * Fix wifi password with equals sign crash (#239) * Fix #238 * Fix whitespace parsing issues with re * Remove print statements as per PR review * Add missing flat camera tray, pi_sugar spacer, and adjust pimount gps holder * Formatting * Fix align, and promot in menus (#244) * Remove bg image on obj details, improve contrast on logging stars (#245) * Refactor sleep into specific manager class (#246) * Align fix Pt 2 (#247) * Refactor sleep into specific manager class * Fix align, and promot in menus * Improve reliability of align in questionable solve conditions * Remove debug print * 1. comets (#198) * Abstract color modifiers, line numbers to support nearby mode * Remove focus method * Trying sorting option visualisation * Used now MagnitudeObject, used new setup way everywhere. * Fix unit tests * nox passes now * Correct unit test * Fix linting * Extract nearby code in class. Implement update criteria and make it actually update. Make updating 1000x faster by limiting to only 100 nearby objects. * nox reformatting * Return empty list for sorting nearby without solution * Changed Debug camera behaviour. - there are now 3 images: debug1 - debug3 - 2 images solve, one doesn't - all images stay the same for 5 seconds. This is to be able to visually test nearby and other location dependent views. * Add missing soft links * Sped up nearby by ~400x, fixed planet nearby. Also removed old nearby code and put nearby classes there. * Testing long up and long down * Working comets, still mag issues * Finding ways to speed up comet calcs * Add TimerCatalog, cleanup * further debugging * missing import * Migrate PyHotkey code to latest release * Add sleeping to timed catalogs, probably not best solution * fix part of diff to main * another main diff fix * Working and cleaned up comets * Fix crash due to optional removal * Small logging changes, reinstate fake gps on fake hardware * Move all comet related code to comets.py * Better sys_utils handling * Fix possible deadlock, reduce logging * Show comet data age, object count * cleanup * 2. Restart (#243) * Add restart option * 2. Skysafari crash (#242) * Fix possible deadlock, reduce logging * Rewrite pos_server loop to be more robust for disconnects. Also added test script * Larger GPS antenna holder * Add v3 Kicad files * Fix mis-labeld restart * Add User Observing Equipment Config (#252) * Add equipment tracking * Fix up active equipment serialization, add some calculation functions * Switch eyepiece FL to floatf' * Update JLCPCB pos (pick and place) and BOM csv files * Adding test step file * fix docs typo * Updating build guide for v2.5 camera * Ignore import error for tetra3 in mypy * Remove mypy ignore * Small fixes to developer documentation (#258) * Mention option to develop on windows. * How to run Documentation locally * Revert "How to run Documentation locally" This reverts commit 75892ae242088335a7152c9a7c87c62cf92dc025. * The docs are build automatically. * Equipment (#255) * Add equipment support in the web interface. * Add missing equipment.tpl file and fix nox error. * Add missing equipment.tpl file and fix nox error. * Default mount for import from DeepskyLog is Alt/Az. * Add telescope and eyepiece information to the PiFinder interface. * Select telescope and eyepiece from the PiFinder screen. * Remove make from name on PiFinder screen. * Remove make from name on PiFinder screen. * Use one of the configured eyepieces when logging an observation. * Ruff lint/formatting * Update Cedar Detect / Solve and Solidify Align (#256) * Starting cedar update, align code changed * Cedar detect update * Cedar detect update - RPI version * Switching to selective migrations * Add submodule migration * switch check for files * working on conditionals * Recompile on rpi4 * Use cedar-solve 0.5.1 * Remove debug prints * Working on mypy failure * Update to proper tetra3 * Update for mypy * Maybe working now? * Remove symlink * Update tetra3 version * Simplify tetra3 update * Simplify tetra3 update * Ignore imu on alignment screen, adjust menu, clean up debug * Fix reticle position after alignment * Add Architecture documentation (#259) * Add entry for entering RA/DEC in Objects menu. * Add Architecture description to documentation. * Added a high level description of architecture * Added more information Running monkey fuzz scripts, Testing * Added more reqs, image is passing and short description of main processes * Revert "Add entry for entering RA/DEC in Objects menu." this is This reverts commit be5a7c81bfefc41ab8da70f336ecb3e5c25a6038. * Fix formatting of links and provide a nice structure for architecture docs * Some finetuning. * Add more documentation on process collaboration * Take PR #256 into account. --------- Co-authored-by: Jens Scheidtmann * Use raw linear images in imaging pipeline (#260) * Raw output for camera in shared state * feeding linear image through pipeline * imx296 working with auto-stretch, removed vestigal double return * Clean up capture_file * Works with v2 camera * Add option for az arrow reversal --------- Co-authored-by: mrosseel Co-authored-by: Jens Scheidtmann Co-authored-by: Wim De Meester Co-authored-by: Jens Scheidtmann --- python/PiFinder/ui/menu_structure.py | 17 +++++++++++++++++ python/PiFinder/ui/object_details.py | 10 ++++++++++ python/PiFinder/ui/object_list.py | 10 ++++++++++ 3 files changed, 37 insertions(+) diff --git a/python/PiFinder/ui/menu_structure.py b/python/PiFinder/ui/menu_structure.py index 021adce4..e27e9a3e 100644 --- a/python/PiFinder/ui/menu_structure.py +++ b/python/PiFinder/ui/menu_structure.py @@ -606,6 +606,23 @@ }, ], }, + { + "name": "Az Arrows", + "class": UITextMenu, + "select": "single", + "config_option": "pushto_az_arrows", + "label": "pushto_az_arrows", + "items": [ + { + "name": "Default", + "value": "Default", + }, + { + "name": "Reverse", + "value": "Reverse", + }, + ], + }, ], }, { diff --git a/python/PiFinder/ui/object_details.py b/python/PiFinder/ui/object_details.py index 6baed477..9c3dc52e 100644 --- a/python/PiFinder/ui/object_details.py +++ b/python/PiFinder/ui/object_details.py @@ -294,6 +294,16 @@ def _render_pointing_instructions(self): else: az_arrow = self._RIGHT_ARROW + # Check az arrow config + if ( + self.config_object.get_option("pushto_az_arrows", "Default") + == "Reverse" + ): + if az_arrow is self._LEFT_ARROW: + az_arrow = self._RIGHT_ARROW + else: + az_arrow = self._LEFT_ARROW + # Change decimal points when within 1 degree if point_az < 1: self.draw.text( diff --git a/python/PiFinder/ui/object_list.py b/python/PiFinder/ui/object_list.py index ec76b6d6..fff48f01 100644 --- a/python/PiFinder/ui/object_list.py +++ b/python/PiFinder/ui/object_list.py @@ -211,6 +211,16 @@ def format_az_alt(self, point_az, point_alt): point_az *= -1 az_arrow_symbol = self._LEFT_ARROW + # Check az arrow config + if ( + self.config_object.get_option("pushto_az_arrows", "Default") + == "Reverse" + ): + if az_arrow_symbol == self._LEFT_ARROW: + az_arrow_symbol = self._RIGHT_ARROW + else: + az_arrow_symbol = self._LEFT_ARROW + if point_az > 100: point_az = 99 From 084f876a22d7241d2abb7a530f78231356226775 Mon Sep 17 00:00:00 2001 From: Richard Date: Mon, 20 Jan 2025 17:07:03 -0800 Subject: [PATCH 2/9] Adjust Catalog Selection Logic, Add Filter by Constellation, Fix minor catalog defects (#236) Catalog filter refactor, add constellation, fix catalog data defects --- astro_data/pifinder_objects.db | Bin 5189632 -> 5189632 bytes default_config.json | 109 ++++++++++++++++++++++++++- python/PiFinder/catalog_import.py | 49 +++++++++++- python/PiFinder/catalogs.py | 40 +++++++++- python/PiFinder/main.py | 13 +--- python/PiFinder/obj_types.py | 9 ++- python/PiFinder/ui/callbacks.py | 8 +- python/PiFinder/ui/menu_structure.py | 32 +++++++- python/PiFinder/ui/text_menu.py | 2 +- 9 files changed, 237 insertions(+), 25 deletions(-) diff --git a/astro_data/pifinder_objects.db b/astro_data/pifinder_objects.db index 1a36d8cea7c647c9ee84e5795410160c1024914b..66fde3e8bfbb0d1362ceae7c5139fe8b87bc440f 100644 GIT binary patch delta 117910 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 vww1$*k|HfG@cf3BKJ4QeM4>DU0z6z=~43h5NP delta 129792 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 None: """ Reset all filters to default """ - ui_module.catalogs.set_catalog_filter( - CatalogFilter(shared_state=ui_module.shared_state) - ) ui_module.config_object.reset_filters() + + new_filter = CatalogFilter(shared_state=ui_module.shared_state) + new_filter.load_from_config(ui_module.config_object) + + ui_module.catalogs.set_catalog_filter(new_filter) ui_module.catalogs.filter_catalogs() ui_module.message("Filters Reset") ui_module.remove_from_stack() diff --git a/python/PiFinder/ui/menu_structure.py b/python/PiFinder/ui/menu_structure.py index e27e9a3e..2117e6af 100644 --- a/python/PiFinder/ui/menu_structure.py +++ b/python/PiFinder/ui/menu_structure.py @@ -226,7 +226,7 @@ "name": "Catalogs", "class": UITextMenu, "select": "multi", - "config_option": "active_catalogs", + "config_option": "filter.selected_catalogs", "items": [ { "name": "Planets", @@ -244,7 +244,7 @@ "name": "DSO...", "class": UITextMenu, "select": "multi", - "config_option": "active_catalogs", + "config_option": "filter.selected_catalogs", "items": [ { "name": "Abell Pn", @@ -300,7 +300,7 @@ "name": "Stars...", "class": UITextMenu, "select": "multi", - "config_option": "active_catalogs", + "config_option": "filter.selected_catalogs", "items": [ { "name": "Bright Named", @@ -344,6 +344,10 @@ "name": "Open Cluster", "value": "OC", }, + { + "name": "Cluster/Neb", + "value": "C+N", + }, { "name": "Globular", "value": "Gb", @@ -354,12 +358,28 @@ }, { "name": "P. Nebula", - "value": "Pl", + "value": "PN", + }, + { + "name": "Dark Nebula", + "value": "DN", + }, + { + "name": "Star", + "value": "*", }, { "name": "Double Str", "value": "D*", }, + { + "name": "Triple Str", + "value": "***", + }, + { + "name": "Knot", + "value": "Kt", + }, { "name": "Asterism", "value": "Ast", @@ -368,6 +388,10 @@ "name": "Planet", "value": "Pla", }, + { + "name": "Comet", + "value": "CM", + }, ], }, { diff --git a/python/PiFinder/ui/text_menu.py b/python/PiFinder/ui/text_menu.py index 011c9308..5ea6dc03 100644 --- a/python/PiFinder/ui/text_menu.py +++ b/python/PiFinder/ui/text_menu.py @@ -221,7 +221,7 @@ def key_right(self): self.config_object.set_option(config_option, self._selected_values) # are we setting active catalogs - if config_option == "active_catalogs": + if config_option == "filter.selected_catalogs": self.catalogs.select_no_catalogs() self.catalogs.select_catalogs(self._selected_values) self.catalogs.catalog_filter.selected_catalogs = ( From 681e81ba5acea4634938f4d0ff43f55af3bd3025 Mon Sep 17 00:00:00 2001 From: Richard Date: Mon, 20 Jan 2025 18:52:35 -0800 Subject: [PATCH 3/9] Remove align from preview --- python/PiFinder/ui/preview.py | 71 ++++++----------------------------- 1 file changed, 12 insertions(+), 59 deletions(-) diff --git a/python/PiFinder/ui/preview.py b/python/PiFinder/ui/preview.py index d82f4c48..e93fce91 100644 --- a/python/PiFinder/ui/preview.py +++ b/python/PiFinder/ui/preview.py @@ -42,8 +42,6 @@ def __init__(self, *args, **kwargs): self.capture_prefix = f"{self.__uuid__}_diag" self.capture_count = 0 - self.align_mode = False - # the centroiding returns an ndarray # so we're initialiazing one here self.star_list = np.empty((0, 2)) @@ -180,15 +178,8 @@ def update(self, force=False): if last_image_time > self.last_update: image_obj = self.camera_image.copy() - # Fetch Centroids before image is altered - # Do this at least once to get a numpy array in - # star_list - if self.align_mode and self.shared_state and self.shared_state.solution(): - matched_centroids = self.shared_state.solution()["matched_centroids"] - self.star_list = np.array(matched_centroids) - # Resize - if self.zoom_level == 0 or self.align_mode: + if self.zoom_level == 0: image_obj = image_obj.resize((128, 128)) elif self.zoom_level == 1: image_obj = image_obj.resize((256, 256)) @@ -217,23 +208,18 @@ def update(self, force=False): self.screen.paste(image_obj) self.last_update = last_image_time - if self.align_mode: - self.draw_star_selectors() + if self.zoom_level > 0: + zoom_number = self.zoom_level * 2 + self.draw.text( + (75, 112), + f"Zoom x{zoom_number}", + font=self.fonts.bold.font, + fill=self.colors.get(128), + ) else: - if self.zoom_level > 0: - zoom_number = self.zoom_level * 2 - self.draw.text( - (75, 112), - f"Zoom x{zoom_number}", - font=self.fonts.bold.font, - fill=self.colors.get(128), - ) - else: - self.draw_reticle() - - return self.screen_update( - title_bar=not self.align_mode, button_hints=not self.align_mode - ) + self.draw_reticle() + + return self.screen_update() def key_plus(self): self.zoom_level += 1 @@ -244,36 +230,3 @@ def key_minus(self): self.zoom_level -= 1 if self.zoom_level < 0: self.zoom_level = 0 - - def key_square(self): - if self.align_mode: - self.align_mode = False - self.shared_state.set_camera_align(self.align_mode) - self.update(force=True) - else: - self.align_mode = True - self.shared_state.set_camera_align(self.align_mode) - self.update(force=True) - - def key_number(self, number): - if self.align_mode: - if number == 0: - # reset reticle - self.shared_state.set_solve_pixel((256, 256)) - self.config_object.set_option("solve_pixel", (256, 256)) - self.align_mode = False - if number in list(range(1, self.highlight_count + 1)): - # They picked a star to align.... - star_index = number - 1 - if self.star_list.shape[0] > star_index: - star_cam_x = self.star_list[star_index][0] - star_cam_y = self.star_list[star_index][1] - self.shared_state.set_solve_pixel((star_cam_x, star_cam_y)) - self.config_object.set_option( - "solve_pixel", - (star_cam_x, star_cam_y), - ) - self.align_mode = False - - self.shared_state.set_camera_align(self.align_mode) - self.update(force=True) From 018b2f2927205b1b154b04f0f3db743170aff3a4 Mon Sep 17 00:00:00 2001 From: Richard Date: Mon, 20 Jan 2025 18:58:33 -0800 Subject: [PATCH 4/9] imx462 support + system for complex settings value determination (#265) --- python/PiFinder/camera_pi.py | 16 ++++++++++++++++ python/PiFinder/switch_camera.py | 8 +++++++- python/PiFinder/sys_utils.py | 5 +++++ python/PiFinder/ui/callbacks.py | 23 +++++++++++++++++++++++ python/PiFinder/ui/menu_structure.py | 8 ++++++++ python/PiFinder/ui/text_menu.py | 7 +++++++ 6 files changed, 66 insertions(+), 1 deletion(-) diff --git a/python/PiFinder/camera_pi.py b/python/PiFinder/camera_pi.py index ac5bc9ed..d5d47509 100644 --- a/python/PiFinder/camera_pi.py +++ b/python/PiFinder/camera_pi.py @@ -35,6 +35,11 @@ def __init__(self, exposure_time) -> None: self.camera_type = "imx296" # maximum analog gain for this sensor self.gain = 15 + + if "imx290" in self.camera.camera.id: + self.camera_type = "imx462" + self.gain = 30 + self.camType = f"PI {self.camera_type}" self.initialize() @@ -51,6 +56,13 @@ def initialize(self) -> None: }, raw={"size": (1456, 1088), "format": "R10"}, ) + elif self.camera_type == "imx462": + cam_config = self.camera.create_still_configuration( + { + "size": (512, 512), + }, + raw={"size": (1920, 1080), "format": "SRGGB12"}, + ) else: # using this smaller scale auto-selects binning on the sensor... # cam_config = self.camera.create_still_configuration({"size": (512, 512)}) @@ -78,6 +90,10 @@ def capture(self) -> Image.Image: raw_capture = raw_capture.copy().view(np.uint16)[:, 184:-184] # Sensor orientation is different raw_capture = np.rot90(raw_capture, 2) + elif self.camera_type == "imx462": + # crop to square and resample to 16 bit from 2 8 bit entries + # to get the right FOV, we want a 980 square.... + raw_capture = raw_capture.copy().view(np.uint16)[50:-50, 470:-470] else: # crop to square and resample to 16 bit from 2 8 bit entries raw_capture = raw_capture.copy().view(np.uint16)[:, 256:-256] diff --git a/python/PiFinder/switch_camera.py b/python/PiFinder/switch_camera.py index 0978f65d..485d8af4 100644 --- a/python/PiFinder/switch_camera.py +++ b/python/PiFinder/switch_camera.py @@ -7,6 +7,9 @@ def switch_boot(cam_type: str) -> None: Edit /boot/config.txt to swap camera drive must be run as roo """ + if cam_type == "imx462": + # The 462 uses the 290 driver + cam_type = "imx290" # read config.txt into a list with open("/boot/config.txt", "r") as boot_in: @@ -28,7 +31,10 @@ def switch_boot(cam_type: str) -> None: cam_added = True if not cam_added: - boot_lines.append(f"dtoverlay={cam_type}\n") + if cam_type == "imx290": + boot_lines.append(f"dtoverlay={cam_type},clock-frequency=74250000\n") + else: + boot_lines.append(f"dtoverlay={cam_type}\n") cam_added = True with open("/boot/config.txt", "w") as boot_out: diff --git a/python/PiFinder/sys_utils.py b/python/PiFinder/sys_utils.py index 53c0b23b..bc5635da 100644 --- a/python/PiFinder/sys_utils.py +++ b/python/PiFinder/sys_utils.py @@ -319,3 +319,8 @@ def switch_cam_imx477() -> None: def switch_cam_imx296() -> None: logger.info("SYS: Switching cam to imx296") sh.sudo("python", "-m", "PiFinder.switch_camera", "imx296") + + +def switch_cam_imx462() -> None: + logger.info("SYS: Switching cam to imx462") + sh.sudo("python", "-m", "PiFinder.switch_camera", "imx462") diff --git a/python/PiFinder/ui/callbacks.py b/python/PiFinder/ui/callbacks.py index 3b0e2bfe..b1119415 100644 --- a/python/PiFinder/ui/callbacks.py +++ b/python/PiFinder/ui/callbacks.py @@ -103,6 +103,29 @@ def switch_cam_imx296(ui_module: UIModule) -> None: restart_system(ui_module) +def switch_cam_imx462(ui_module: UIModule) -> None: + ui_module.message("Switching cam", 2) + sys_utils.switch_cam_imx462() + restart_system(ui_module) + + +def get_camera_type(ui_module: UIModule) -> list: + print("Looking for cammmm") + cam_id = "000" + + # read config.txt into a list + with open("/boot/config.txt", "r") as boot_in: + boot_lines = list(boot_in) + + # Look for the line without a comment... + for line in boot_lines: + if line.startswith("dtoverlay=imx"): + cam_id = line[10:16] + print("found cam " + cam_id) + + return [cam_id] + + def go_wifi_ap(ui_module: UIModule) -> None: ui_module.message("WiFi to AP", 2) sys_utils.go_wifi_ap() diff --git a/python/PiFinder/ui/menu_structure.py b/python/PiFinder/ui/menu_structure.py index 2117e6af..e8fa4d48 100644 --- a/python/PiFinder/ui/menu_structure.py +++ b/python/PiFinder/ui/menu_structure.py @@ -846,14 +846,22 @@ "name": "Camera Type", "class": UITextMenu, "select": "single", + "value_callback": callbacks.get_camera_type, "items": [ { "name": "v2 - imx477", "callback": callbacks.switch_cam_imx477, + "value": "imx477", }, { "name": "v3 - imx296", "callback": callbacks.switch_cam_imx296, + "value": "imx296", + }, + { + "name": "v3 - imx462", + "callback": callbacks.switch_cam_imx462, + "value": "imx290", }, ], }, diff --git a/python/PiFinder/ui/text_menu.py b/python/PiFinder/ui/text_menu.py index 5ea6dc03..f6805e96 100644 --- a/python/PiFinder/ui/text_menu.py +++ b/python/PiFinder/ui/text_menu.py @@ -40,6 +40,13 @@ def __init__( ) self._selected_values = [] + if self.item_definition.get("value_callback"): + self._selected_values = self.item_definition.get("value_callback")(self) + # Set current item index based on selection + for i, _item in enumerate(self.item_definition["items"]): + if _item["value"] == self._selected_values[0]: + self._current_item_index = i + if config_option := self.item_definition.get("config_option"): if self._menu_type == "multi": self._selected_values = self.config_object.get_option(config_option) From 47d9eba21fa39b8ac8891d94f4edd7e99fa23d3a Mon Sep 17 00:00:00 2001 From: Richard Date: Tue, 21 Jan 2025 14:35:24 -0800 Subject: [PATCH 5/9] Clarify camera type response --- python/PiFinder/ui/callbacks.py | 5 +++-- python/PiFinder/ui/menu_structure.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/python/PiFinder/ui/callbacks.py b/python/PiFinder/ui/callbacks.py index b1119415..af0fc314 100644 --- a/python/PiFinder/ui/callbacks.py +++ b/python/PiFinder/ui/callbacks.py @@ -110,7 +110,6 @@ def switch_cam_imx462(ui_module: UIModule) -> None: def get_camera_type(ui_module: UIModule) -> list: - print("Looking for cammmm") cam_id = "000" # read config.txt into a list @@ -121,7 +120,9 @@ def get_camera_type(ui_module: UIModule) -> list: for line in boot_lines: if line.startswith("dtoverlay=imx"): cam_id = line[10:16] - print("found cam " + cam_id) + # imx462 uses imx290 driver + if cam_id == "imx290": + cam_id = "imx462" return [cam_id] diff --git a/python/PiFinder/ui/menu_structure.py b/python/PiFinder/ui/menu_structure.py index e8fa4d48..162dfafe 100644 --- a/python/PiFinder/ui/menu_structure.py +++ b/python/PiFinder/ui/menu_structure.py @@ -861,7 +861,7 @@ { "name": "v3 - imx462", "callback": callbacks.switch_cam_imx462, - "value": "imx290", + "value": "imx462", }, ], }, From e3394fe61e22fefe3c6f7f5eb830bc077d84ab34 Mon Sep 17 00:00:00 2001 From: Richard Date: Mon, 27 Jan 2025 15:09:44 -0800 Subject: [PATCH 6/9] Add note about using ip address if pifinder.local fails --- docs/source/user_guide.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/source/user_guide.rst b/docs/source/user_guide.rst index 8fc2bfc8..c7d006db 100644 --- a/docs/source/user_guide.rst +++ b/docs/source/user_guide.rst @@ -536,6 +536,12 @@ The PiFinder provides an easy to use web interface which allows you to: To access the web interface for the first time, make sure the PiFinder is in Access Point mode (see :ref:`user_guide:settings menu`). This is the default for new PiFinders to make first time set up easier. Using a phone, tablet or computer, connect to the PiFinder's wireless network called PiFinderAP. It's an open network with no password required. Once connected, open your web browser and visit: ``http://pifinder.local`` + +.. note:: + If you are connected to the PiFinderAP network and can't load the PiFinder web interface using + http://pifinder.local try http://10.10.10.1 as some systems may not support the network features + required to resolve local computer names + .. list-table:: :width: 100% From 215a162b31ea4b7adf324f8fcb382ad6d3ce51c7 Mon Sep 17 00:00:00 2001 From: Jens Scheidtmann Date: Wed, 29 Jan 2025 21:33:34 +0100 Subject: [PATCH 7/9] remov try/catch around import from sh (#267) * remov try/catch around import from sh * Fix error in type checking. * Test can only run when sys_utils imports cleanly. Do not run test on architectures where it does not --- .gitignore | 1 - python/PiFinder/sys_utils.py | 24 ++++----- python/tests/test_sys_utils.py | 91 ++++++++++++++++++---------------- 3 files changed, 59 insertions(+), 57 deletions(-) diff --git a/.gitignore b/.gitignore index ce3986f6..0b7a5eb3 100644 --- a/.gitignore +++ b/.gitignore @@ -52,7 +52,6 @@ coverage.xml .pytest_cache/ # Translations -*.mo *.pot # Django stuff: diff --git a/python/PiFinder/sys_utils.py b/python/PiFinder/sys_utils.py index bc5635da..7eddbc49 100644 --- a/python/PiFinder/sys_utils.py +++ b/python/PiFinder/sys_utils.py @@ -2,13 +2,8 @@ import re from typing import Dict, Any -try: - import sh - from sh import wpa_cli, unzip, su, passwd - - REAL_SYS_UTILS = True -except ImportError: - REAL_SYS_UTILS = False +import sh +from sh import wpa_cli, unzip, su, passwd import socket from PiFinder import utils @@ -152,19 +147,22 @@ def set_ap_name(self, ap_name): def get_host_name(self): return socket.gethostname() - def get_connected_ssid(self): + def get_connected_ssid(self) -> str: """ Returns the SSID of the connected wifi network or None if not connected or in AP mode """ if self.wifi_mode() == "AP": - return None + return "" # get output from iwgetid - iwgetid = sh.Command("iwgetid") - _t = iwgetid(_ok_code=(0, 255)).strip() - return _t.split(":")[-1].strip('"') + try: + iwgetid = sh.Command("iwgetid") + _t = iwgetid(_ok_code=(0, 255)).strip() + return _t.split(":")[-1].strip('"') + except sh.CommandNotFound: + return "ssid_not_found" - def set_host_name(self, hostname): + def set_host_name(self, hostname) -> None: if hostname == self.get_host_name(): return _result = sh.sudo("hostnamectl", "set-hostname", hostname) diff --git a/python/tests/test_sys_utils.py b/python/tests/test_sys_utils.py index b0dbd407..33541a74 100644 --- a/python/tests/test_sys_utils.py +++ b/python/tests/test_sys_utils.py @@ -1,38 +1,39 @@ import pytest -from PiFinder import sys_utils +try: + from PiFinder import sys_utils -@pytest.mark.unit -def test_wpa_supplicant_parsing(): - # This could be read from a file or passed from another function - wpa_supplicant_example = """ - ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev - update_config=1 - country=US + @pytest.mark.unit + def test_wpa_supplicant_parsing(): + # This could be read from a file or passed from another function + wpa_supplicant_example = """ + ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev + update_config=1 + country=US - network={ - ssid="My Home Network" - psk="password123" - key_mgmt=WPA-PSK - } + network={ + ssid="My Home Network" + psk="password123" + key_mgmt=WPA-PSK + } - network={ - ssid="Work Network" - psk="compl3x=p@ssw0rd!" - key_mgmt=WPA-PSK - } - """ - wpa_list = [ - line.strip() - for line in wpa_supplicant_example.strip().split("\n") - if line.strip() - ] - result = sys_utils.Network._parse_wpa_supplicant(wpa_list) - assert result[1]["psk"] == "compl3x=p@ssw0rd!" + network={ + ssid="Work Network" + psk="compl3x=p@ssw0rd!" + key_mgmt=WPA-PSK + } + """ + wpa_list = [ + line.strip() + for line in wpa_supplicant_example.strip().split("\n") + if line.strip() + ] + result = sys_utils.Network._parse_wpa_supplicant(wpa_list) + assert result[1]["psk"] == "compl3x=p@ssw0rd!" - example2 = """ - ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev - update_config=1 + example2 = """ + ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev + update_config=1 @@ -50,18 +51,22 @@ def test_wpa_supplicant_parsing(): - network={ - ssid="testytest" - psk="oesrucoeahu1234" - key_mgmt=WPA-PSK - } + network={ + ssid="testytest" + psk="oesrucoeahu1234" + key_mgmt=WPA-PSK + } - network={ - ssid="00xx33" - psk="1234@===!!!" - key_mgmt=WPA-PSK - } - """ - wpa_list = [line for line in example2.split("\n") if line.strip()] - result = sys_utils.Network._parse_wpa_supplicant(wpa_list) - assert result[1]["psk"] == "1234@===!!!" + network={ + ssid="00xx33" + psk="1234@===!!!" + key_mgmt=WPA-PSK + } + """ + wpa_list = [line for line in example2.split("\n") if line.strip()] + result = sys_utils.Network._parse_wpa_supplicant(wpa_list) + assert result[1]["psk"] == "1234@===!!!" + + +except ImportError: + pass \ No newline at end of file From ed84e788deb5d8f47fea3ef10a3c700eb50e7ef8 Mon Sep 17 00:00:00 2001 From: Richard Date: Sat, 1 Feb 2025 16:45:35 -0800 Subject: [PATCH 8/9] Make wifi menu show current state --- python/PiFinder/ui/callbacks.py | 8 +++++++- python/PiFinder/ui/menu_structure.py | 13 +++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/python/PiFinder/ui/callbacks.py b/python/PiFinder/ui/callbacks.py index af0fc314..8fd83d36 100644 --- a/python/PiFinder/ui/callbacks.py +++ b/python/PiFinder/ui/callbacks.py @@ -109,7 +109,7 @@ def switch_cam_imx462(ui_module: UIModule) -> None: restart_system(ui_module) -def get_camera_type(ui_module: UIModule) -> list: +def get_camera_type(ui_module: UIModule) -> list[str]: cam_id = "000" # read config.txt into a list @@ -137,3 +137,9 @@ def go_wifi_cli(ui_module: UIModule) -> None: ui_module.message("WiFi to Client", 2) sys_utils.go_wifi_cli() restart_system(ui_module) + + +def get_wifi_mode(ui_module: UIModule) -> list[str]: + wifi_txt = f"{utils.pifinder_dir}/wifi_status.txt" + with open(wifi_txt, "r") as wfs: + return [wfs.read()] diff --git a/python/PiFinder/ui/menu_structure.py b/python/PiFinder/ui/menu_structure.py index 162dfafe..d5eb3296 100644 --- a/python/PiFinder/ui/menu_structure.py +++ b/python/PiFinder/ui/menu_structure.py @@ -791,9 +791,18 @@ "name": "WiFi Mode", "class": UITextMenu, "select": "single", + "value_callback": callbacks.get_wifi_mode, "items": [ - {"name": "Client Mode", "callback": callbacks.go_wifi_cli}, - {"name": "AP Mode", "callback": callbacks.go_wifi_ap}, + { + "name": "Client Mode", + "value": "Client", + "callback": callbacks.go_wifi_cli, + }, + { + "name": "AP Mode", + "value": "AP", + "callback": callbacks.go_wifi_ap, + }, ], }, { From bec012ae8323bf045a20dfe69bc065543f147614 Mon Sep 17 00:00:00 2001 From: Richard Date: Sat, 1 Feb 2025 18:00:56 -0800 Subject: [PATCH 9/9] Jump immediately to object info on goto from pos_server (#269) --- python/PiFinder/pos_server.py | 3 ++- python/PiFinder/state.py | 11 +++++++++ python/PiFinder/ui/menu_manager.py | 13 ++++++++++ python/PiFinder/ui/object_details.py | 3 +++ python/PiFinder/ui/object_list.py | 36 +++++++++++++++++++--------- python/tests/test_sys_utils.py | 2 +- 6 files changed, 55 insertions(+), 13 deletions(-) diff --git a/python/PiFinder/pos_server.py b/python/PiFinder/pos_server.py index 4aa274ce..8049be20 100644 --- a/python/PiFinder/pos_server.py +++ b/python/PiFinder/pos_server.py @@ -170,6 +170,7 @@ def handle_goto_command(shared_state, ra_parsed, dec_parsed): ) logger.debug("handle_goto_command: Pushing object: %s", obj) shared_state.ui_state().add_recent(obj) + shared_state.ui_state().set_new_pushto(True) ui_queue.put("push_object") return "1" @@ -239,7 +240,7 @@ def run_server(shared_state, p_ui_queue, log_queue): logger.info("SkySafari server started and listening") while True: client_socket, address = server_socket.accept() - logger.info("New connection from %s", address) + logger.debug("New connection from %s", address) handle_client(client_socket, shared_state) except Exception: logger.exception("Unexpected server error") diff --git a/python/PiFinder/state.py b/python/PiFinder/state.py index 343aa951..ef2174b2 100644 --- a/python/PiFinder/state.py +++ b/python/PiFinder/state.py @@ -52,6 +52,11 @@ def __init__(self): self.__message_timeout = 0 self.__hint_timeout = 0 self.__show_fps = False + # Set to true when an object is pushed + # to the recent list from the pos_server + # proccess (i.e. skysafari goto). Used + # to jump from object list to object details + self.__new_pushto = False def observing_list(self): return self.__observing_list @@ -65,6 +70,12 @@ def recent_list(self) -> List[CompositeObject]: def add_recent(self, v: CompositeObject): self.__recent.append(v) + def set_new_pushto(self, v: bool): + self.__new_pushto = v + + def new_pushto(self) -> bool: + return self.__new_pushto + def target(self): return self.__target diff --git a/python/PiFinder/ui/menu_manager.py b/python/PiFinder/ui/menu_manager.py index 69bbabf3..e4b52694 100644 --- a/python/PiFinder/ui/menu_manager.py +++ b/python/PiFinder/ui/menu_manager.py @@ -170,6 +170,19 @@ def message(self, message: str, timeout: float) -> None: self.stack[-1].message(message, timeout) # type: ignore[arg-type] def jump_to_label(self, label: str) -> None: + # to prevent many recent/object UI modules + # being added to the list upon repeated object + # pushes, check for existing 'recent' in the + # stack and jump to that, rather than adding + # a new one + if label in ["recent"]: + for stack_index, ui_module in enumerate(self.stack): + if ui_module.item_definition.get("label", "") == label: + self.stack = self.stack[: stack_index + 1] + self.stack[-1].active() # type: ignore[call-arg] + return + # either this is not a special case, or we didn't find + # the label already in the stack menu_to_jump = find_menu_by_label(label) if menu_to_jump is not None: self.add_to_stack(menu_to_jump) diff --git a/python/PiFinder/ui/object_details.py b/python/PiFinder/ui/object_details.py index 9c3dc52e..0b2d23d1 100644 --- a/python/PiFinder/ui/object_details.py +++ b/python/PiFinder/ui/object_details.py @@ -232,6 +232,9 @@ def active(self): def _check_catalog_initialised(self): code = self.object.catalog_code + if code == "PUSH": + # Special code for objects pushed from sky-safari + return True catalog = self.catalogs.get_catalog_by_code(code) return catalog and catalog.initialised diff --git a/python/PiFinder/ui/object_list.py b/python/PiFinder/ui/object_list.py index fff48f01..8e8b4d29 100644 --- a/python/PiFinder/ui/object_list.py +++ b/python/PiFinder/ui/object_list.py @@ -368,7 +368,14 @@ def line_position(self, line_number, title_offset=20): def active(self): # trigger refilter super().active() - self.refresh_object_list() + + # check for new push_to + if self.ui_state.new_pushto(): + self.refresh_object_list(force_update=True) + self.ui_state.set_new_pushto(False) + self.show_object_details(0) + else: + self.refresh_object_list() def update(self, force: bool = False) -> None: self.clear_screen() @@ -585,6 +592,22 @@ def marking_menu_right(self): self._marking_menu_items[3].selected = False self.sort() + def show_object_details(self, object_index): + """ + Adds the object details UI module for the object + at object_index to the top of the stack. + """ + _menu_item = self._menu_items_sorted[object_index] + + object_item_definition = { + "name": _menu_item.display_name, + "class": UIObjectDetails, + "object": _menu_item, + "object_list": self._menu_items_sorted, + "label": "object_details", + } + self.add_to_stack(object_item_definition) + def key_right(self): """ When right is pressed, move to @@ -599,16 +622,7 @@ def key_right(self): self.jump_input_display = False self.jump_to_number.reset_number() - _menu_item = self._menu_items_sorted[self._current_item_index] - - object_item_definition = { - "name": _menu_item.display_name, - "class": UIObjectDetails, - "object": _menu_item, - "object_list": self._menu_items_sorted, - "label": "object_details", - } - self.add_to_stack(object_item_definition) + self.show_object_details(self._current_item_index) def key_number(self, number): self.jump_to_number.append_number(number) diff --git a/python/tests/test_sys_utils.py b/python/tests/test_sys_utils.py index 33541a74..6115dc88 100644 --- a/python/tests/test_sys_utils.py +++ b/python/tests/test_sys_utils.py @@ -69,4 +69,4 @@ def test_wpa_supplicant_parsing(): except ImportError: - pass \ No newline at end of file + pass