! @brief Generate dictionary with info about the connected debug probes.
        
        Output version history:
        - 1.0, initial version

def list_probes():
        """! @brief Generate dictionary with info about the connected debug probes.
        
        Output version history:
        - 1.0, initial version
        """
        try:
            all_mbeds = ConnectHelper.get_sessions_for_all_connected_probes(blocking=False)
            status = 0
            error = ""
        except Exception as e:
            all_mbeds = []
            status = 1
            error = str(e)
            if not self.args.output_json:
                raise

        boards = []
        obj = {
            'pyocd_version' : __version__,
            'version' : { 'major' : 1, 'minor' : 0 },
            'status' : status,
            'boards' : boards,
            }

        if status != 0:
            obj['error'] = error

        for mbed in all_mbeds:
            d = {
                'unique_id' : mbed.probe.unique_id,
                'info' : mbed.board.description,
                'board_name' : mbed.board.name,
                'target' : mbed.board.target_type,
                'vendor_name' : mbed.probe.vendor_name,
                'product_name' : mbed.probe.product_name,
                }
            boards.append(d)

        return obj