code: def Send(self, command_id, data=b'', size=0):
          
          if data:
              if not isinstance(data, bytes):
                  data = data.encode('utf8')
              size = len(data)
  
          if not self._CanAddToSendBuffer(len(data)):
              self._Flush()
          buf = struct.pack(b'<2I', self.id_to_wire[command_id], size) + data
          self.send_buffer[self.send_idx:self.send_idx + len(buf)] = buf
          self.send_idx += len(buf)
docs: Send/buffer FileSync packets.
  
          Packets are buffered and only flushed when this connection is read from. All
          messages have a response from the device, so this will always get flushed.
  
          Args:
            command_id: Command to send.
            data: Optional data to send, must set data or size.
            size: Optionally override size from len(data).