From 4f3d51eaec70e77d22638627eb430e26116d7531 Mon Sep 17 00:00:00 2001 From: Arseny Birukov Date: Thu, 22 Aug 2024 19:37:12 +0300 Subject: [PATCH] Fix byte order in GT911 driver --- api_drivers/common_api_drivers/indev/gt911.py | 36 ++++++++----------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/api_drivers/common_api_drivers/indev/gt911.py b/api_drivers/common_api_drivers/indev/gt911.py index 4fe068ae..fd338992 100644 --- a/api_drivers/common_api_drivers/indev/gt911.py +++ b/api_drivers/common_api_drivers/indev/gt911.py @@ -35,14 +35,11 @@ class GT911(pointer_framework.PointerDriver): def _read_reg(self, reg, num_bytes): - self._tx_buf[0] = reg & 0xFF - self._tx_buf[1] = reg >> 8 - - self._device.write_readinto(self._tx_mv[:2], self._rx_mv[:num_bytes]) + self._device.read_mem(reg & 0xFFFF, buf=self._rx_mv[:num_bytes]) def _write_reg(self, reg, value): - self._tx_buf[0] = reg & 0xFF - self._tx_buf[1] = reg >> 8 + self._tx_buf[0] = reg >> 8 + self._tx_buf[1] = reg & 0xFF self._tx_buf[2] = value self._device.write(self._tx_mv[:3]) @@ -74,7 +71,7 @@ def __init__( self._reset_pin = reset_pin self._interrupt_pin = interrupt_pin - + self._debug = debug self.hw_reset() super().__init__( touch_cal=touch_cal, startup_rotation=startup_rotation, debug=debug @@ -101,24 +98,21 @@ def hw_reset(self): self._read_reg(_PRODUCT_ID_REG, 4) - product_id = '' - for item in self._rx_buf[:4]: - if item == 0x00: - break - product_id += item.decode('utf-8') + if self._debug: + product_id = self._rx_buf[:4].decode('utf-8') - print('Touch Product id:', product_id) + print('Touch Product id:', product_id) - self._read_reg(_FIRMWARE_VERSION_REG, 2) - print( - 'Touch Firmware version:', - hex(self._rx_buf[0] + (self._rx_buf[1] << 8)) + self._read_reg(_FIRMWARE_VERSION_REG, 2) + print( + 'Touch Firmware version:', + hex(self._rx_buf[0] + (self._rx_buf[1] << 8)) ) - self._read_reg(_VENDOR_ID_REG, 1) - print(f'Touch Vendor id: 0x{hex(self._rx_buf[0])[2:].upper()}') - x, y = self.hw_size - print(f'Touch resolution: width={x}, height={y}') + self._read_reg(_VENDOR_ID_REG, 1) + print(f'Touch Vendor id: 0x{hex(self._rx_buf[0])[2:].upper()}') + x, y = self.hw_size + print(f'Touch resolution: width={x}, height={y}') @property def hw_size(self):