nsqdriver 0.5.6__cp39-cp39-win_amd64.whl → 0.6.0__cp39-cp39-win_amd64.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.

Potentially problematic release.


This version of nsqdriver might be problematic. Click here for more details.

nsqdriver/NS_QSYNC.py CHANGED
@@ -3,8 +3,9 @@ import socket
3
3
  import struct
4
4
  import threading
5
5
  import time
6
- import enum
7
6
  import pickle
7
+ import enum
8
+ import copy
8
9
  from concurrent.futures import ThreadPoolExecutor
9
10
  from concurrent.futures import wait as wait_futures
10
11
  from multiprocessing import shared_memory
@@ -120,10 +121,14 @@ class Driver(BaseDriver):
120
121
  Quantity('TrigPeriod', value=200e-6, ch=1), # set/get, 触发周期
121
122
  Quantity('TrigWidth', value=800e-9, ch=1), # set/get, 触发周期
122
123
  Quantity('TrigDelay', value=0, ch=1), # set/get, 触发周期
124
+ Quantity('TrigDelayList', value=0, ch=1), # set/get, 触发周期
123
125
  Quantity('TrigFrom', value=0, ch=1), # Trig来源: 0:内部产生;1:外部输入
124
126
  Quantity('RefClock', value='out', ch=1), # 参考时钟选择: ‘out’:外参考时钟;‘in’:内参考时钟
125
127
  Quantity('DiscoveryMode', value=ScannMode.local, ch=1), # QC/QR等被同步设备的发现方式,见DiscoveryMode说明
126
128
  Quantity('UpdateFirmware', value='', ch=1), # qsync固件更新
129
+ Quantity('GeneratePrtTrig', value=None, unit='s'), # 生成subprt trig
130
+ Quantity('SubDelayCount', value=0, ch=1),
131
+ Quantity('TrigWidth', value=0, ch=1),
127
132
  ]
128
133
 
