From 12e46d4fbff26ebe994c1978ed78478fabe871c8 Mon Sep 17 00:00:00 2001 From: EricPei20 Date: Wed, 22 Apr 2026 10:23:20 -0700 Subject: [PATCH] Fixed invalid property errors in set_binning. --- deapi/client.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/deapi/client.py b/deapi/client.py index 78430d5..ecdfd5a 100644 --- a/deapi/client.py +++ b/deapi/client.py @@ -231,6 +231,7 @@ def connect(self, host: str = "127.0.0.1", port: int = 13240, read_only=False): self._initialize_attributes() self.update_scan_size() self.update_image_size() + self.update_feature_hw_binning() self.virtual_masks = [] for i in range(4): self.virtual_masks.append(VirtualMask(client=self, index=i)) @@ -249,6 +250,9 @@ def update_image_size(self): self.image_sizex = self["Image Size X (pixels)"] self.image_sizey = self["Image Size Y (pixels)"] + def update_feature_hw_binning(self): + self.feature_hw_binning = self["Feature - Hardware Binning"] + def disconnect(self): """ Disconnects from the server. @@ -1002,12 +1006,13 @@ def set_binning(self, bin_x, bin_y, use_hw=True): if commandVersion >= 13: retval = self.SetProperty("Server Normalize Properties", "Off") - retval &= self.SetProperty( - "Hardware Binning X", 2 if bin_x >= 2 and use_hw else 1 - ) - retval &= self.SetProperty( - "Hardware Binning Y", 2 if bin_y >= 2 and use_hw else 1 - ) + if self.feature_hw_binning == "On": + retval &= self.SetProperty( + "Hardware Binning X", 2 if bin_x >= 2 and use_hw else 1 + ) + retval &= self.SetProperty( + "Hardware Binning Y", 2 if bin_y >= 2 and use_hw else 1 + ) prop_hw_bin_x = self.GetProperty("Hardware Binning X") prop_hw_bin_y = self.GetProperty("Hardware Binning Y")