async def get_current_frame(self, components=None) -> QRTPacket:
if components is None:<EOL><INDENT>components = ["<STR_LIT:all>"]<EOL><DEDENT>else:<EOL><INDENT>_validate_components(components)<EOL><DEDENT>cmd = "<STR_LIT>" % "<STR_LIT:U+0020>".join(components)<EOL>return await asyncio.wait_for(<EOL>self._protocol.send_command(cmd), timeout=self._timeout<EOL>)<EOL>
Get measured values from QTM for a single frame.

        :param components: A list of components to receive, could be 'all' or any combination of
                '2d', '2dlin', '3d', '3dres', '3dnolabels',
                '3dnolabelsres', 'force', 'forcesingle', '6d', '6dres',
                '6deuler', '6deulerres', 'gazevector', 'image', 'timecode',
                'skeleton', 'skeleton:global'

        :rtype: A :class:`qtm.QRTPacket` containing requested components