# pynimcodec
A set of message codecs for use with satellite IoT products implemented
in Python.
## nimo
The NIMO message codec was designed by ORBCOMM and represents an efficient
binary data packing for various data types at a bit-level.
This module also provides facilities to build a XML file compliant with the
ORBCOMM and/or Viasat *Message Definition File* concept to apply to messages
sent over the IsatData Pro service.
The principles of the NIMO *Common Message Format* are:
* First byte of payload is *Service Identification Number* (**SIN**)
representing a microservice running on an IoT device.
Each `<Service>` consists of `<ForwardMessages>` (e.g. commands) and/or
`<ReturnMessages>` (e.g. reports or responses from the IoT device).
SIN must be in a range 16..255.
> [!WARNING]
> SIN range 16..127 may *conflict* with certain ORBCOMM-reserved messages
> when using the ORBCOMM IDP service.
* Second byte of payload is *Message Identification Number* (**MIN**)
representing a remote operation such as a data report or a command.
The combination of **SIN** and **MIN** and direction (Forward/Return) enables
decoding of subsequent `<Fields>` containing data.
* Subsequent bytes of data are defined by `<Fields>` where each `<Field>` has
a data type such as `<SignedIntField>`, `<EnumField>`, etc.
These fields can be defined on individual bitwise boundaries, for example a
5-bit unsigned integer with maximum value 31, or a boolean single bit.
Raw data
{
"_id": null,
"home_page": "https://github.com/inmarsat-enterprise/pynimomodem",
"name": "pynimcodec",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9,<4.0",
"maintainer_email": "",
"keywords": "viasat,inmarsat,satellite,iot,idp,ogx,orbcomm",
"author": "geoffbrucepayne",
"author_email": "geoff.bruce-payne@inmarsat.com",
"download_url": "https://files.pythonhosted.org/packages/75/cf/ab7d85b2f430b65023f1fd4843599ca6c107dda2f1b4ff0d54770464e45e/pynimcodec-0.2.0.tar.gz",
"platform": null,
"description": "# pynimcodec\n\nA set of message codecs for use with satellite IoT products implemented\nin Python.\n\n## nimo\n\nThe NIMO message codec was designed by ORBCOMM and represents an efficient\nbinary data packing for various data types at a bit-level.\n\nThis module also provides facilities to build a XML file compliant with the\nORBCOMM and/or Viasat *Message Definition File* concept to apply to messages\nsent over the IsatData Pro service.\n\nThe principles of the NIMO *Common Message Format* are:\n\n* First byte of payload is *Service Identification Number* (**SIN**)\nrepresenting a microservice running on an IoT device.\nEach `<Service>` consists of `<ForwardMessages>` (e.g. commands) and/or\n`<ReturnMessages>` (e.g. reports or responses from the IoT device).\nSIN must be in a range 16..255.\n \n> [!WARNING]\n> SIN range 16..127 may *conflict* with certain ORBCOMM-reserved messages\n> when using the ORBCOMM IDP service.\n\n* Second byte of payload is *Message Identification Number* (**MIN**)\nrepresenting a remote operation such as a data report or a command.\nThe combination of **SIN** and **MIN** and direction (Forward/Return) enables\ndecoding of subsequent `<Fields>` containing data.\n\n* Subsequent bytes of data are defined by `<Fields>` where each `<Field>` has\na data type such as `<SignedIntField>`, `<EnumField>`, etc.\nThese fields can be defined on individual bitwise boundaries, for example a\n5-bit unsigned integer with maximum value 31, or a boolean single bit.",
"bugtrack_url": null,
"license": "Apache2.0",
"summary": "Codecs for Satellite IoT messaging implemented in Python.",
"version": "0.2.0",
"project_urls": {
"Homepage": "https://github.com/inmarsat-enterprise/pynimomodem",
"Repository": "https://github.com/inmarsat-enterprise/pynimomodem"
},
"split_keywords": [
"viasat",
"inmarsat",
"satellite",
"iot",
"idp",
"ogx",
"orbcomm"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0e21dc47d2ea34129506ac9b078dd597fd2416b5ae57828676ce0250da9da375",
"md5": "bd4f8b05bfd66a6f5154297cb5a7d530",
"sha256": "9ac1c5d0d11b921734de2f341e78413e1e553625c440c292bea4afe31e8d6b93"
},
"downloads": -1,
"filename": "pynimcodec-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bd4f8b05bfd66a6f5154297cb5a7d530",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9,<4.0",
"size": 26793,
"upload_time": "2023-12-12T16:15:47",
"upload_time_iso_8601": "2023-12-12T16:15:47.331627Z",
"url": "https://files.pythonhosted.org/packages/0e/21/dc47d2ea34129506ac9b078dd597fd2416b5ae57828676ce0250da9da375/pynimcodec-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "75cfab7d85b2f430b65023f1fd4843599ca6c107dda2f1b4ff0d54770464e45e",
"md5": "1757fd9f1cb22c976d46203221dd62a0",
"sha256": "b0fe2e838fcb790bfbe5b2de4fd327e5353c6fbd9092baf60f65d9deee7b099b"
},
"downloads": -1,
"filename": "pynimcodec-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "1757fd9f1cb22c976d46203221dd62a0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9,<4.0",
"size": 19022,
"upload_time": "2023-12-12T16:15:48",
"upload_time_iso_8601": "2023-12-12T16:15:48.858933Z",
"url": "https://files.pythonhosted.org/packages/75/cf/ab7d85b2f430b65023f1fd4843599ca6c107dda2f1b4ff0d54770464e45e/pynimcodec-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-12 16:15:48",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "inmarsat-enterprise",
"github_project": "pynimomodem",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pynimcodec"
}