docs: def find_all(pattern=None):
          """
          Returns all serial ports present.
  
          :param pattern: pattern to search for when retrieving serial ports
          :type pattern: string
  
          :returns: list of devices
          :raises: :py:class:`~alarmdecoder.util.CommError`
          """
          devices = []
  
          try:
              if pattern:
                  devices = serial.tools.list_ports.grep(pattern)
              else:
                  devices = serial.tools.list_ports.comports()
  
          except serial.SerialException as err:
              raise CommError('Error enumerating serial devices: {0}'.format(str(err)), err)
  
          return devices