Skip to content
Open
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
26 changes: 5 additions & 21 deletions drivers/ftdi/dmx_drivers/ftdi/ft232r.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
from os import path
from platform import system
from typing import List
import time

from pylibftdi import Device, Driver, LibraryMissingError

Expand All @@ -42,36 +43,19 @@

if system() == "Linux":

from ctypes import cdll, c_long, byref, Structure

Driver._lib_search["libftdi"] = tuple([
path.join(DRIVER_PATH, "libftdi.so"),
path.join(DRIVER_PATH, "libftdi.so.1"),
path.join(DRIVER_PATH, "libftdi1.so")
] + list(Driver._lib_search["libftdi"]))

_LIBC = cdll.LoadLibrary("libc.so.6")

class timespec(Structure):
"""A timespec."""

_fields_ = [("tv_sec", c_long), ("tv_nsec", c_long)]

def wait_ms(milliseconds):
"""Wait for a specified number of milliseconds."""
dummy = timespec()
sleeper = timespec()
sleeper.tv_sec = int(milliseconds / 1000)
sleeper.tv_nsec = (milliseconds % 1000) * 1000000
_LIBC.nanosleep(byref(sleeper), byref(dummy))
time.sleep(milliseconds / 1000)

def wait_us(nanoseconds):
"""Wait for a specified number of nanoseconds."""
dummy = timespec()
sleeper = timespec()
sleeper.tv_sec = int(nanoseconds / 1000000)
sleeper.tv_nsec = (nanoseconds % 1000) * 1000
_LIBC.nanosleep(byref(sleeper), byref(dummy))
def wait_us(microseconds):
"""Wait for a specified number of microseconds."""
time.sleep(microseconds / 1000000)

elif system() == "Windows":

Expand Down