qlsdk2 0.4.0a1__py3-none-any.whl → 0.4.0a2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,16 +1,18 @@
1
1
  import socket
2
+ from typing import Optional
2
3
  from loguru import logger
3
4
  from qlsdk.rsc.discover import UdpBroadcaster
4
5
  from threading import Thread
5
6
  from qlsdk.core import *
6
7
  from qlsdk.rsc.entity import QLDevice
7
8
  from qlsdk.rsc.proxy import DeviceProxy
9
+ import time
8
10
 
9
11
 
10
12
  class DeviceContainer(object):
11
- def __init__(self, proxy_enabled=False):
13
+ def __init__(self, proxy_enabled=False, tcp_port = 19216):
12
14
  self._devices = {}
13
- self._tcp_port = 19216
15
+ self._tcp_port = tcp_port
14
16
  self._proxy_enabled = proxy_enabled
15
17
 
16
18
  # 设备搜索广播器
@@ -21,6 +23,25 @@ class DeviceContainer(object):
21
23
  self._listening_thread = Thread(target=self._listening)
22
24
  self._listening_thread.daemon = True
23
25
  self._listening_thread.start()
26
+
27
+ @property
28
+ def devices(self)-> QLDevice:
29
+ return self._devices
30
+
31
+ '''
32
+ 等待设备连接
33
+ '''
34
+ def connect(self, device_id: str, timeout:int=30) -> Optional[QLDevice]:
35
+ logger.info(f"Searching for device: {device_id}")
36
+ self.add_search(device_id)
37
+ for _ in range(timeout):
38
+ device = self.get_device(device_id)
39
+ if device:
40
+ logger.success(f"Device {device_id} connected")
41
+ return device
42
+ time.sleep(1)
43
+ logger.error(f"Device {device_id} not found")
44
+ return None
24
45
 
25
46
  def _listening(self):
26
47
  tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
@@ -84,7 +105,7 @@ class DeviceContainer(object):
84
105
  logger.debug(f"add_device {device.device_name} then has broadcaster {self._broadcaster}")
85
106
 
86
107
  def get_device(self, device_id=None)->QLDevice:
87
- logger.debug(f"已连接设备数量:{len(self._devices)}")
108
+ logger.trace(f"已连接设备数量:{len(self._devices)}")
88
109
  if len(self._devices) == 0:
89
110
  return None
90
111
 
qlsdk/rsc/discover.py CHANGED
@@ -6,6 +6,7 @@ from loguru import logger
6
6
  from qlsdk.core.message import UDPMessage
7
7
 
8
8
  class UdpBroadcaster:
9
+ # 广播端口需要和ar4sdk做区分, 使用54366时不能和x8同时使用
9
10
  def __init__(self, port=54366):
10
11
  self.broadcast_port = port
11
12
  self.devices_to_broadcast = [] # 待广播的设备序列号列表
qlsdk/rsc/entity.py CHANGED
@@ -128,7 +128,6 @@ class QLDevice(BaseDevice):
128
128
  @property
129
129
  def signal_consumers(self):
130
130
  return self.__signal_consumer
131
- return self.__signal_consumer
132
131
 
133
132
  @property
134
133
  def impedance_consumers(self):
qlsdk/rsc/paradigm.py CHANGED
@@ -186,16 +186,18 @@ class PulseStimulation(StimulationChannel):
186
186
  channel_id: int, 通道编号,从0开始
187
187
  current: float, 电流值,单位为mA
188
188
  duration: float, 刺激时间,单位为秒
189
+ frequency: float, 频率,单位为Hz
190
+ pulse_width: int, 脉冲宽度,单位为ms
191
+ pulse_width_ratio: float, 脉冲宽度比,范围(0, 1)
189
192
  ramp_up: float, 上升时间,单位为秒
190
193
  ramp_down: float, 下降时间,单位为秒
