Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
2441213
BaseException should be reserved for built-in python code per https:/…
jcollins1983 Feb 23, 2026
aff9f01
merge main
jcollins1983 Mar 2, 2026
d10786f
restructure ftdi library
jcollins1983 Mar 2, 2026
1ca32bc
update import references after restructure to ftdi module
jcollins1983 Mar 3, 2026
6569c3e
add dll and necessary bits to be able to include it in the fixate pac…
jcollins1983 Mar 3, 2026
6b4e73b
ready to start testing with hardware
jcollins1983 Mar 3, 2026
fe841d8
add not implemented error for SPI class
jcollins1983 Mar 4, 2026
c7c3a9d
update black to be able to parse current python features
jcollins1983 Mar 4, 2026
e3d1001
use generic type to make open method a little cleaner
jcollins1983 Mar 5, 2026
34ec6fa
correct dll function calls that resulted in an OSError
jcollins1983 Mar 5, 2026
afde6f6
fix error handling
jcollins1983 Mar 5, 2026
95a9f8c
add pyftdi like start / stop bools in the simple interface
jcollins1983 Mar 8, 2026
7591271
it doesn't make sense for the options to be optional
jcollins1983 Mar 8, 2026
438a4b1
future work TODO
jcollins1983 Mar 8, 2026
389d297
make repeated start teh default (as per pyftdi)
jcollins1983 Mar 9, 2026
8b07986
build without a debug print statement
jcollins1983 Mar 11, 2026
3cd59f7
change to I2CError for more clarity in error reporting
jcollins1983 Mar 11, 2026
6d8aca4
add retry logic akin to that in pyftdi library as I don't want to int…
jcollins1983 Mar 17, 2026
5fc0b27
switch to NAK last byte
jcollins1983 Mar 17, 2026
99dff59
clean up handle after close
jcollins1983 Mar 17, 2026
05b8bae
add comment RE change to library
jcollins1983 Mar 17, 2026
46e216e
make ftdi_mpsse.py private and only expose parts of the module that a…
jcollins1983 Mar 17, 2026
a888668
update release notes and make version line up with these
jcollins1983 Mar 17, 2026
f20d3b7
ignore a mypy issue because I don't want to deal with it in this branch
jcollins1983 Mar 17, 2026
6166852
update the ignore structure after changing the module layout for ftdi. I
jcollins1983 Mar 17, 2026
a58fc70
switch prints to logger calls
jcollins1983 Mar 17, 2026
7700d68
make tox black version the same as precommit.yaml version
jcollins1983 Mar 17, 2026
0f1d783
run black on all files since the version was updated and some new def…
jcollins1983 Mar 17, 2026
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
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ repos:
hooks:
- id: check-yaml
- repo: https://github.com/psf/black
rev: 22.3.0
rev: 25.12.0
hooks:
- id: black
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
# All aren't necessary for the docs themselves
autodoc_mock_imports = [
# import a DLL/shared lib and is platform-dependent
"fixate.drivers._ftdi",
"fixate.drivers.ftdi._ftdi",
"PyDAQmx",
# pulls in platform-dependent libraries
"pynput",
Expand Down
1 change: 1 addition & 0 deletions docs/release-notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ Major Changes

New Features
############
- FTDI MPSSE I2C functionality that replaces pyftdi with libmpsse.

Improvements
############
Expand Down
1 change: 1 addition & 0 deletions examples/function_generator.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""
Examples on how to use the function generator driver
"""

import time

from fixate.core.common import TestClass, TestList
Expand Down
1 change: 1 addition & 0 deletions examples/jig_driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
This file is just a test playground that shows how the update jig classes will
fit together.
"""

from __future__ import annotations
from dataclasses import dataclass, field
from fixate import (
Expand Down
1 change: 1 addition & 0 deletions examples/programmable_power_supply.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""
Examples on how to use the programmable power supply driver works
"""

import time

from fixate.core.common import TestClass, TestList
Expand Down
1 change: 1 addition & 0 deletions examples/test_script.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""
This is a test script that shows basic use case for the fixate library
"""

from fixate.core.common import TestClass, TestList
from fixate.core.checks import *
from fixate.core.ui import *
Expand Down
8 changes: 7 additions & 1 deletion mypy.ini
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,14 @@ exclude = (?x)
__init__.py
|helper.py
)
|ftdi/
(
__init__.py
|_ftdi_mpsse.py
|_ftdi_py.py
|_libmpsse.py
)
|__init__.py
|ftdi.py
)
)
)
Expand Down
4 changes: 4 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,11 @@ install_requires =

[options.packages.find]
where = src
include_package_data = True

[options.package_data]
# this is only for windows. We can look to add support for other platforms in the future if necessary.
fixate.drivers.ftdi.libs = libmpsse.dll

[options.extras_require]
gui =
Expand Down
2 changes: 1 addition & 1 deletion src/fixate/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@

from fixate.main import run_main_program as run

__version__ = "0.6.4"
__version__ = "0.6.5"
1 change: 1 addition & 0 deletions src/fixate/config/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
Drivers are hard coded into the config to prevent issues arising from auto discovery
Must ensure driver imports are infallible to prevent program crash on start
"""

from fixate.config.helper import (
load_dict_config,
load_yaml_config,
Expand Down
1 change: 1 addition & 0 deletions src/fixate/core/checks.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
This module is used to allow for tests to test values against criteria.
It should implement necessary logging functions and report success or failure.
"""

from dataclasses import dataclass, field
from typing import Any, Callable, Iterable, Optional
import logging
Expand Down
1 change: 1 addition & 0 deletions src/fixate/core/ui.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""
This module details user input api
"""

import time
from queue import Queue, Empty
from pubsub import pub
Expand Down
1 change: 1 addition & 0 deletions src/fixate/drivers/daq/daqmx.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
C:\Program Files\National Instruments\NI-DAQ\DAQmx ANSI C Dev\include\NIDAQmx.h

"""

from collections import namedtuple
from fixate.core.common import ExcThread
from queue import Queue, Empty
Expand Down
1 change: 1 addition & 0 deletions src/fixate/drivers/dmm/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
dmm.measure(*mode, **mode_params)
dmm.reset()
"""

import pyvisa

import fixate.drivers
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from fixate.core.common import bits
from fixate.core.exceptions import FixateError, InstrumentNotConnected

from fixate.drivers._ftdi import ftdI2xx
from fixate.drivers.ftdi._ftdi import ftdI2xx

# Definitions
UCHAR = ctypes.c_ubyte
Expand Down Expand Up @@ -448,3 +448,13 @@ def open(ftdi_description="") -> FTDI2xx:
raise InstrumentNotConnected(
f"No valid ftdi found by description '{ftdi_description}'"
)


from fixate.drivers.ftdi._ftdi_mpsse import ( # noqa: I001 - we don't want these imports to be split up
I2CTransferOptions as I2CTransferOptions,
I2CClockRate as I2CClockRate,
I2CChannelConfig as I2CChannelConfig,
MpsseI2C as MpsseI2C,
MpsseI2CSimpleInterface as MpsseI2CSimpleInterface,
open as open_mpsse, # explicitly named to avoid conflict with open() at ftdi level. # noqa: F401
)
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
""" Private wrapper for ftdi driver. DLL on Windows, .so shared library on *nix.
"""Private wrapper for ftdi driver. DLL on Windows, .so shared library on *nix.
This is wrapped privately so it can be ommitted from the documentation build.
"""

Expand Down
Loading
Loading