From bd09cc5d82db6e9b8f06b4b02284dd900ca76eb2 Mon Sep 17 00:00:00 2001 From: Marc Hofmann Date: Thu, 4 Jun 2026 18:05:14 +0200 Subject: [PATCH 1/5] Added timeout parameters to SerialPortConnection constructor --- README.md | 5 ++++- pyproject.toml | 2 +- src/science_mode_4/utils/serial_port_connection.py | 14 ++++++++++---- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 8fbc7b9..d378245 100644 --- a/README.md +++ b/README.md @@ -148,4 +148,7 @@ Python 3.11 or higher - Added getter for underlying serial object in SerialPortConnection ## 0.0.22 -- Library specific exception classes \ No newline at end of file +- Library specific exception classes + +## 0.0.23 +- Added timeout parameters to SerialPortConnection constructor \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 025823d..cac42fe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "science_mode_4" -version = "0.0.22" +version = "0.0.23" authors = [ { name="Marc Hofmann", email="marc-hofmann@gmx.de" }, ] diff --git a/src/science_mode_4/utils/serial_port_connection.py b/src/science_mode_4/utils/serial_port_connection.py index 8f338ef..55d5587 100644 --- a/src/science_mode_4/utils/serial_port_connection.py +++ b/src/science_mode_4/utils/serial_port_connection.py @@ -35,14 +35,20 @@ def list_science_mode_device_ports() -> list[serial.tools.list_ports_common.List return filtered_ports - def __init__(self, port: str, error_timeout: int = 3): - self._ser = serial.Serial(timeout = 0) + def __init__(self, port: str, read_timeout_ins_s: float = 0, write_timeout_ins_s: float = 1, error_timeout_in_s: float = 3): + self._ser = serial.Serial(timeout = read_timeout_ins_s, write_timeout=write_timeout_ins_s) self._ser.port = port - self._error_timeout = error_timeout + self._error_timeout_in_s = error_timeout_in_s self._last_written_data = bytes() + @property + def internal_serial(self) -> serial.Serial: + """Getter for internal pySerial object""" + return self._ser + + def open(self): self._ser.open() @@ -92,7 +98,7 @@ def _read_intern(self) -> bytes: except Exception: # pylint:disable=broad-exception-caught pass - time.sleep(self._error_timeout) + time.sleep(self._error_timeout_in_s) try: self.open() From 4f45037bf40a3e9bcaa8dd416e29963b49f4f335 Mon Sep 17 00:00:00 2001 From: Marc Hofmann Date: Thu, 4 Jun 2026 18:10:32 +0200 Subject: [PATCH 2/5] updated actions/setup-python from v5 to v6 --- .github/workflows/build-validation.yml | 2 +- .github/workflows/publish-to-pypi.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-validation.yml b/.github/workflows/build-validation.yml index cec9d70..5c4ea78 100644 --- a/.github/workflows/build-validation.yml +++ b/.github/workflows/build-validation.yml @@ -12,7 +12,7 @@ jobs: with: persist-credentials: false - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: "3.x" - name: Install pypa/build/pylint/requirements.txt diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index b89260d..c58fc4a 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -15,7 +15,7 @@ jobs: with: persist-credentials: false - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: "3.x" - name: Install pypa/build From 4e02d5c1e5a50b962e8916d3293bad4d6657dc96 Mon Sep 17 00:00:00 2001 From: Marc Hofmann Date: Thu, 4 Jun 2026 18:21:39 +0200 Subject: [PATCH 3/5] wip --- .github/workflows/build-validation.yml | 4 ++-- .github/workflows/publish-to-pypi.yml | 4 ++-- .github/workflows/publish-to-test-pypi.yml | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-validation.yml b/.github/workflows/build-validation.yml index 5c4ea78..e982791 100644 --- a/.github/workflows/build-validation.yml +++ b/.github/workflows/build-validation.yml @@ -8,11 +8,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout with: persist-credentials: false - name: Set up Python - uses: actions/setup-python@v6 + uses: actions/setup-python with: python-version: "3.x" - name: Install pypa/build/pylint/requirements.txt diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index c58fc4a..b9f5bb5 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -11,11 +11,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout with: persist-credentials: false - name: Set up Python - uses: actions/setup-python@v6 + uses: actions/setup-python with: python-version: "3.x" - name: Install pypa/build diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index 6dfa141..efbc6e2 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -12,7 +12,7 @@ jobs: with: persist-credentials: false - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python with: python-version: "3.x" - name: Install pypa/build @@ -25,7 +25,7 @@ jobs: - name: Build a binary wheel and a source tarball run: python3 -m build - name: Store the distribution packages - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact with: name: python-package-distributions path: dist/ @@ -45,7 +45,7 @@ jobs: steps: - name: Download all the dists - uses: actions/download-artifact@v4 + uses: actions/download-artifact with: name: python-package-distributions path: dist/ From be761086e56cc73e724c45719e292ff246a605e6 Mon Sep 17 00:00:00 2001 From: Marc Hofmann Date: Thu, 4 Jun 2026 18:21:57 +0200 Subject: [PATCH 4/5] wip --- .github/workflows/publish-to-pypi.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index b9f5bb5..4d5d37e 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -48,7 +48,7 @@ jobs: steps: - name: Download all the dists - uses: actions/download-artifact@v4 + uses: actions/download-artifact with: name: python-package-distributions path: dist/ @@ -69,7 +69,7 @@ jobs: steps: - name: Download all the dists - uses: actions/download-artifact@v4 + uses: actions/download-artifact with: name: python-package-distributions path: dist/ From 486cdbb79aeb7204cd9ad20dd5fd5e5d6fc84141 Mon Sep 17 00:00:00 2001 From: Marc Hofmann Date: Thu, 4 Jun 2026 18:23:26 +0200 Subject: [PATCH 5/5] wip --- .github/workflows/build-validation.yml | 4 ++-- .github/workflows/publish-to-pypi.yml | 8 ++++---- .github/workflows/publish-to-test-pypi.yml | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-validation.yml b/.github/workflows/build-validation.yml index e982791..a4c80f7 100644 --- a/.github/workflows/build-validation.yml +++ b/.github/workflows/build-validation.yml @@ -8,11 +8,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout + - uses: actions/checkout@v6 with: persist-credentials: false - name: Set up Python - uses: actions/setup-python + uses: actions/setup-python@v6 with: python-version: "3.x" - name: Install pypa/build/pylint/requirements.txt diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index 4d5d37e..d464352 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -11,11 +11,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout + - uses: actions/checkout@v6 with: persist-credentials: false - name: Set up Python - uses: actions/setup-python + uses: actions/setup-python@v6 with: python-version: "3.x" - name: Install pypa/build @@ -48,7 +48,7 @@ jobs: steps: - name: Download all the dists - uses: actions/download-artifact + uses: actions/download-artifact@v4 with: name: python-package-distributions path: dist/ @@ -69,7 +69,7 @@ jobs: steps: - name: Download all the dists - uses: actions/download-artifact + uses: actions/download-artifact@v4 with: name: python-package-distributions path: dist/ diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index efbc6e2..bdccb3b 100644 --- a/.github/workflows/publish-to-test-pypi.yml +++ b/.github/workflows/publish-to-test-pypi.yml @@ -8,11 +8,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: persist-credentials: false - name: Set up Python - uses: actions/setup-python + uses: actions/setup-python@v6 with: python-version: "3.x" - name: Install pypa/build @@ -25,7 +25,7 @@ jobs: - name: Build a binary wheel and a source tarball run: python3 -m build - name: Store the distribution packages - uses: actions/upload-artifact + uses: actions/upload-artifact@v4 with: name: python-package-distributions path: dist/ @@ -45,7 +45,7 @@ jobs: steps: - name: Download all the dists - uses: actions/download-artifact + uses: actions/download-artifact@v4 with: name: python-package-distributions path: dist/