191
- frequency: float, 频率,单位为Hz
192
- phase_position: int, 相位位置,单位为度
194
+ delay_time: float, 延迟启动时间,单位为秒(暂未启用)
193
195
  '''
194
196
  def __init__(self, channel_id: int, current: float, duration: float, frequency: float, pulse_width: int,
195
197
  pulse_width_ratio: float = 1, ramp_up: float = 0, ramp_down: float = 0, delay_time = 0):
196
198
  super().__init__(channel_id, WaveForm.PULSE.value, current, duration, ramp_up, ramp_down)
197
199
  self.frequency = frequency
198
- self.duration_delay = delay_time
200
+ self.delay_time = delay_time
199
201
  self.pulse_width = pulse_width
200
202
  self.pulse_width_ratio = pulse_width_ratio
201
203
  self.pulse_interval = 0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: qlsdk2
3
- Version: 0.4.0a1
3
+ Version: 0.4.0a2
4
4
  Summary: SDK for quanlan device
5
5
  Home-page: https://github.com/hehuajun/qlsdk
6
6
  Author: hehuajun
@@ -19,11 +19,11 @@ qlsdk/persist/__init__.py,sha256=OR8mnPTsktxw67G-z0VsPWJXInkKircMTHQdibmmz3M,63
19
19
  qlsdk/persist/edf.py,sha256=usgFjZJVcfAUwSy6cJtRdgjdqMgOS4viLCDGcwAGMZE,7106
20
20
  qlsdk/persist/rsc_edf.py,sha256=DM871w2-2vXNSEIzNnMLzW_ftCZSM8NhPSmu56h5jz4,8692
21
21
  qlsdk/rsc/__init__.py,sha256=bR678DilIIK7tFP65tscPUI7Bp4VN0ndVQWt6bnQKGg,197
22
- qlsdk/rsc/device_manager.py,sha256=ZUuhwamKky_Z9jI9_ww5S8ZcGZpSTkjWwP1kRZEOK2U,3597
23
- qlsdk/rsc/discover.py,sha256=cFDOADWD6Y0oE4x37f8j14a18Udwi6F0uSTbiC_1N1E,3039
22
+ qlsdk/rsc/device_manager.py,sha256=KeCJX97OCjTNa5J2S-1swxaRXf1DcznH9F5e4pVvNuo,4289
23
+ qlsdk/rsc/discover.py,sha256=ONXN6YWY-OMU0sBoLqqKUyb-8drtAp1g_MvnpzaFvHQ,3124
24
24
  qlsdk/rsc/eegion.py,sha256=lxrktO-3Z_MYdFIwc4NxvgLM5AL5kU3UItjH6tsKmHY,11670
25
- qlsdk/rsc/entity.py,sha256=qmLvJ6gCR9r7y60m91L20FJYOaAHwH6k6aXecqHurjU,21062
26
- qlsdk/rsc/paradigm.py,sha256=Iy_eU_yZLHiUZlLNPvqke5GDVJFnMEQ_PQ6cRxTm2BM,12606
25
+ qlsdk/rsc/entity.py,sha256=WN05GviA_FjLkQUM5W9t2UVnDcHNR06dqMUzKxyXFuU,21023
26
+ qlsdk/rsc/paradigm.py,sha256=zK_YFI4320lRa7GBXJfIQklhzJQSP823TeaXcMJngj4,12746
27
27
  qlsdk/rsc/proxy.py,sha256=9CPdGNGWremwBUh4GvlXAykYB-x_BEPPLqsNvwuwIDE,2736
28
28
  qlsdk/rsc/command/__init__.py,sha256=D5pBE2leqFG-IPU2pDAGuLsqHmc0wRPrBOXR0-K8d6k,8117
29
29
  qlsdk/rsc/command/message.py,sha256=bcuUDJj0CMekcZMNhKrzIpkHtDC-QBCs3dJG6Bx_PHc,8723
@@ -34,7 +34,7 @@ qlsdk/sdk/libs/libAr4SDK.dll,sha256=kZp9_DRwPdAJ5OgTFQSqS8tEETxUs7YmmETuBP2g60U,
34
34
  qlsdk/sdk/libs/libwinpthread-1.dll,sha256=W77ySaDQDi0yxpnQu-ifcU6-uHKzmQpcvsyx2J9j5eg,52224
35
35
  qlsdk/x8/__init__.py,sha256=XlQn3Af_HA7bGrxhv3RZKWMob_SnmissXiso7OH1UgI,4750
36
36
  qlsdk/x8m/__init__.py,sha256=cLeUqEEj65qXw4Qa4REyxoLh6T24anSqPaKe9_lR340,634
37
- qlsdk2-0.4.0a1.dist-info/METADATA,sha256=-yHCdrfe8EJRciRLY0Pl2bjjrFYtPkHuOyiYLPb6ey8,7066
38
- qlsdk2-0.4.0a1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
39
- qlsdk2-0.4.0a1.dist-info/top_level.txt,sha256=2CHzn0SY-NIBVyBl07Suh-Eo8oBAQfyNPtqQ_aDatBg,6
40
- qlsdk2-0.4.0a1.dist-info/RECORD,,
37
+ qlsdk2-0.4.0a2.dist-info/METADATA,sha256=B3h3rXNFoF04Meat9Cq1aokL0QghKnyWF7-0xR5ykyY,7066
38
+ qlsdk2-0.4.0a2.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
39
+ qlsdk2-0.4.0a2.dist-info/top_level.txt,sha256=2CHzn0SY-NIBVyBl07Suh-Eo8oBAQfyNPtqQ_aDatBg,6
40
+ qlsdk2-0.4.0a2.dist-info/RECORD,,