{ "info": { "author": "Aleksandr Aleksandrov", "author_email": "aleksandr.aleksandrov@emlid.com", "bugtrack_url": null, "classifiers": [], "description": "### Bluetool\n\nA simple Python API for Bluetooth D-Bus calls. Allows easy pairing, connecting and scanning.\nAlso provides a TCP-to-RFCOMM socket bridge for data transfer.\n\n#### Dependencies\n\n- `python-dbus`\n- `tcpbridge`\n\nThe package was tested with **Python 2.7**\n\n#### Installation\n\n`pip install bluetool`\n\nor clone and run `make install`\n\n#### Usage\n\n- Bluetooth:\n\t\n\tlist: `[{\"name\": Name, \"mac_address\": MAC-address}, ... ]`\n\n\tMethods of class Bluetooth:\n\t- `start_scanning(timeout)`: `scan` in background\n\t- `scan(timeout)`\n\t- `get_devices_to_pair()`, returns list\n\t- `get_available_devices()`, returns list\n\t- `get_paired_devices()`, returns list\n\t- `get_connected_devices()`, returns list\n\t- `make_discoverable()`, returns bool\n\t- `start_pairing(address)`: `pair` in background\n\t- `pair(address)`, returns bool\n\t- `connect(address)`, returns bool\n\t- `disconnect(address)`, returns bool\n\t- `trust(address)`, returns bool\n\t- `remove(address)`, returns bool\n\t- `set_adapter_property(prop, value)`, returns bool\n\t- `get_adapter_property(prop)`\n\t- `set_device_property(address, prop, value)`, returns bool\n\t- `get_device_property(address, prop)`\n\n- BluetoothServer:\n \t\n\t- Step1: Use `run()` to create SPP\n\t- Step2: Connect the bluetooth device\n\t- Step3: TCPServer is available for connection\n\t\n\tUse `shutdown()` to shutdown server.\n\n##### Examples\n\n- Scanning\n```python\nfrom bluetool import Bluetooth\n\n\nbluetooth = Bluetooth()\nbluetooth.scan()\ndevices = bluetooth.get_available_devices()\nprint(devices)\n```\n- Using the RFCOMM-TCP Bridge\n```python\nimport signal\nfrom bluetool import BluetoothServer\n\n\ndef handler(signum, frame):\n server.shutdown()\n\n\ntcp_port = 8100\nserver = BluetoothServer(tcp_port)\n\nsignal.signal(signal.SIGINT, handler)\nsignal.signal(signal.SIGTERM, handler)\n\nserver.run()\n```\n- Using the Bluetooth Agent\n```python\nimport signal\nfrom bluetool.agent import Client, AgentSvr\n\n\nclass MyClient(Client):\n\n def request_pin_code(self, dev_info):\n print(dev_info)\n return raw_input(\"Input pin code:\")\n\n def request_passkey(self, dev_info):\n print(dev_info)\n return raw_input(\"Input passkey:\")\n\n def request_confirmation(self, dev_info, *args):\n print(dev_info, args)\n return raw_input(\"Input 'yes' to accept request:\") == \"yes\"\n\n def request_authorization(self, dev_info):\n print(dev_info)\n return raw_input(\"Input 'yes' to accept request:\") == \"yes\"\n\n\ndef handler(signum, frame):\n svr.shutdown()\n\n\nsvr = AgentSvr(client_class=MyClient)\n\nsignal.signal(signal.SIGINT, handler)\nsignal.signal(signal.SIGTERM, handler)\n\nsvr.run()\n```\n\n### About the project\n\nThis package was written by [Aleksandr Aleksandrov](https://github.com/AD-Aleksandrov) working at [Emlid](https://emlid.com/).\n\nThe bluetool was originally written for the [Emlid Reach RTK receiver](https://emlid.com/reach/), but we decided to open source it, as there is no easy Python API for BT pairing/connecting. Feel free to add issues and submit pull requests.\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/emlid/bluetool", "keywords": null, "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "bluetool", "package_url": "https://pypi.org/project/bluetool/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/bluetool/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/emlid/bluetool" }, "release_url": "https://pypi.org/project/bluetool/0.2.3/", "requires_dist": null, "requires_python": null, "summary": "UNKNOWN", "version": "0.2.3" }, "last_serial": 2878777, "releases": { "0.1.4": [ { "comment_text": "", "digests": { "md5": "07682db88ddb4503470875b45dec3888", "sha256": "c4ff50782902bb53d8125d85e0e412baee0e16787b7e1ff82cb20cb1269262b7" }, "downloads": -1, "filename": "bluetool-0.1.4.tar.gz", "has_sig": false, "md5_digest": "07682db88ddb4503470875b45dec3888", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17078, "upload_time": "2016-09-13T14:33:32", "url": "https://files.pythonhosted.org/packages/38/13/391126b233b377de2c03f9c46bd156006fe8e6e2ec9365e22fd2cfb8ee0f/bluetool-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "b51d0f66df16149707ac4cedbb383eba", "sha256": "a3f2c501b185fde0f41880e38849c79a8ff7eb320843cfc62e9686c22c90ee1e" }, "downloads": -1, "filename": "bluetool-0.1.5.tar.gz", "has_sig": false, "md5_digest": "b51d0f66df16149707ac4cedbb383eba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17126, "upload_time": "2016-09-15T13:33:34", "url": "https://files.pythonhosted.org/packages/97/22/7cbf13109355dd3d15d91634daea4874f74c5001cc3cf6bb96a013ad5897/bluetool-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "e7bfbbfae576d92050118eccca81b9f0", "sha256": "5022498ae2386022e4e3784a5bc525e6c975a49b4d6822c46a4059ef9e14ddb0" }, "downloads": -1, "filename": "bluetool-0.1.6.tar.gz", "has_sig": false, "md5_digest": "e7bfbbfae576d92050118eccca81b9f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17381, "upload_time": "2016-09-28T07:20:22", "url": "https://files.pythonhosted.org/packages/90/91/39c7327920b2569b7d4f5226ddd80df4e728bf747f48924bef1629c4b9f6/bluetool-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "4017033860527beefb07a6715128b3a3", "sha256": "4f2ce4e9664f6b1b83286f1eedfd91efee993f877f7988d2a7cbdae805a5fbb8" }, "downloads": -1, "filename": "bluetool-0.1.7.tar.gz", "has_sig": false, "md5_digest": "4017033860527beefb07a6715128b3a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17432, "upload_time": "2016-10-06T17:28:26", "url": "https://files.pythonhosted.org/packages/bf/cd/f84dfe5eb1de4f10042e1162df85360523ceca6797cc7915d2eb12bed646/bluetool-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "0de4ec23d6d32a9a2a80ccae2b3344b6", "sha256": "0bbd6710bc973119e2ff1ac05b28a7d4bdb2b4891e7ecb4c5635fa25c9f89879" }, "downloads": -1, "filename": "bluetool-0.1.8.tar.gz", "has_sig": false, "md5_digest": "0de4ec23d6d32a9a2a80ccae2b3344b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17398, "upload_time": "2017-01-08T11:00:53", "url": "https://files.pythonhosted.org/packages/b4/64/ceec1e588900da1ac9dcadb3873e9d423039ef00bb4bf7dd84fbbfcbd6c5/bluetool-0.1.8.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "f65c673c45c5291bce8a0b8755986b9f", "sha256": "09aca1174ea9d8b402f2231aa2277726174c30482710fc887ebbda7eb820f614" }, "downloads": -1, "filename": "bluetool-0.2.3.tar.gz", "has_sig": false, "md5_digest": "f65c673c45c5291bce8a0b8755986b9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18752, "upload_time": "2017-05-16T17:53:23", "url": "https://files.pythonhosted.org/packages/0f/9c/0c91898866f4f974918131e854d8b850b278ff7a6ac192789adba789b60b/bluetool-0.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f65c673c45c5291bce8a0b8755986b9f", "sha256": "09aca1174ea9d8b402f2231aa2277726174c30482710fc887ebbda7eb820f614" }, "downloads": -1, "filename": "bluetool-0.2.3.tar.gz", "has_sig": false, "md5_digest": "f65c673c45c5291bce8a0b8755986b9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18752, "upload_time": "2017-05-16T17:53:23", "url": "https://files.pythonhosted.org/packages/0f/9c/0c91898866f4f974918131e854d8b850b278ff7a6ac192789adba789b60b/bluetool-0.2.3.tar.gz" } ] }