{ "info": { "author": "Zbigniew Zasieczny", "author_email": "z.zasieczny@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "PJON-python\r\n===========\r\n\r\nPythonic interface to PJON communication protocol.\r\n\r\nPJON (Github: `PJON `__ ) is an\r\nopen-source, multi-master, multi-media (one-wire, two-wires, radio)\r\ncommunication protocol available for various platforms (Arduino/AVR,\r\nESP8266, Teensy).\r\n\r\nPJON is one of very few open-source implementations of multi-master\r\ncommunication protocols for microcontrollers.\r\n\r\nPJON-python module in the current status enables communication with\r\nother PJON devices directly over UART (serial communication):\r\n\r\n- In a basic scenario PJON + PJON-python can be a viable alternative to\r\n more complex protocols like Firmata (Arduino firmware on Github:\r\n `firmata/Arduino `__ for direct\r\n (SIMPLEX) communication host-uC.\r\n- If RS485 drivers with auto-tx setup are used the host (e.g. Raspberry\r\n PI) can join multi-master PJON bus and python programs can\r\n communicate with multiple uC.\r\n- If uC with proxy firmware (sending packets between serial and other\r\n type of PJON bus) is used the host can communicate with PJON buses\r\n other than serial through that serial2pjon proxy uC.\r\n\r\nPJON-python module opens popular uC platforms (Arduino, ESP8266, Teensy)\r\nto the whole range of applications: - multi-master automation (reporting\r\nby exception lowers latency compared to polling-based protocols like\r\nModbus) - open-hardware IoT (thanks to integration flexibility of other\r\npython modules)\r\n\r\nCurrent status:\r\n---------------\r\n\r\n- work in progress, minimal client operational with PJON v4.2 or v4.3\r\n (ThroughHardwareSerial strategy is required)\r\n- initially PHY abstraction to BitBang and OverSampling strategies\r\n provided by a serial-PJON bridge implemented as Arduino sketch\r\n- support for ThroughHardwareSerial strategy in HALF\\_DUPLEX,\r\n multi-master communication mode e.g. over RS485 bus is provided\r\n directly (serial-RS485 converter required)\r\n- support for ThroughHardwareSerial strategy in SIMPLEX communication\r\n mode will be provided directly (e.g. to talk to a single Arduino).\r\n- Communication with a single arduino connected to USB works in\r\n HALF\\_DUPLEX mode out of the box without any additional hardware\r\n\r\noutstading features\r\n-------------------\r\n\r\n- PJON serial strategy\r\n- receive without ACK from local bus [done]\r\n- receive with ACK [done]\r\n- send without ACK to local bus [done]\r\n- send with ACK [done]\r\n- PJON protocol\r\n- receive [done]\r\n- send [done]\r\n- update [done]\r\n- repetitive send\r\n- local bus support [done]\r\n- including sender ID [done]\r\n- shared bus support\r\n- auto addressing (PJON v5 feature)\r\n- public api\r\n- blocking [implementing]\r\n- non-blocking [done]\r\n- auto-discover of serial-PJON bridge\r\n\r\nPJON-python versions are aligned with PJON versions to indicate\r\ncompatibility with C implementation for uC platforms.\r\n\r\nv4 goals:\r\n^^^^^^^^^\r\n\r\n- local and remote serial port support with auto-discovery of the\r\n serial2pjon proxy arduino\r\n- PJON serial strategy for local bus with ACK support [done]\r\n- full PJON serial protocol for serial strategy (remote buses support)\r\n\r\nv5 goals:\r\n^^^^^^^^^\r\n\r\n- auto addressing\r\n\r\nminimal client example\r\n\r\n.. code:: python\r\n\r\n from pjon_python.base_client import PjonBaseSerialClient\r\n import time\r\n\r\n pjon_cli = PjonBaseSerialClient(1, 'COM6')\r\n pjon_cli.start_client()\r\n\r\n\r\n def receive_handler(payload, packet_length, packet_info):\r\n print \"received packet from device %s with payload: %s\" % (packet_info.sender_id, payload)\r\n\r\n pjon_cli.set_receive(receive_handler)\r\n\r\n while True:\r\n # recipient id payload\r\n pjon_cli.send(35, 'C123456789') # payload can be string or an array of bytes (or any type suitable for casting to byte)\r\n time.sleep(1)", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/Girgitt/PJON-python/tarball/4.2.6", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Girgitt/PJON-python", "keywords": "PJON,multimaster,serial,RS485,arduino", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "PJON-python", "package_url": "https://pypi.org/project/PJON-python/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/PJON-python/", "project_urls": { "Download": "https://github.com/Girgitt/PJON-python/tarball/4.2.6", "Homepage": "https://github.com/Girgitt/PJON-python" }, "release_url": "https://pypi.org/project/PJON-python/4.2.6/", "requires_dist": null, "requires_python": null, "summary": "Python implementation of the PJON communication protocol.", "version": "4.2.6" }, "last_serial": 2604841, "releases": { "4.2.1": [ { "comment_text": "", "digests": { "md5": "3423ad43f592a0772d76d8285b0f4f59", "sha256": "37ee8cedcb54004b72388767d3c57b5704e29bbdefc8730841f1ac1ed183454b" }, "downloads": -1, "filename": "pjon_python-4.2.1.zip", "has_sig": false, "md5_digest": "3423ad43f592a0772d76d8285b0f4f59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3540, "upload_time": "2016-09-10T15:41:26", "url": "https://files.pythonhosted.org/packages/7a/33/37c58b0008f65ba9ac7212e8c8745a28b0f6097c56620e8ce855905c7db4/pjon_python-4.2.1.zip" } ], "4.2.2": [ { "comment_text": "", "digests": { "md5": "4991e88855f6ee9a2323d112b5dc94ba", "sha256": "b70f5358fc814f6f2bc42ad74f6950a4b4289bf7a2789b672c25a34a3e386da3" }, "downloads": -1, "filename": "pjon_python-4.2.2.zip", "has_sig": false, "md5_digest": "4991e88855f6ee9a2323d112b5dc94ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12558, "upload_time": "2016-09-10T15:52:54", "url": "https://files.pythonhosted.org/packages/f5/83/932fff64e084b090c704a332ee4cff1de206cd156f653e4f5df748053d62/pjon_python-4.2.2.zip" } ], "4.2.3": [ { "comment_text": "", "digests": { "md5": "ecc6d76f8167ae0328ec7e8feed5eb88", "sha256": "344f4f3e4f86438e9fe9c44358a60495614481b5b1ce5b66de0825cc23f6940d" }, "downloads": -1, "filename": "pjon_python-4.2.3.zip", "has_sig": false, "md5_digest": "ecc6d76f8167ae0328ec7e8feed5eb88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13953, "upload_time": "2016-10-09T22:03:35", "url": "https://files.pythonhosted.org/packages/88/c1/a3930bcc78910bd224af4caf21113e55d7d821ddf460e1b6fc7ba0fe3ed3/pjon_python-4.2.3.zip" } ], "4.2.4": [ { "comment_text": "", "digests": { "md5": "82521426fd931150b42dca2f4f255dd8", "sha256": "bdb1c173412eca33f35b963934af095bd71669ccc2ce3198d56504549134f3e8" }, "downloads": -1, "filename": "pjon_python-4.2.4.tar.gz", "has_sig": false, "md5_digest": "82521426fd931150b42dca2f4f255dd8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13182, "upload_time": "2017-01-25T10:16:43", "url": "https://files.pythonhosted.org/packages/41/c3/515796b6c3d6e3d9bd6764a24dd42ff4bd76cb592d792f33402d037994f3/pjon_python-4.2.4.tar.gz" } ], "4.2.5": [ { "comment_text": "", "digests": { "md5": "51cbb39d278357a5784df8e9f57e4167", "sha256": "0a406d4a43ab7eee8ec9b00b92a4f686f3c4bf1c110d6e3e310ed60e1a714c25" }, "downloads": -1, "filename": "pjon_python-4.2.5.tar.gz", "has_sig": false, "md5_digest": "51cbb39d278357a5784df8e9f57e4167", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13471, "upload_time": "2017-01-29T13:12:04", "url": "https://files.pythonhosted.org/packages/fd/83/e9f5dc2c7bd10d8051738296bc1a698475b2d1f792a0db71edd83cdf11d9/pjon_python-4.2.5.tar.gz" } ], "4.2.6": [ { "comment_text": "", "digests": { "md5": "028b6e5100394678e6ccf61086d88c44", "sha256": "28f6279c3b8b4727121346f7eb0c29aead4c16ac052cacc652d42d052f0f4302" }, "downloads": -1, "filename": "pjon_python-4.2.6.tar.gz", "has_sig": false, "md5_digest": "028b6e5100394678e6ccf61086d88c44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13529, "upload_time": "2017-01-29T13:35:34", "url": "https://files.pythonhosted.org/packages/3e/5a/f0f62fe3a0496df302f4c840dff217a6da6ede8c9996ec1adec5f25d7b41/pjon_python-4.2.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "028b6e5100394678e6ccf61086d88c44", "sha256": "28f6279c3b8b4727121346f7eb0c29aead4c16ac052cacc652d42d052f0f4302" }, "downloads": -1, "filename": "pjon_python-4.2.6.tar.gz", "has_sig": false, "md5_digest": "028b6e5100394678e6ccf61086d88c44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13529, "upload_time": "2017-01-29T13:35:34", "url": "https://files.pythonhosted.org/packages/3e/5a/f0f62fe3a0496df302f4c840dff217a6da6ede8c9996ec1adec5f25d7b41/pjon_python-4.2.6.tar.gz" } ] }