1
0
mirror of https://github.com/gryf/linak-ctrl.git synced 2026-04-25 16:01:31 +02:00

3 Commits

Author SHA1 Message Date
gryf e9ea91f2c3 Detach kernel driver before doing anything with device.
Initialization of the device must be done after device is detached from
kernel, otherwise exception will be thrown about device is busy message.
2021-07-07 17:34:13 +02:00
gryf aa5aecb205 DRY. Simplifying get_status method. 2021-07-07 17:33:00 +02:00
gryf 2013dffcf9 Added installation bits. 2021-07-07 17:30:58 +02:00
4 changed files with 55 additions and 18 deletions
+15 -18
View File
@@ -112,6 +112,10 @@ class LinakDevice:
self._dev = usb.core.find(idVendor=LinakDevice.VEND,
idProduct=LinakDevice.PROD)
# detach kernel driver, if attached
if self._dev.is_kernel_driver_active(0):
self._dev.detach_kernel_driver(0)
# init device
buf = [0 for _ in range(BUF_LEN)]
buf[0] = MODE_OF_OPERATION # 0x03 Feature report ID = 3
@@ -123,25 +127,18 @@ class LinakDevice:
# hold a little bit, to make it effect.
time.sleep(0.5)
# detach kernel driver, if attached
if self._dev.is_kernel_driver_active(0):
self._dev.detach_kernel_driver(0)
def get_position(self, args):
if args.loop:
try:
while True:
report = self._get_report()
LOG.warning('Position: %s, height: %.2fcm, moving: %s',
report.position, report.position_in_cm,
report.moving)
time.sleep(0.2)
except KeyboardInterrupt:
return
else:
report = self._get_report()
LOG.warning('Position: %s, height: %.2fcm, moving: %s',
report.position, report.position_in_cm, report.moving)
try:
while True:
report = self._get_report()
LOG.warning('Position: %s, height: %.2fcm, moving: %s',
report.position, report.position_in_cm,
report.moving)
if not args.loop:
break
time.sleep(0.2)
except KeyboardInterrupt:
return
def move(self, args):
retry_count = 3
+2
View File
@@ -0,0 +1,2 @@
pbr
pyusb>=1.1.1
+34
View File
@@ -0,0 +1,34 @@
[metadata]
name = linak-ctrl
summary = Control Linak powered desks using USB2LIN06 cable.
description-file = README.rst
author = Roman Dobosz
author-email = gryf73@gmail.com
home-page = https://gihtub.com/gryf/linak-ctrl
license = BSD
classifier =
Development Status :: 5 - Production/Stable
Environment :: Console
Intended Audience :: End Users/Desktop
License :: OSI Approved :: BSD License
Operating System :: POSIX :: Linux
Programming Language :: Python
Programming Language :: Python :: 3
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
Topic :: System :: Networking
[install]
record = install.log
[options.entry_points]
console_scripts =
linak-ctrl= linak_ctrl:main
[options]
install_requires =
pyusb
[bdist_wheel]
universal = 1
+4
View File
@@ -0,0 +1,4 @@
import setuptools
setuptools.setup(setup_requires=['pbr>=2.0.0'], pbr=True)