def disp_spi_send(self, data):
        if len(data) == 0: return  # no need to send anything

        self.trans.length = len(
            data) * 8  # Length is in bytes, transaction length is in bits.
        self.trans.tx_buffer = data

        esp.spi_device_queue_trans(self.spi, self.trans, -1)
        esp.spi_device_get_trans_result(self.spi, self.trans_res, -1)
Beispiel #2
0
 def xpt_cmds(self, cmds):
     cmd_count = int(len(cmds))
     for i in range(0, cmd_count):
         self.trans[i].cmd = cmds[i]
         esp.spi_device_queue_trans(self.spi, self.trans[i], -1)
     result = []
     for i in range(0, cmd_count):
         esp.spi_device_get_trans_result(self.spi, self.trans_result_ptr,
                                         -1)
         buf = self.trans[i].rx_buffer.__dereference__(2)
         value = (int(buf[0]) << 4) + (int(
             buf[1]) >> 4)  # value is in the 12 higher bits, network order
         if value == int(self.MAX_RAW_COORD):
             value = 0
         result.append(value)
     return tuple(result)
Beispiel #3
0
    def deinit(self):
        print("Deinitializing XPT2046...")
        if self.spi:
            # Pop all pending transaction results
            ret = 0
            while ret == 0:
                ret = esp.spi_device_get_trans_result(self.spi,
                                                      self.trans_result_ptr, 1)

            # Remove device
            esp.spi_bus_remove_device(self.spi)

            # Free SPI bus
            esp.spi_bus_free(self.spihost)
    def deinit(self):

        print('Deinitializing {}..'.format(self.display_name))

        self.disp_drv.remove()

        # Prevent callbacks to lvgl, which refer to the buffers we are about to delete

        if not self.asynchronous:
            import lvesp32
            lvesp32.deinit()

        if self.spi:

            # Pop all pending transaction results

            ret = 0
            while ret == 0:
                ret = esp.spi_device_get_trans_result(self.spi,
                                                      self.trans_result_ptr, 1)

            # Remove device

            esp.spi_bus_remove_device(self.spi)
            self.spi = None

            # Free SPI bus

            esp.spi_bus_free(self.spihost)
            self.spihost = None

        # Free RAM

        if self.buf1:
            esp.heap_caps_free(self.buf1)
            self.buf1 = None

        if self.buf2:
            esp.heap_caps_free(self.buf2)
            self.buf2 = None

        if self.trans_buffer:
            esp.heap_caps_free(self.trans_buffer)
            self.trans_buffer = None
Beispiel #5
0
    def deinit(self):

        print('Deinitializing ILI9341..')

        # Prevent callbacks to lvgl, which refer to the buffers we are about to delete

        lvesp32.deinit()

        if self.spi:

            # Pop all pending transaction results

            ret = 0
            while ret == 0:
                ret = esp.spi_device_get_trans_result(self.spi,
                                                      self.trans_result_ptr, 1)

            # Remove device

            esp.spi_bus_remove_device(self.spi)
            self.spi = None

            # Free SPI bus

            esp.spi_bus_free(self.spihost)
            self.spihost = None

        # Free RAM

        if self.buf1:
            esp.heap_caps_free(self.buf1)
            self.buf1 = None

        if self.buf2:
            esp.heap_caps_free(self.buf2)
            self.buf2 = None

        if self.trans_buffer:
            esp.heap_caps_free(self.trans_buffer)
            self.trans_buffer = None