diff --git a/.github/workflows/build-validation.yml b/.github/workflows/build-validation.yml index cec9d70..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@v4 + - uses: actions/checkout@v6 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..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@v4 + - uses: actions/checkout@v6 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 diff --git a/.github/workflows/publish-to-test-pypi.yml b/.github/workflows/publish-to-test-pypi.yml index 6dfa141..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@v5 + uses: actions/setup-python@v6 with: python-version: "3.x" - name: Install pypa/build 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()