Another try for lag.
This commit is contained in:
@@ -18,6 +18,7 @@ class driver(dectalkDriver.driver):
|
|||||||
immediate_endpoint = 0x04
|
immediate_endpoint = 0x04
|
||||||
packet_size = 64
|
packet_size = 64
|
||||||
write_timeout = 1000
|
write_timeout = 1000
|
||||||
|
buffer_timeout_command = b"[:timeout 1]"
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
@@ -90,6 +91,11 @@ class driver(dectalkDriver.driver):
|
|||||||
raise RuntimeError(f"DECtalk USB open failed: {error}") from error
|
raise RuntimeError(f"DECtalk USB open failed: {error}") from error
|
||||||
|
|
||||||
self.usb_device = usb_device
|
self.usb_device = usb_device
|
||||||
|
self._write_endpoint(
|
||||||
|
self.speech_endpoint,
|
||||||
|
self.buffer_timeout_command,
|
||||||
|
"buffer timeout",
|
||||||
|
)
|
||||||
self._is_initialized = True
|
self._is_initialized = True
|
||||||
self._stop_worker = False
|
self._stop_worker = False
|
||||||
self.worker_thread = threading.Thread(
|
self.worker_thread = threading.Thread(
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ def build_environment():
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def initialized_driver(monkeypatch):
|
def initialized_driver(monkeypatch, clear_startup_writes=True):
|
||||||
device = FakeUsbDevice()
|
device = FakeUsbDevice()
|
||||||
usb_core = FakeUsbCore(device)
|
usb_core = FakeUsbCore(device)
|
||||||
usb_util = FakeUsbUtil()
|
usb_util = FakeUsbUtil()
|
||||||
@@ -118,6 +118,8 @@ def initialized_driver(monkeypatch):
|
|||||||
lambda: (usb_core, usb_util),
|
lambda: (usb_core, usb_util),
|
||||||
)
|
)
|
||||||
speech_driver.initialize(build_environment())
|
speech_driver.initialize(build_environment())
|
||||||
|
if clear_startup_writes:
|
||||||
|
device.writes.clear()
|
||||||
return speech_driver, device, usb_core, usb_util
|
return speech_driver, device, usb_core, usb_util
|
||||||
|
|
||||||
|
|
||||||
@@ -142,6 +144,17 @@ def test_dectalk_usb_driver_finds_and_claims_native_device(monkeypatch):
|
|||||||
assert usb_util.disposed == [device]
|
assert usb_util.disposed == [device]
|
||||||
|
|
||||||
|
|
||||||
|
def test_dectalk_usb_driver_sets_low_buffer_timeout_on_initialize(monkeypatch):
|
||||||
|
speech_driver, device, _, _ = initialized_driver(
|
||||||
|
monkeypatch,
|
||||||
|
clear_startup_writes=False,
|
||||||
|
)
|
||||||
|
try:
|
||||||
|
assert device.writes[0] == (0x02, b"[:timeout 1]", 1000)
|
||||||
|
finally:
|
||||||
|
speech_driver.shutdown()
|
||||||
|
|
||||||
|
|
||||||
def test_dectalk_usb_driver_writes_commands_and_speech(monkeypatch):
|
def test_dectalk_usb_driver_writes_commands_and_speech(monkeypatch):
|
||||||
speech_driver, device, _, _ = initialized_driver(monkeypatch)
|
speech_driver, device, _, _ = initialized_driver(monkeypatch)
|
||||||
try:
|
try:
|
||||||
@@ -212,6 +225,7 @@ def test_dectalk_usb_cancel_bypasses_blocked_normal_write(monkeypatch):
|
|||||||
lambda: (usb_core, usb_util),
|
lambda: (usb_core, usb_util),
|
||||||
)
|
)
|
||||||
speech_driver.initialize(build_environment())
|
speech_driver.initialize(build_environment())
|
||||||
|
device.writes.clear()
|
||||||
normal_thread = threading.Thread(
|
normal_thread = threading.Thread(
|
||||||
target=speech_driver._write_bytes,
|
target=speech_driver._write_bytes,
|
||||||
args=(b"normal speech", "speech"),
|
args=(b"normal speech", "speech"),
|
||||||
@@ -240,6 +254,8 @@ def test_dectalk_usb_cancel_stops_current_speech_upload(monkeypatch):
|
|||||||
lambda: (usb_core, usb_util),
|
lambda: (usb_core, usb_util),
|
||||||
)
|
)
|
||||||
speech_driver.initialize(build_environment())
|
speech_driver.initialize(build_environment())
|
||||||
|
device.writes.clear()
|
||||||
|
device.first_normal_write_started.clear()
|
||||||
normal_thread = threading.Thread(
|
normal_thread = threading.Thread(
|
||||||
target=speech_driver._write_bytes,
|
target=speech_driver._write_bytes,
|
||||||
args=(b"x" * 192, "speech"),
|
args=(b"x" * 192, "speech"),
|
||||||
|
|||||||
Reference in New Issue
Block a user