Skip to main content
Glama

Bluetooth MCP Server

classic_scanner.cpython-311.pyc8.24 kB
� �1�g� ��v�dZddlZddlZddlZddlmZmZmZmZddl m Z ddl m Z ej e��Zej��dkZdZdZes= ddlZd Ze�d ��n5#e$re�d ��YnwxYwe�e��Gd �d ��Ze��ZdS)u� Module spécialisé pour le scan Bluetooth classique. Sur Windows, cette fonctionnalité est limitée et fournit un message d'information. �N)�Dict�List�Optional�Any)�get_friendly_device_name)�get_device_info�WindowsFu� Le scan Bluetooth classique n'est pas disponible sur Windows via cette implémentation. Cela est dû aux limitations des bibliothèques Python pour Bluetooth sur Windows. Le scan BLE reste pleinement fonctionnel et peut détecter la plupart des appareils modernes. Pour certains appareils comme la Freebox, nous utilisons une base de données de préfixes MAC pour les identifier même sans le scan classique. Tu4Bluetooth classique activé - bibliothèque trouvéeu?Bluetooth classique non disponible - bibliothèque non trouvéec ��eZdZdZd dedeedeeee ffd�Z d dedeedeeee ffd�Z d e de fd �ZdS) �ClassicBTScanneruBClasse spécialisée dans le scan d'appareils Bluetooth classiques�$@N�duration� filter_name�returnc�T�trt�d��gStst�d��gS t�d��t jt|��ddd���}t�dt|���d���g}|D�]\}}}|�|d krd }|�(|� ��|� ��vr�t|��}|r|� d d ��nd } |r|� d d ��nt||��} |�|��\} } } idt|���d|�d|�dd �di�dg�di�dd �dd �d| �dd�dd�d | �d|�d| �d| �d| �dd i�}|�|����t�d!t|���d"���|S#t"$r8}t�d#t|����d�$��gcYd }~Sd }~wwxYw)%uL Effectue un scan Bluetooth classique. Args: duration: Durée du scan en secondes filter_name: Filtre optionnel sur le nom des appareils Returns: Liste de dictionnaires contenant les informations des appareils Bluetooth classiques détectés u,Scan Bluetooth classique ignoré sur Windowsz>PyBluez n'est pas disponible pour le scan Bluetooth classique.z-Recherche d'appareils Bluetooth classiques...T�����)r � lookup_names� lookup_class� device_idu#Scan Bluetooth classique terminé. u appareil(s) trouvé(s)N��Unknown�company� friendly_name�id�address�name�rssi�manufacturer_data� service_uuids� service_data�tx_power� appearance� company_name�is_connectable� device_type�Classic� device_class�major_device_class�minor_device_class�service_classes� detected_by�classic_scanneru%Après filtrage Bluetooth classique: u appareil(s) retourné(s)z)Erreur lors du scan Bluetooth classique: )�exc_info)� IS_WINDOWS�logger�info�CLASSIC_BT_AVAILABLE�warning�debug� bt_classic�discover_devices�int�len�lowerr�getr�_decode_device_class�str�append� Exception�error)�selfr r�nearby_devices�devices�addrrr&� device_infor"r� major_class� minor_classr)�bluetooth_device�es �;F:\DEV\bluetooth-mcp-server\app\services\classic_scanner.py�scanzClassicBTScanner.scan.s��� � � �K�K�F� G� G� G��I�#� � �N�N�[� \� \� \��I�; � �L�L�H� I� I� I�'�8��X���!�!�� ���N� �L�L�k�s�>�?R�?R�k�k�k� l� l� l��G�,:�) 5�) 5�(��d�L��<�4�2�:�:�$�D��&�;�+<�+<�+>�+>�$�*�*�,�,�+N�+N�"1�$�"7�"7�K�GR�#\�;�?�?�9�d�#C�#C�#C�X\�L�MX�%�K�O�O�O�R�$H�$H�$H�]u���^�^�M� AE�@Y�@Y�Zf�@g�@g�=�K��o�(��c�$�i�i�(�!�4�(���(��� (� ,�R� (� (�� (�'��(�#�D�(�%�d�(�'� �(�)�$�(�&�y�(�(��(�'� �(�-�k�(� -�k�!(�"*�?�#(�$&�'8�%(�(�$�*�N�N�#3�4�4�4�� �L�L�h��W���h�h�h� i� i� i��N��� � � � �L�L�M�S��V�V�M�M�X\�L� ]� ]� ]��I�I�I�I�I�I����� ���s�FG%�% H'�/-H"�H'�"H'c��HK�tj|j||���d{V��S)uV Version asynchrone du scan Bluetooth classique. Args: duration: Durée du scan en secondes filter_name: Filtre optionnel sur le nom des appareils Returns: Liste de dictionnaires contenant les informations des appareils Bluetooth classiques détectés N)�asyncio� to_threadrH)r>r rs rG� scan_asynczClassicBTScanner.scan_async~s1�����&�t�y�(�K�H�H�H�H�H�H�H�H�H�r&c �L�d}d}d}||zdz }||z}||zdz }dddd d d d d dddd� }dddddddddddd� } |�|d|�d���} d|d ��} g} td!��D]7} |d"| zzr-| �| �| d| �d������8| | | fS)#u Décode la classe de l'appareil Bluetooth en composants lisibles. Args: device_class: La classe de l'appareil (int) Returns: Un tuple (major_class, minor_class, service_classes) i��i���� � Miscellaneous�Computer�PhonezLAN/Network Access Pointz Audio/Video� Peripheral�Imaging�Wearable�Toy�Health� Uncategorized) r�������rP� �zLimited Discoverable Mode�Reserved� Positioning� Networking� Rendering� CapturingzObject Transfer�Audio� Telephony� Information) rr[r\r]r^r_r`rarPrb� z Unknown (�)�0x�02x� r[)r8�ranger;)r>r&�major_class_mask�minor_class_mask�service_class_mask�major_class_value�minor_class_value�service_classes_value� major_classes�service_classes_dictrCrDr)�bits rGr9z%ClassicBTScanner._decode_device_class�sK��"����%��*�,<�<��B��(�+;�;��!-�0B�!B�r� I�����)��������  �  � � +������� ���� � ��$�'�'�(9�;[�GX�;[�;[�;[�\�\� �2�,�2�2�2� �����9�9� Z� Z�C�$��S��1� Z��&�&�';�'?�'?��EW�QT�EW�EW�EW�'X�'X�Y�Y�Y���K��8�8rM)r N)�__name__� __module__� __qualname__�__doc__�floatrr:rrrrHrLr5�tupler9�rMrGr r +s�������L�L�N�N�U�N��� �N�QU�VZ�[^�`c�[c�Vd�Qe�N�N�N�N�` I� I�� I�H�S�M� I�]a�bf�gj�lo�go�bp�]q� I� I� I� I�<9��<9��<9�<9�<9�<9�<9�<9rMr )r~�logging�platformrJ�typingrrrr�app.utils.bluetooth_utilsr�app.data.mac_prefixesr� getLoggerr{r.�systemr-r0�WINDOWS_BT_MESSAGE� bluetoothr3r/� ImportErrorr1r r+r�rMrG�<module>r�sx����������������,�,�,�,�,�,�,�,�,�,�,�,�>�>�>�>�>�>�1�1�1�1�1�1� �� �8� $� $���X�_� � �)� +� ������$�Z�&�&�&�&�#��� � �J�K�K�K�K�� �Z�Z�Z����X�Y�Y�Y�Y�Y�Z���� �K�K�"�#�#�#�]9�]9�]9�]9�]9�]9�]9�]9�@#�"�$�$���s�A-�-B � B 

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Hypijump31/bluetooth-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server