Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,4 @@ src/pyunigps.egg*
pylint_report.txt
venv
output.*
.VSCodeCounter
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ This is an independent project and we have no affiliation whatsoever with Unicor
![Contributors](https://img.shields.io/github/contributors/semuconsulting/pyunigps.svg)
![Open Issues](https://img.shields.io/github/issues-raw/semuconsulting/pyunigps)

This Alpha implements a comprehensive set of messages for Unicore "NebulasIV" High Precision GPS/GNSS devices, including the UM96n and UM98n series, but is readily [extensible](#extensibility). Refer to [UNI_MSGIDS in unitypes_core.py](https://github.com/semuconsulting/pyunigps/blob/main/src/pyunigps/unitypes_core.py#L86) for the complete list of message definitions currently defined. UNI protocol information sourced from public domain Unicore "NebulasIV" GNSS Protocol Specification © 2023, Unicore.
This Beta implements a comprehensive set of messages for Unicore "NebulasIV" High Precision GPS/GNSS devices, including the UM96n and UM98n series, but is readily [extensible](#extensibility). Refer to [UNI_MSGIDS in unitypes_core.py](https://github.com/semuconsulting/pyunigps/blob/main/src/pyunigps/unitypes_core.py#L86) for the complete list of message definitions currently defined. UNI protocol information sourced from public domain Unicore Reference Commands R1.13 © Dec 2025 Unicore
https://en.unicore.com/uploads/file/Unicore%20Reference%20Commands%20Manual%20For%20N4%20High%20Precision%20Products_V2_EN_R1.13.pdf

**FYI:**

Expand Down
8 changes: 8 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# pyunigps Release Notes

### RELEASE 0.2.0

1. Update for Protocol Specification R1.13 Dec 2025.
1. Fix GALUTC `da0g`, `da1g` attribute lengths.
1. Fix GALEPH `fnavreceived`, `inavreceived` attribute lengths.
1. Add additional VERSIONB device type decodes.
1. Remove redundant routines.

### RELEASE 0.1.5

1. Fix OBSVM, OBSVMCMP `psr` & `adr` attribute scaling.
Expand Down
25 changes: 19 additions & 6 deletions examples/benchmark.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,26 @@

# pylint: disable=line-too-long

import os
import sys
from io import BytesIO
from platform import python_version
from platform import version as osver
from sys import argv
from time import process_time_ns

# get path to site-packages (source) folder within venv
pypath = (
f"{os.path.expanduser("~")}/pygpsclient/lib/python"
f"{sys.version_info.major}.{sys.version_info.minor}/site-packages"
)
sys.path.insert(0, os.path.abspath(pypath))

from pyunigps._version import __version__ as univer
from pyunigps.unireader import UNIReader

CYAN = "\033[1m\033[36m"
NORM = "\033[0m"
UNIMESSAGES = [
b"\xaaD\xb5Y%\x004\x01\x00\xa0e\t\xe8[\x80\x04\x00\x00\x00\x00\x00\x12\x02\x00\x1f\x00\x00\x0014208\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00HRPT00-S10C-P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x002310415000015-O322A3233801305\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ff3bbd949ceb95fc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x002024/05/23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb6\xc0\x95\x94",
b"\xaaD\xb5Y\xfb\x03\x01\x00\x00\xa0e\t\xe8[\x80\x04\x00\x00\x00\x00\x00\x12\x03\x00\x00\x94#\x96'",
Expand Down Expand Up @@ -113,11 +124,12 @@ def benchmark(**kwargs) -> float:
txnt = txnc * cyc

print(
f"\nOperating system: {osver()}",
f"\nPython version: {python_version()}",
f"\npyunigps version: {univer}",
f"\nTest cycles: {cyc:,}",
f"\nTxn per cycle: {txnc:,}",
f"\nAbsolute path: {CYAN}{pypath}{NORM}",
f"\nOperating system: {CYAN}{osver()}{NORM}",
f"\nPython version: {CYAN}{python_version()}{NORM}",
f"\npyunigps version: {CYAN}{univer}{NORM}",
f"\nTest cycles: {CYAN}{cyc:,}{NORM}",
f"\nTxn per cycle: {CYAN}{txnc:,}{NORM}",
)

start = process_time_ns()
Expand All @@ -136,7 +148,8 @@ def benchmark(**kwargs) -> float:
kbs = round(msglen * 1e9 / duration / 2**10, 2)

print(
f"\n{txnt:,} messages processed in {duration/1e9:,.3f} seconds = {txs:,.2f} txns/second, {kbs:,.2f} kB/second.\n"
f"\n{txnt:,} messages processed in {duration/1e9:,.3f} seconds = "
f"{CYAN}{txs:,.2f}{NORM} txns/second, {CYAN}{kbs:,.2f}{NORM} kB/second ({CYAN}{kbs*8000:,.0f}{NORM} baud).\n"
)

return txs, kbs
Expand Down
7 changes: 3 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,14 @@ readme = "README.md"
requires-python = ">=3.10"
classifiers = [
"Operating System :: OS Independent",
"Development Status :: 3 - Alpha",
"Development Status :: 4 - Beta",
"Environment :: MacOS X",
"Environment :: Win32 (MS Windows)",
"Environment :: X11 Applications",
"Environment :: Console",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"Intended Audience :: End Users/Desktop",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
Expand Down Expand Up @@ -101,7 +100,7 @@ disable = """

[tool.pytest.ini_options]
minversion = "7.0"
addopts = "--cov --cov-report html --cov-fail-under 85"
addopts = "--cov --cov-report html --cov-fail-under 98"
pythonpath = ["src"]
testpaths = ["tests"]

Expand All @@ -112,7 +111,7 @@ source = ["src"]
source = ["src"]

[tool.coverage.report]
fail_under = 85
fail_under = 98

[tool.coverage.html]
directory = "htmlcov"
2 changes: 1 addition & 1 deletion src/pyunigps/_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@
:license: BSD 3-Clause
"""

__version__ = "0.1.5"
__version__ = "0.2.0"
Loading