pynbntnmodem


Namepynbntnmodem JSON
Version 0.3.15 PyPI version JSON
download
home_pageNone
SummaryLibrary for interfacing to Narrowband Non-Terrestrial Network modems using AT commands.
upload_time2025-02-23 14:40:08
maintainerNone
docs_urlNone
authorgeoffbrucepayne
requires_python<4.0,>=3.10
licenseApache2.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"
}
        
Elapsed time: 5.90395s