Name | pynbntnmodem JSON |
Version |
0.3.15
JSON |
| download |
home_page | None |
Summary | Library for interfacing to Narrowband Non-Terrestrial Network modems using AT commands. |
upload_time | 2025-02-23 14:40:08 |
maintainer | None |
docs_url | None |
author | geoffbrucepayne |
requires_python | <4.0,>=3.10 |
license | Apache2.0 |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# NB-NTN Modem Interface
A generic model for interfacing to a NB-IoT modem compatible with 3GPP R17
Non-Terrestrial Network.
Provides an base class **`NbntnBaseModem`** that abstracts specific AT commands
to common methods used for communicating using NB-IoT over satellite.
The class is intended to be subclassed and extended for specific modem variants
from various manufacturers.
## Modem Subclassing
Since modem implementations differ across make/model, this library is intended
to be used to create `NbntnBaseModem` subclasses with specific AT commands and
responses. An example `DefaultModem` is included which covers the most basic
operations that should be supported by any 3GPP NTN compliant modem.
### Initialization Sequence
The `ntninit` submodule describes the format and an example template for the
AT command sequence required by a particular modem variant.
The `ntn_init` list of init objects may be customized and included at the top of
a specific modem subclass.
### Importing a Modem Subclass
A common approach to importing a modem subclass is as follows:
```
import importlib
from pkgutil import iter_modules
from pynbntnmodem import NbntnBaseModem, DefaultModem
for mod in iter_modules(modems.__path__):
submodule = importlib.import_module(f'{path_to_module_file}')
for attr_name in dir(submodule):
attr = getattr(submodule, attr_name)
if (isinstance(attr, type) and
issubclass(attr, NbntnBaseModem) and
attr is not DefaultModem):
modem = attr()
```
## Common Workflow
* **`connect()`** using either `.env` variables, default or programmatic values
for `SERIAL_PORT`/`port` and `SERIAL_BAUDRATE`/`baudrate`.
* **`initialize_ntn()`** to run the modem-specific configuration sequence
* Run a loop that continually runs `check_urc()`, queues and then processes
each `get_urc_type()`
Raw data
{
"_id": null,
"home_page": null,
"name": "pynbntnmodem",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": null,
"keywords": null,
"author": "geoffbrucepayne",
"author_email": "geoff.bruce-payne@inmarsat.com",
"download_url": "https://files.pythonhosted.org/packages/7c/17/0fd038f34e19544a3e8db1fc66c6dbe53105abb176bb123931e8174ab175/pynbntnmodem-0.3.15.tar.gz",
"platform": null,
"description": "# NB-NTN Modem Interface\n\nA generic model for interfacing to a NB-IoT modem compatible with 3GPP R17\nNon-Terrestrial Network.\n\nProvides an base class **`NbntnBaseModem`** that abstracts specific AT commands\nto common methods used for communicating using NB-IoT over satellite.\nThe class is intended to be subclassed and extended for specific modem variants\nfrom various manufacturers.\n\n## Modem Subclassing\n\nSince modem implementations differ across make/model, this library is intended\nto be used to create `NbntnBaseModem` subclasses with specific AT commands and\nresponses. An example `DefaultModem` is included which covers the most basic\noperations that should be supported by any 3GPP NTN compliant modem.\n\n### Initialization Sequence\n\nThe `ntninit` submodule describes the format and an example template for the\nAT command sequence required by a particular modem variant.\n\nThe `ntn_init` list of init objects may be customized and included at the top of \na specific modem subclass.\n\n### Importing a Modem Subclass\n\nA common approach to importing a modem subclass is as follows:\n```\nimport importlib\nfrom pkgutil import iter_modules\n\nfrom pynbntnmodem import NbntnBaseModem, DefaultModem\n\n\nfor mod in iter_modules(modems.__path__):\n submodule = importlib.import_module(f'{path_to_module_file}')\n for attr_name in dir(submodule):\n attr = getattr(submodule, attr_name)\n if (isinstance(attr, type) and\n issubclass(attr, NbntnBaseModem) and\n attr is not DefaultModem):\n \n modem = attr()\n```\n\n## Common Workflow\n\n* **`connect()`** using either `.env` variables, default or programmatic values\n\nfor `SERIAL_PORT`/`port` and `SERIAL_BAUDRATE`/`baudrate`.\n\n* **`initialize_ntn()`** to run the modem-specific configuration sequence\n\n* Run a loop that continually runs `check_urc()`, queues and then processes\neach `get_urc_type()`\n",
"bugtrack_url": null,
"license": "Apache2.0",
"summary": "Library for interfacing to Narrowband Non-Terrestrial Network modems using AT commands.",
"version": "0.3.15",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "29250de31414fb3a9041351fb768f04005756097d9c11e73f89ffe529b0d5507",
"md5": "94748762bd8458ff2b1fdbe78beb06ba",
"sha256": "1949a8186f55a1e22b440cc46460325e8e397e1e49d39db8c212f0d0a0841ff3"
},
"downloads": -1,
"filename": "pynbntnmodem-0.3.15-py3-none-any.whl",
"has_sig": false,
"md5_digest": "94748762bd8458ff2b1fdbe78beb06ba",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 30985,
"upload_time": "2025-02-23T14:40:07",
"upload_time_iso_8601": "2025-02-23T14:40:07.346548Z",
"url": "https://files.pythonhosted.org/packages/29/25/0de31414fb3a9041351fb768f04005756097d9c11e73f89ffe529b0d5507/pynbntnmodem-0.3.15-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7c170fd038f34e19544a3e8db1fc66c6dbe53105abb176bb123931e8174ab175",
"md5": "01cbb4fb79fffb56884dc57383136727",
"sha256": "b5886add9d2026e82c3bc09c68a6730a63a963949d12d656f59eea293693aaba"
},
"downloads": -1,
"filename": "pynbntnmodem-0.3.15.tar.gz",
"has_sig": false,
"md5_digest": "01cbb4fb79fffb56884dc57383136727",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 26670,
"upload_time": "2025-02-23T14:40:08",
"upload_time_iso_8601": "2025-02-23T14:40:08.945682Z",
"url": "https://files.pythonhosted.org/packages/7c/17/0fd038f34e19544a3e8db1fc66c6dbe53105abb176bb123931e8174ab175/pynbntnmodem-0.3.15.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-23 14:40:08",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "pynbntnmodem"
}