diff --git a/adafruit_vl53l1x.py b/adafruit_vl53l1x.py index 7f2f6a7..055848f 100644 --- a/adafruit_vl53l1x.py +++ b/adafruit_vl53l1x.py @@ -297,8 +297,8 @@ def roi_xy(self): """Returns the x and y coordinates of the sensor's region of interest""" temp = self._read_register(_ROI_CONFIG__USER_ROI_REQUESTED_GLOBAL_XY_SIZE) - x = (int.from_bytes(temp) & 0x0F) + 1 - y = ((int.from_bytes(temp) & 0xF0) >> 4) + 1 + x = (int.from_bytes(temp, "big") & 0x0F) + 1 + y = ((int.from_bytes(temp, "big") & 0xF0) >> 4) + 1 return x, y @@ -313,21 +313,46 @@ def roi_xy(self, data): if x > 10 or y > 10: optical_center = 199 - self._write_register(_ROI_CONFIG__USER_ROI_CENTRE_SPAD, optical_center.to_bytes()) + self._write_register(_ROI_CONFIG__USER_ROI_CENTRE_SPAD, optical_center.to_bytes(1, "big")) self._write_register( _ROI_CONFIG__USER_ROI_REQUESTED_GLOBAL_XY_SIZE, - ((y - 1) << 4 | (x - 1)).to_bytes(), - ) # noqa: E501 + ((y - 1) << 4 | (x - 1)).to_bytes(1, "big"), + ) @property def roi_center(self): - """Returns the center of the sensor's region of interest""" + """The center of the sensor's region of interest. + To set the center, set the pad that is to the right and above the + exact center of the region you'd like to measure as your opticalCenter. + You must change the roi_xy value to somtheing smaller than 16x16 + in order to use any center value other than 199. + + .. code-block:: + + 128,136,144,152,160,168,176,184, 192,200,208,216,224,232,240,248 + 129,137,145,153,161,169,177,185, 193,201,209,217,225,233,241,249 + 130,138,146,154,162,170,178,186, 194,202,210,218,226,234,242,250 + 131,139,147,155,163,171,179,187, 195,203,211,219,227,235,243,251 + 132,140,148,156,164,172,180,188, 196,204,212,220,228,236,244,252 + 133,141,149,157,165,173,181,189, 197,205,213,221,229,237,245,253 + 134,142,150,158,166,174,182,190, 198,206,214,222,230,238,246,254 + 135,143,151,159,167,175,183,191, 199,207,215,223,231,239,247,255 + + 127,119,111,103, 95, 87, 79, 71, 63, 55, 47, 39, 31, 23, 15, 7 + 126,118,110,102, 94, 86, 78, 70, 62, 54, 46, 38, 30, 22, 14, 6 + 125,117,109,101, 93, 85, 77, 69, 61, 53, 45, 37, 29, 21, 13, 5 + 124,116,108,100, 92, 84, 76, 68, 60, 52, 44, 36, 28, 20, 12, 4 + 123,115,107, 99, 91, 83, 75, 67, 59, 51, 43, 35, 27, 19, 11, 3 + 122,114,106, 98, 90, 82, 74, 66, 58, 50, 42, 34, 26, 18, 10, 2 + 121,113,105, 97, 89, 81, 73, 65, 57, 49, 41, 33, 25, 17, 9, 1 + 120,112,104, 96, 88, 80, 72, 64, 56, 48, 40, 32, 24, 16, 8, 0 + """ temp = self._read_register(_ROI_CONFIG__USER_ROI_CENTRE_SPAD) - return int.from_bytes(temp) + return int.from_bytes(temp, "big") @roi_center.setter def roi_center(self, center): - self._write_register(_ROI_CONFIG__USER_ROI_CENTRE_SPAD, center.to_bytes()) + self._write_register(_ROI_CONFIG__USER_ROI_CENTRE_SPAD, center.to_bytes(1, "big")) def _write_register(self, address, data, length=None): if length is None:
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: