docs: def read(self):
          """We have been called to read! As a consumer, continue to read for
          the length of the packet and then pass to the callback.
          """
  
          data = self.dev.read()
  
          if len(data) == 0:
              self.log.warning("READ : Nothing received")
              return
  
          if data == b'\x00':
              self.log.warning("READ : Empty packet (Got \\x00)")
              return
  
          pkt = bytearray(data)
          data = self.dev.read(pkt[0])
          pkt.extend(bytearray(data))
  
          self.log.info("READ : %s" % self.format_packet(pkt))
          self.do_callback(pkt)
          return pkt