This method retrieves the Firmata capability report

        :param raw: If True, it either stores or provides the callback
                    with a report as list.
                    If False, prints a formatted report to the console

        :param cb: Optional callback reference to receive a raw report

        :returns: capability report

def get_capability_report(self, raw=True, cb=None):
        """
        This method retrieves the Firmata capability report

        :param raw: If True, it either stores or provides the callback
                    with a report as list.
                    If False, prints a formatted report to the console

        :param cb: Optional callback reference to receive a raw report

        :returns: capability report
        """
        task = asyncio.ensure_future(self.core.get_capability_report())
        report = self.loop.run_until_complete(task)
        if raw:
            if cb:
                cb(report)
            else:
                return report
        else:
            # noinspection PyProtectedMember
            self.core._format_capability_report(report)