129
134
  SystemParameter = {
@@ -145,6 +150,15 @@ class Driver(BaseDriver):
145
150
  self.addr = addr
146
151
 
147
152
  self.param = {'Shot': 1024, 'TrigPeriod': 200e-6, 'MixMode': 2}
153
+ self.subprtparam = [
154
+ [[ 0x5F5F5F5F,
155
+ 0x41000001,
156
+ 0x00000000,
157
+ 4*(17*100+17*4+5), # 指令长度 ,uint32个数*4
158
+ 0,]],
159
+ [[0, 0, 800, 0] for _ in range(17)],
160
+ [[0 for _ in range(100)] for _ in range(17)],
161
+ ]
148
162
  print_debug(f'QSYNC: 实例化成功{addr}')
149
163
 
150
164
  @property
@@ -210,6 +224,7 @@ class Driver(BaseDriver):
210
224
  @return:
211
225
  """
212
226
  print_debug(f'QSYNC: set操作被调用{name}')
227
+ self.subprt(name, value, channel)
213
228
  if name in {'SystemSync', 'ReInit'}:
214
229
  self.sync_system()
215
230
  elif name == 'TRIG':
@@ -229,6 +244,15 @@ class Driver(BaseDriver):
229
244
  self._send_command(data, connect_timeout=2)
230
245
  self.gen_trig_num += 1
231
246
  elif name == 'ResetTrig':
247
+ self.subprtparam = [
248
+ [[ 0x5F5F5F5F,
249
+ 0x41000001,
250
+ 0x00000000,
251
+ 4*(17*100+17*4+5), # 指令长度 ,uint32个数*4
252
+ 0,]],
253
+ [[0, 0, 800, 0] for _ in range(17)],
254
+ [[0 for _ in range(100)] for _ in range(17)],
255
+ ]
232
256
  data = self.__fmt_qsync_common(self.icd_head_reset)
233
257
  self._send_command(data)
234
258
  elif name == 'RefClock':
@@ -239,12 +263,37 @@ class Driver(BaseDriver):
239
263
  if not isinstance(value, list):
240
264
  print(f'SetMask set value {value} is not a list')
241
265
  return
242
- data = self.__fmt_qsync_mask(value)
266
+ data = self.__fmt_qsync_mask(*value)
243
267
  self._send_command(data)
244
268
 
269
+ elif name == "GeneratePrtTrig":
270
+ data = self.__fmt_qsync_prt(self.subprtparam)
271
+ self._send_command(data)
245
272
  else:
246
273
  self.param[name] = value
247
274
 
275
+ def subprt(self, name, value, ch=1):
276
+ """
277
+ subprt参数过滤
278
+ Args:
279
+ name: _description_
280
+ value: _description_
281
+ ch: _description_
282
+ """
283
+ if name == "Shot":
284
+ self.subprtparam[1][ch-1][1] = round(value) & 0xFFFFFFFF
285
+ elif name == "TrigPeriod":
286
+ self.subprtparam[1][ch-1][0] = round(value * 1e9) & 0xFFFFFFFF
287
+ elif name == "TrigWidth":
288
+ self.subprtparam[1][ch-1][2] = round(value * 1e9) & 0xFFFFFFFF
289
+ # elif name == "TrigDelay":
290
+ # self.subprtparam[1][ch-1][3] = round(value * 1e9) & 0xFFFFFFFF
291
+ elif name == "SubDelayCount":
292
+ self.subprtparam[1][ch-1][3] = round(value) & 0xFFFFFFFF
293
+ elif name == "TrigDelayList":
294
+ self.subprtparam[2][ch-1] = [round(i * 1e9) & 0xFFFFFFFF for i in value]
295
+ self.subprtparam[2][ch-1].extend([0]*(100-len(self.subprtparam[2][ch-1]))) # 长度为100
296
+
248
297
  def get(self, name, channel=1, value=0):
249
298
  """!
250
299
  查询设备属性,获取数据
@@ -448,7 +497,7 @@ class Driver(BaseDriver):
448
497
  return struct.pack('=' + 'I' * len(cmd_pack), *cmd_pack)
449
498
 
450
499
  @lru_cache(maxsize=32)
451
- def __fmt_qsync_mask(self, mask: Tuple):
500
+ def __fmt_qsync_mask(self, *mask):
452
501
  cmd_pack = (
453
502
  0x5F5F5F5F,
454
503
  0x51000001,
@@ -475,6 +524,15 @@ class Driver(BaseDriver):
475
524
 
476
525
  return struct.pack('=' + 'I' * len(cmd_pack), *cmd_pack)
477
526
 
527
+ # @lru_cache(maxsize=8)
528
+ def __fmt_qsync_prt(self, para):
529
+ cmd_pack = []
530
+ for i in para:
531
+ for ii in i:
532
+ for iii in ii:
533
+ cmd_pack.append(iii)
534
+ return struct.pack('=' + 'I' * len(cmd_pack), *cmd_pack)
535
+
478
536
  @staticmethod
479
537
  def __fmt_update_firmware(file_data):
480
538
  cmd_pack = (
nsqdriver/__init__.py CHANGED
@@ -4,7 +4,7 @@ from .NS_CST import Driver as CSTDriver
4
4
  from .compiler.ns_wave import InsChannel
5
5
  from .compiler.py_wave_asm import nsw_config, AssemblyError
6
6
 
7
- version_pack = (0, 5, 6)
7
+ version_pack = (0, 6, 0)
8
8
 
9
9
  __version__ = '.'.join(str(_) for _ in version_pack)
10
10
  __all__ = ['MCIDriver', 'QSYNCDriver', 'CSTDriver', 'InsChannel']
@@ -0,0 +1,2 @@
1
+ from .kernel import *
2
+ from ._functions import *
@@ -0,0 +1,2 @@
1
+ from .kernel import *
2
+ from ._functions import *
Binary file
@@ -0,0 +1,94 @@
1
+ import numpy as np
2
+ from _typeshed import Incomplete
3
+
4
+ __all__ = ['AssemblyError', 'GenTagMixin', 'NSQCommand', 'QInsFrame', 'nsw_config', 'QInsEnvelope', 'QInsWait', 'QInsNop', 'QInsJumpImmediate', 'QInsPlayImm', 'QInsWaitTrig', 'QInsFrameRst', 'QInsWaitTrig', 'QInsFrameAdd', 'QInsCapture']
5
+
6
+ def nsw_config(name, value) -> None: ...
7
+
8
+ class QNumber:
9
+ value: int
10
+ def __init__(self) -> None: ...
11
+ def __int__(self) -> int: ...
12
+ def __float__(self) -> float: ...
13
+ def __bool__(self) -> bool: ...
14
+
15
+ class AssemblyError(RuntimeError): ...
16
+
17
+ class GenTagMixin:
18
+ @property
19
+ def generate_tag(self): ...
20
+
21
+ class NSQCommand(GenTagMixin):
22
+ tag: Incomplete
23
+ def __init__(self) -> None: ...
24
+ @property
25
+ def overhead(self): ...
26
+ @classmethod
27
+ def compile(cls, inst_list: list[Self]) -> tuple[np.ndarray, str]: ...
28
+
29
+ class QInsFrame(NSQCommand):
30
+ freq: Incomplete
31
+ phase: Incomplete
32
+ idx: Incomplete
33
+ def __init__(self, freq, phase, idx) -> None: ...
34
+ @property
35
+ def overhead(self): ...
36
+
37
+ class QInsEnvelope(NSQCommand):
38
+ envelope: Incomplete
39
+ envelop_slice: Incomplete
40
+ def __init__(self, envelope: np.ndarray) -> None: ...
41
+ def __len__(self) -> int: ...
42
+ def __bytes__(self) -> bytes: ...
43
+
44
+ class QInsFrameRst(NSQCommand):
45
+ @property
46
+ def overhead(self): ...
47
+
48
+ class QInsFrameAdd(NSQCommand):
49
+ frames: Incomplete
50
+ frequency: Incomplete
51
+ phase: Incomplete
52
+ def __init__(self, frames: list[QInsFrame], frequency: float, phase: float) -> None: ...
53
+ @property
54
+ def overhead(self): ...
55
+
56
+ class QInsWait(NSQCommand):
57
+ width: Incomplete
58
+ def __init__(self, width) -> None: ...
59
+ @property
60
+ def overhead(self): ...
61
+
62
+ class QInsWaitTrig(NSQCommand):
63
+ def __init__(self) -> None: ...
64
+ @property
65
+ def overhead(self): ...
66
+
67
+ class QInsNop(NSQCommand):
68
+ @property
69
+ def overhead(self): ...
70
+
71
+ class QInsJumpImmediate(NSQCommand):
72
+ idx: Incomplete
73
+ def __init__(self, idx: int) -> None: ...
74
+
75
+ class QInsCapture(NSQCommand):
76
+ fre: Incomplete
77
+ acq_width: Incomplete
78
+ delay_width: Incomplete
79
+ play_width: Incomplete
80
+ para: Incomplete
81
+ def __init__(self, fre: list[int], acq_width: float, delay_width: float, play_width: float, raw_data_store: bool, iq_data_store: bool, judge_data_store: bool, double_fre_mode: bool) -> None: ...
82
+ @property
83
+ def overhead(self): ...
84
+
85
+ class QInsPlayImm(NSQCommand):
86
+ frame: Incomplete
87
+ freq: Incomplete
88
+ amp: Incomplete
89
+ bias: Incomplete
90
+ envelope: Incomplete
91
+ phase: Incomplete
92
+ def __init__(self, frame: QInsFrame, envelope: QInsEnvelope, amp, bias, freq, phase) -> None: ...
93
+ @property
94
+ def overhead(self): ...
@@ -0,0 +1,25 @@
1
+ import numpy as np
2
+ from ._asm import NSQCommand, QInsEnvelope, QInsFrame
3
+ from typing import Iterable, TypeVar
4
+
5
+ __all__ = ['Frame', 'Envelope', 'Int', 'Var', 'wait_for_trigger', 'ins_envelope', 'ins_frame', 'evlp_gaussian', 'evlp_square', 'evlp_cospulse', 'inc_phase', 'inc_frequency', 'reset_frame', 'play_wave', 'wait']
6
+
7
+ Frame = TypeVar('Frame', bound=QInsFrame)
8
+ Envelope = TypeVar('Envelope', bound=QInsEnvelope)
9
+ Placeholder = TypeVar('Placeholder', bound=NSQCommand)
10
+ Var = TypeVar('Var')
11
+ Int = TypeVar('Int')
12
+ Uint = TypeVar('Uint')
13
+ Float = TypeVar('Float')
14
+
15
+ def ins_frame(freq: float, phase: float, *, idx: int = None) -> QInsFrame: ...
16
+ def ins_envelope(envelope: np.ndarray) -> QInsEnvelope: ...
17
+ def evlp_gaussian(width: float, srate: float = 8000000000.0) -> QInsEnvelope: ...
18
+ def evlp_cospulse(width: float, srate: float = 8000000000.0) -> QInsEnvelope: ...
19
+ def evlp_square(width: float, srate: float = 8000000000.0) -> QInsEnvelope: ...
20
+ def reset_frame(frame_list: Iterable[Frame] = ...) -> Placeholder: ...
21
+ def wait_for_trigger() -> Placeholder: ...
22
+ def inc_phase(frame_list: Iterable[Frame], phase: float) -> Placeholder: ...
23
+ def inc_frequency(frame_list: Iterable[Frame], freq: float) -> Placeholder: ...
24
+ def play_wave(envelope: QInsEnvelope, frame: QInsFrame, amp: int = 1, freq: int = 0, phase: int = 0) -> Placeholder: ...
25
+ def wait(width) -> Placeholder: ...
@@ -0,0 +1,44 @@
1
+ from ._functions import *
2
+ import ast
3
+ from _typeshed import Incomplete
4
+
5
+ __all__ = ['kernel', 'Kernel']
6
+
7
+ class KernelParseError(Exception): ...
8
+
9
+ class NSQCKernel(type):
10
+ def __init__(cls, name, bases, attrs) -> None: ...
11
+
12
+ class Kernel(ast.NodeVisitor, metaclass=NSQCKernel):
13
+ max_frame: int
14
+ name: Incomplete
15
+ func_args: Incomplete
16
+ func_kwargs: Incomplete
17
+ top_src: Incomplete
18
+ top_node: Incomplete
19
+ var_symbol: Incomplete
20
+ frame_symbol: Incomplete
21
+ frame_idx: int
22
+ envelope_symbol: Incomplete
23
+ register_symbol: Incomplete
24
+ register_idx: int
25
+ instruction_list: Incomplete
26
+ def __init__(self, func: Incomplete | None = None, args: Incomplete | None = None, kwargs: Incomplete | None = None) -> None: ...
27
+ def clear(self) -> None: ...
28
+ def parse(self): ...
29
+ def show(self) -> None: ...
30
+ def visit_arg(self, node: ast.arg): ...
31
+ def visit_Assign(self, node: ast.Assign): ...
32
+ def visit_AugAssign(self, node: ast.AugAssign): ...
33
+ def visit_AnnAssign(self, node: ast.AnnAssign): ...
34
+ def visit_Call(self, node: ast.Call) -> object: ...
35
+ def visit_BinOp(self, node: ast.BinOp): ...
36
+ def visit_Constant(self, node): ...
37
+ def visit_Expr(self, node: ast.Expr): ...
38
+ def visit_If(self, node: ast.If): ...
39
+ def visit_Return(self, node) -> None: ...
40
+ def visit_FunctionDef(self, node: ast.FunctionDef): ...
41
+ def visit_arguments(self, node: ast.arguments): ...
42
+ def visit_Module(self, node: ast.Module): ...
43
+
44
+ def kernel(func): ...
@@ -1,10 +1,8 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nsqdriver
3
- Version: 0.5.6
4
- Summary: Naishu Q series quantum measurement and control equipment driver interface
5
- Home-page: https://g2hoyqcmh4.feishu.cn/wiki/wikcnzvyMd82DLZUe2NsI6HxsFc
6
- Author: Naishu Technology
7
- Author-email: jilianyi@naishu.tech
3
+ Version: 0.6.0
4
+ Summary: Q series measurement and control equipment driver interface
5
+ Home-page: https://g2hoyqcmh4.feishu.cn/wiki/Jgt1wxlKniveYQkqCgbcJHsMnoe
8
6
  Classifier: Intended Audience :: Developers
9
7
  Classifier: Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator
10
8
  Classifier: Operating System :: MacOS :: MacOS X
@@ -14,6 +12,7 @@ Classifier: Programming Language :: Python :: 3.8
14
12
  Classifier: Programming Language :: Python :: 3.9
15
13
  Classifier: Programming Language :: Python :: 3.10
16
14
  Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
17
16
  Requires-Python: >=3.8
18
17
  Description-Content-Type: text/markdown
19
18
  Requires-Dist: numpy >=1.18
@@ -47,9 +46,7 @@ NSQDriver为一套耐数®量子测控系列设备的Python通用驱动接口。
47
46
  +-----------+ +-----------+ +-----------+
48
47
  ```
49
48
 
50
- NSQDriver接口可用于统一控制耐数®生产的Q100、MC、QSYNC等一系列量子测控仪器,可详细控制每台仪器每个OUT、IN通道的播放与采集行为,以及查看设备的运行状态等。在一个多台测控设备组成的多量子比特测控系统中,可以有效的在软件层面实现对系统中每台设备的详细控制。
51
-
52
- 耐数®量子测控系列设备详细信息参考: [耐数](http://naishu.tech)
49
+ NSQDriver接口可用于统一控制Q100/PQ系列测控仪器,可详细控制每台仪器每个OUT、IN通道的播放与采集行为,以及查看设备的运行状态等。在一个多台测控设备组成的多比特测控系统中,可以有效的在软件层面实现对系统中每台设备的详细控制。
53
50
 
54
51
  ***
55
52
  ### 快速开始
@@ -73,32 +70,39 @@ qsync.sync_system()
73
70
  driver.set('Shot', 1024)
74
71
  ```
75
72
 
76
- - NSWave接口
77
- - NSWave是一种对于耐数®Sequence序列发生技术的控制接口,Sequence序列发生模式将量子测控所需的各种门的编辑由主控计算机直接生成波形转化成了设备实时计算
73
+ - NSWave语言
74
+ - NSWave是一种对于Sequence序列发生技术的配套编程语言,属于python语法的子集,支持与python程序进行混编
75
+ - Sequence序列发生模式将测控所需的各种门的编辑由主控计算机直接生成波形转化成了设备实时计算
78
76
  - 提供了一套直观的时序编辑接口
79
- - 如下示例展示了使用nswave控制设备重复播放一段波形200次
80
77
  ```python
81
- from nsqdriver import InsChannel
78
+ from nsqdriver import nswave as nw
79
+ from nsqdriver import MCIDriver
82
80
  import numpy as np
83
81
 
84
- ch = InsChannel() # 生成参数化波形通道实例
85
-
86
- frame_65e9 = ch.ins_frame(6.5e9) # 生成一个frame
87
- frame_67e9 = ch.ins_frame(6.7e9) # 生成一个frame
88
-
89
- gaussian = ch.evlp_gaussian(4500e-9) # 生成一个高斯包络
90
- square = ch.evlp_square(2500e-9) # 生成一个方波包络
91
-
92
- wave1 = gaussian * frame_67e9 # 生成一段高斯包络的波形
93
- wave2 = square * frame_65e9 # 生成一段方波包络的波形
94
-
95
- ch.ins_reset_frame('phase', frame_65e9)
96
- ch.ins_reset_frame('phase', frame_67e9)
97
- ch.wait_for_trigger() # 等待触发到来
98
- # 循环播放200次 3μs延迟+ 7μs波形
99
- with ch.ins_loop(times=200) as _loop:
100
- _loop.play_zero(3000e-9)
101
- _loop.inc_phase(frame_65e9, np.pi / 2)
102
- _loop.play_wave(wave2)
103
- _loop.play_wave(wave1)
82
+ @nw.kernel
83
+ def program(envelope: np.ndarray):
84
+ srate: nw.Var = 8e9
85
+ time_width: nw.Var = 6e-6
86
+ freq: nw.Var = 4.1e9
87
+ time_line: np.ndarray = np.linspace(0, 6e-6, int(time_width * srate + 1))
88
+ wave: np.ndarray = np.cos(2 * np.pi * time_line * freq)
89
+ frame_0: nw.Frame = nw.ins_frame(0e9, 0*np.pi)
90
+ frame_1: nw.Frame = nw.ins_frame(4.3e9, 0*np.pi)
91
+ envelope_0: nw.Envelope = nw.ins_envelope(wave)
92
+ envelope_1: "nw.Envelope" = nw.evlp_gaussian(2e-6, srate)
93
+ envelope_2: nw.Envelope = nw.ins_envelope(envelope)
94
+
95
+ nw.wait_for_trigger()
96
+ nw.reset_frame([frame_0, frame_1])
97
+ nw.wait(3.2e-6)
98
+ nw.play_wave(envelope_1, frame_1)
99
+ nw.play_wave(envelope_0, frame_0)
100
+ nw.inc_phase(frame_1, np.pi)
101
+ nw.play_wave(envelope_2, frame_1)
102
+
103
+ return nw.Kernel()
104
+
105
+ driver: MCIDriver
106
+ envelope = np.ones((10240, ))
107
+ driver.set("Program", program(envelope), 'S5-O1')
104
108
  ```
@@ -0,0 +1,26 @@
1
+ nsqdriver/NS_CST.py,sha256=zA5YcM65v66EqwBnplDvA6HM0I-y8damDOerE2CKyZE,8137
2
+ nsqdriver/NS_MCI.py,sha256=CAOzRpRfpVMmGrY5_oko9yGXEe1PoUAVChIFXJTDcJo,21355
3
+ nsqdriver/NS_QSYNC.py,sha256=bdvl5tDKrqqWuHnCR7h88SyeZ4UA4ZNjH_6e4ZEGguE,27881
4
+ nsqdriver/__init__.py,sha256=ZBhSaFpzPavxzo-Gg2KoOIxH2pKF_KWal4NnBcR8DT8,381
5
+ nsqdriver/common.py,sha256=5BRActb9TgNdVwWtfuZ_gki47H1WbABzYr5XbxLKlh4,519
6
+ nsqdriver/compiler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ nsqdriver/compiler/assembler.cp39-win_amd64.pyd,sha256=LcAbAqfYjEb3CsVpC2dQemdbUi2tbmTF_pxU9GO5bEg,360960
8
+ nsqdriver/compiler/ns_wave.cp39-win_amd64.pyd,sha256=7r0pEzP0qwnQOqjIfsPieBpOgcqOrrRYeESeoNCwlcQ,237568
9
+ nsqdriver/compiler/ns_wave.pyi,sha256=axQaxrMaKRPx8k9sDVlRj3SjR03AmXUDzkVW4D_2RJw,3975
10
+ nsqdriver/compiler/py_wave_asm.cp39-win_amd64.pyd,sha256=2NbdGBfe0pQ9K9qlJeWzr9KsyTp3omKQ9TI-aATBIfo,332288
11
+ nsqdriver/compiler/py_wave_asm.pyi,sha256=PqEZuNt83CCu_FJUczUjStowOz2TBgvfIytGanFPHuQ,685
12
+ nsqdriver/nswave/__init__.py,sha256=bRrHMAhfzPd9LWGUZ5JkNPq4ulT48bpZ8odtP51sr1w,50
13
+ nsqdriver/nswave/__init__.pyi,sha256=bRrHMAhfzPd9LWGUZ5JkNPq4ulT48bpZ8odtP51sr1w,50
14
+ nsqdriver/nswave/_asm.cp39-win_amd64.pyd,sha256=LraRVkysZ3UllKBIUWI89MftF-CauWnjI9ihSPejHLc,181248
15
+ nsqdriver/nswave/_asm.pyi,sha256=UaKmCbD218hwi82l0YFzwfKSI4aiM97Kaw1qbL7XYng,2774
16
+ nsqdriver/nswave/_functions.cp39-win_amd64.pyd,sha256=U7OAkjBKRT5TRBv2EQZWDudz6HjenfpIFuYZWtwFj7w,86016
17
+ nsqdriver/nswave/_functions.pyi,sha256=l97-iaYqDTsXnOaPQK45scP1eimWAFu77QD4bS5XgPk,1397
18
+ nsqdriver/nswave/kernel.cp39-win_amd64.pyd,sha256=cGHe2SQGK2In6aBZ0vE6Oh6KZbZ24pTbh-rlDe1fQDI,163840
19
+ nsqdriver/nswave/kernel.pyi,sha256=_eEB9tS8YXkScmY-2pU-oz6AnecDl52Ifs6kq2zVJTU,1554
20
+ nsqdriver/wrapper/AWG_ADC.py,sha256=wLtkbJe39hDcnbWZ-8jyGZ78RQtn7iAZ7P7H0n-2IWU,19733
21
+ nsqdriver/wrapper/ND_NSMCI.py,sha256=e0j7BUdfrhfYb1GqBPlO4vSoZPXTKyictXy1nPvoMFE,6533
22
+ nsqdriver/wrapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ nsqdriver-0.6.0.dist-info/METADATA,sha256=bTrJeZMb34y_QwwDfpVLI_t5NPjSzFElKUJfKPY5lWo,4379
24
+ nsqdriver-0.6.0.dist-info/WHEEL,sha256=Z6c-bE0pUM47a70GvqO_SvH_XXU0lm62gEAKtoNJ08A,100
25
+ nsqdriver-0.6.0.dist-info/top_level.txt,sha256=o7EbQoFO6BoaG3KGbS9Lg_aRheZSY5KYzoYuI9vx-AI,10
26
+ nsqdriver-0.6.0.dist-info/RECORD,,
@@ -1,18 +0,0 @@
1
- nsqdriver/NS_CST.py,sha256=zA5YcM65v66EqwBnplDvA6HM0I-y8damDOerE2CKyZE,8137
2
- nsqdriver/NS_MCI.py,sha256=CAOzRpRfpVMmGrY5_oko9yGXEe1PoUAVChIFXJTDcJo,21355
3
- nsqdriver/NS_QSYNC.py,sha256=KKvOLUeztMTEcCYCX_wV_NDJzp8CQVDk_LJsZ79_NH4,25469
4
- nsqdriver/__init__.py,sha256=ZDWwh0m325wYmwmCxQGJ5JYz3KrgD7BQ2X1BM7V66Vk,381
5
- nsqdriver/common.py,sha256=5BRActb9TgNdVwWtfuZ_gki47H1WbABzYr5XbxLKlh4,519
6
- nsqdriver/compiler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- nsqdriver/compiler/assembler.cp39-win_amd64.pyd,sha256=Qq9DcUs1Mq1RoLNOc-09JTbnhetL1YtLtExFm3D1iVU,349696
8
- nsqdriver/compiler/ns_wave.cp39-win_amd64.pyd,sha256=IKfB03IUyDAZK8AepCuWATbHuOp8SvcKaUZKIQBk1IU,237568
9
- nsqdriver/compiler/ns_wave.pyi,sha256=axQaxrMaKRPx8k9sDVlRj3SjR03AmXUDzkVW4D_2RJw,3975
10
- nsqdriver/compiler/py_wave_asm.cp39-win_amd64.pyd,sha256=B1QAgaWvgWpn1Y2KZDSc_R0w0MfR2ItZSn4MO7_t6Aw,332800
11
- nsqdriver/compiler/py_wave_asm.pyi,sha256=PqEZuNt83CCu_FJUczUjStowOz2TBgvfIytGanFPHuQ,685
12
- nsqdriver/wrapper/AWG_ADC.py,sha256=wLtkbJe39hDcnbWZ-8jyGZ78RQtn7iAZ7P7H0n-2IWU,19733
13
- nsqdriver/wrapper/ND_NSMCI.py,sha256=e0j7BUdfrhfYb1GqBPlO4vSoZPXTKyictXy1nPvoMFE,6533
14
- nsqdriver/wrapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- nsqdriver-0.5.6.dist-info/METADATA,sha256=rsMrjqPohK6YubeU6XO-pa7rQeMJ_CnNk0Yyz6inOhI,4463
16
- nsqdriver-0.5.6.dist-info/WHEEL,sha256=Z6c-bE0pUM47a70GvqO_SvH_XXU0lm62gEAKtoNJ08A,100
17
- nsqdriver-0.5.6.dist-info/top_level.txt,sha256=o7EbQoFO6BoaG3KGbS9Lg_aRheZSY5KYzoYuI9vx-AI,10
18
- nsqdriver-0.5.6.dist-info/RECORD,,