nsqdriver 0.0.241__cp310-cp310-win_amd64.whl → 0.0.300__cp310-cp310-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_DDS_v3.py CHANGED
@@ -4,7 +4,6 @@ from math import ceil
4
4
  from collections import namedtuple
5
5
  from waveforms import Waveform, wave_eval, WaveVStack
6
6
  from waveforms.waveform import _zero
7
- from waveforms.math.signal import getFTMatrix, shift
8
7
  import nsqdriver.nswave as nw
9
8
 
10
9
  import numpy as np
@@ -39,77 +38,6 @@ except ImportError as e:
39
38
  DEBUG_PRINT = False
40
39
 
41
40
 
42
- def get_coef(coef_info, sampleRate):
43
- start, stop = coef_info['start'], coef_info['stop']
44
- numberOfPoints = int(
45
- (stop - start) * sampleRate)
46
- if numberOfPoints % 64 != 0:
47
- numberOfPoints = numberOfPoints + 64 - numberOfPoints % 64
48
- t = np.arange(numberOfPoints) / sampleRate + start
49
-
50
- fList = []
51
- wList = []
52
- phases = []
53
-
54
- for kw in coef_info['wList']:
55
- Delta, t0, weight, w, phase = kw['Delta'], kw['t0'], kw['weight'], kw['w'], kw['phase']
56
- fList.append(Delta)
57
-
58
- if w is not None:
59
- w = np.zeros(numberOfPoints, dtype=complex)
60
- w[:len(w)] = w
61
- w = shift(w, t0 - start)
62
- phases.append(np.mod(phase + 2 * np.pi * Delta * start, 2 * np.pi))
63
- else:
64
- weight = weight
65
- if isinstance(weight, np.ndarray):
66
- pass
67
- else:
68
- if isinstance(weight, str):
69
- fun = wave_eval(weight) >> t0
70
- elif isinstance(weight, Waveform):
71
- fun = weight >> t0
72
- else:
73
- raise TypeError(f'Unsupported type {weight}')
74
- weight = fun(t)
75
- phase += 2 * np.pi * Delta * start
76
- w = getFTMatrix([Delta],
77
- numberOfPoints,
78
- phaseList=[phase],
79
- weight=weight,
80
- sampleRate=sampleRate)[:, 0]
81
- phases.append(np.mod(phase, 2 * np.pi))
82
- wList.append(w)
83
- return np.asarray(wList), fList, numberOfPoints, phases, round((stop - t0) * sampleRate), t
84
-
85
-
86
- def get_demod_envelope(coef_info, demod_map, sampleRate):
87
- start, stop = coef_info['start'], coef_info['stop']
88
- t0 = coef_info['t0']
89
- numberOfPoints = int(
90
- (stop - start) * sampleRate)
91
- if numberOfPoints % 64 != 0:
92
- numberOfPoints = numberOfPoints + 64 - numberOfPoints % 64
93
- t = np.arange(numberOfPoints) / sampleRate + start
94
- demod_map_list = demod_map
95
- weight_sum = np.empty(numberOfPoints)
96
- for weight in demod_map_list:
97
- if isinstance(weight, np.ndarray):
98
- pass
99
- else:
100
- if isinstance(weight, str):
101
- fun = wave_eval(weight)
102
- elif isinstance(weight, Waveform):
103
- fun = weight
104
- else:
105
- raise TypeError(f'Unsupported type {weight}')
106
- weight = fun(t)
107
- weight_sum += weight
108
- return weight_sum
109
-
110
-
111
-
112
-
113
41
  @nw.kernel
114
42
  def program_cap(param: nw.Var):
115
43
  #
@@ -129,17 +57,16 @@ def program_da(p: nw.Var):
129
57
  nw.init_frame(0, 0)
130
58
  nw.wait_for_trigger()
131
59
  # nw.reset_frame()
132
- e = nw.ins_envelope(p[0][1])
133
60
  for i in p:
134
61
  nw.wait(i[0])
135
- # e = nw.ins_envelope(i[1])
62
+ e = nw.ins_envelope(i[1])
136
63
  nw.play_wave(e, 1, 0, 0)
137
64
 
138
65
 
139
- ProbeSegment = namedtuple('ProbeSegment', ['start', 'stop', 'freq', 'demod', 'idx'])
66
+ ProbeSegment = namedtuple('ProbeSegment', ['start', 'stop', 'freq', 'idx'])
140
67
 
141
68
  CaptureCmd = namedtuple('CaptureCmd', [
142
- 'start', 'ad_duration', 'delay', 'da_duration', 'freqs', 'delays', 'demod_wave_list', 'idx_list'
69
+ 'start', 'ad_duration', 'delay', 'da_duration', 'freqs', 'delays', 'idx_list'
143
70
  ])
144
71
 
145
72
 
@@ -222,7 +149,6 @@ class Driver(BaseDriver):
222
149
  self.IQ_cache = {}
223
150
  self.coef_cache = {}
224
151
  self.res_maps = {}
225
- self.demod_maps = {}
226
152
  self.probe_da_wave = {}
227
153
  # self.probe_delay = 32e-9
228
154
  self.probe_delay = 0
@@ -230,7 +156,6 @@ class Driver(BaseDriver):
230
156
  self.capture_cali_param: "dict[int, np.ndarray]" = {}
231
157
  self.capture_points: "dict[int, np.ndarray]" = {}
232
158
  self.demodulate_mode = DemodulateMode.MORE_QUBIT
233
- self.demode_calculus: "dict[int, np.ndarray]" = {}
234
159
 
235
160
  def open(self, **kw):
236
161
  """
@@ -277,7 +202,7 @@ class Driver(BaseDriver):
277
202
  _start, _stop = int(round(_start * 1e9)), int(round(_stop * 1e9))
278
203
 
279
204
  # 将区间加入列表
280
- seg = ProbeSegment(t0 + _start, t0 + _stop, wave['Delta'], weight_expr, idx)
205
+ seg = ProbeSegment(t0 + _start, t0 + _stop, wave['Delta'], idx)
281
206
  time_segments.append(seg)
282
207
 
283
208
  # 按起始时间排序
@@ -286,9 +211,9 @@ class Driver(BaseDriver):
286
211
  # 结果存储
287
212
  non_overlapping_segments: list[CaptureCmd] = []
288
213
  current_start, current_end = time_segments[0].start, time_segments[0].stop
289
- current_cmd = CaptureCmd(0, 0, 0, 0, [time_segments[0].freq], [0.],[time_segments[0].demod],
290
- [time_segments[0].idx])
214
+ current_cmd = CaptureCmd(0, 0, 0, 0, [time_segments[0].freq], [0.], [time_segments[0].idx])
291
215
  pointer = 0
216
+
292
217
  for seg in time_segments[1:]:
293
218
  if seg.start > current_end:
294
219
  # 如果不重叠,保存当前段并移动到下一段
@@ -299,10 +224,9 @@ class Driver(BaseDriver):
299
224
  current_cmd = current_cmd._replace(ad_duration=current_end - current_start)
300
225
  current_cmd = current_cmd._replace(delay=self.probe_delay)
301
226
  current_cmd = current_cmd._replace(da_duration=current_end - current_start)
302
- current_cmd = current_cmd._replace(demod_wave_list=[time_segments[0].demod])
303
227
  non_overlapping_segments.append(current_cmd)
304
228
 
305
- current_cmd = CaptureCmd(0, 0, 0, 0, [seg.freq], [0.], [seg.demod], [seg.idx])
229
+ current_cmd = CaptureCmd(0, 0, 0, 0, [seg.freq], [0.], [seg.idx])
306
230
  pointer = current_end
307
231
  current_start, current_end = seg.start, seg.stop
308
232
  else:
@@ -310,7 +234,6 @@ class Driver(BaseDriver):
310
234
  current_end = max(current_end, seg.stop)
311
235
  current_cmd.idx_list.append(seg.idx)
312
236
  current_cmd.freqs.append(seg.freq)
313
- current_cmd.demod_wave_list.append(seg.demod)
314
237
  # 由delay换算解缠绕相位
315
238
  current_cmd.delays.append(seg.start - current_start)
316
239
  else:
@@ -324,14 +247,11 @@ class Driver(BaseDriver):
324
247
 
325
248
  def generate_in_program(self, coef_info, ch):
326
249
  freq_map = []
327
- demod_wave_map = []
328
250
  seq_param = []
329
251
 
330
252
  self.capture_cmds[ch] = seq = self.in_sequence_in_time(coef_info)
331
253
 
332
254
  for segment in seq:
333
- demod_wave_map.extend(segment.demod_wave_list)
334
- demod_wave_map = list(set(demod_wave_map))
335
255
  freq_map.extend(segment.freqs)
336
256
  freq_map = list(set(freq_map))
337
257
 
@@ -340,9 +260,9 @@ class Driver(BaseDriver):
340
260
  phase_map = [0]*len(coef_info['wList'])
341
261
  points_map = [0]*len(coef_info['wList'])
342
262
  for cap_num, segment in enumerate(seq):
343
- _align_start = self.granularity4ns(segment.start) # 向前取整
263
+ _align_start = self.granularity4ns(segment.start)
344
264
  _start_diff = segment.start - _align_start
345
- _align_end = ceil((segment.start+segment.ad_duration)/4)*4 #向上取整
265
+ _align_end = ceil((segment.start+segment.ad_duration)/4)*4
346
266
  seq_param.append([
347
267
  (_align_start-_t_end)*1e-9,
348
268
  (_align_end-_align_start)*1e-9,
@@ -350,16 +270,15 @@ class Driver(BaseDriver):
350
270
  (_align_end-_align_start)*1e-9,
351
271
  ])
352
272
  _t_end = _align_end
353
- for idx, delay, freq, demod_wave in zip(segment.idx_list, segment.delays, segment.freqs,
354
- segment.demod_wave_list):
273
+ for idx, delay, freq in zip(segment.idx_list, segment.delays, segment.freqs):
355
274
  res_map[idx] = [freq_map.index(freq), cap_num]
356
- phase_map[idx] = self._delay2_phase(delay + _start_diff, freq) # 向前取整的缩进加上起始时间的差值来计算相位
275
+ phase_map[idx] = self._delay2_phase(delay + _start_diff, freq)
357
276
  points_map[idx] = segment.ad_duration * 1e-9 * self.ad_srate
358
277
 
359
278
  self.res_maps[ch] = res_map
360
279
  self.capture_cali_param[ch] = np.exp(-1j * np.array(phase_map)).reshape((-1, 1))
361
280
  self.capture_points[ch] = np.array(points_map).reshape((-1, 1))
362
- return program_cap(seq_param), freq_map, demod_wave_map
281
+ return program_cap(seq_param), freq_map
363
282
 
364
283
  def out_sequence_in_time(self, wave_list: list):
365
284
  last_start = wave_list[0][0]
@@ -430,7 +349,7 @@ class Driver(BaseDriver):
430
349
  for (freq_num, cap_num) in self.res_maps[ch]:
431
350
  res.append(iq_res[freq_num][cap_num::len(self.capture_cmds[ch])])
432
351
  # 采样点归一化
433
- res = np.array(res) / self.demode_calculus[ch]
352
+ res = np.array(res) / self.capture_points[ch]
434
353
  # 校准相位
435
354
  res *= self.capture_cali_param[ch]
436
355
 
@@ -457,13 +376,9 @@ class Driver(BaseDriver):
457
376
  if name in {'Coefficient'}:
458
377
  coef_info = value
459
378
  self.chs.add(channel)
460
- kernel, freq_map, demod_wave_map = self.generate_in_program(coef_info, channel)
379
+ kernel, freq_map = self.generate_in_program(coef_info, channel)
461
380
  self.handle.set("ProgramIN", kernel, channel)
462
- demode_wave = get_demod_envelope(coef_info, demod_wave_map, sampleRate=8e9)
463
- self.demode_calculus[channel] = np.sum(demode_wave)
464
- self.handle.set("DemodulationParam", demode_wave, channel)
465
381
  self.handle.set('TimeWidth', 2e-6, channel)
466
-
467
382
  self.handle.set("FreqList", freq_map, channel)
468
383
  self.coef_cache.update({channel: coef_info})
469
384
  elif name in {
nsqdriver/NS_MCI.py CHANGED
@@ -201,6 +201,12 @@ class Driver(BaseDriver):
201
201
  print(f'Driver: {self.addr}不在位,请检查网络重新open')
202
202
  self.device_online = False
203
203
  return
204
+
205
+ tran = Transport(use_builtin_types=True)
206
+ tran.accept_gzip_encoding = False
207
+ self.handle = xmlrpc.client.ServerProxy(f'http://{self.addr}:10801', transport=tran, allow_none=True,
208
+ use_builtin_types=True)
209
+ self.fast_rpc = FastRPC(self.addr, self.timeout)
204
210
  # 此时会连接rfsoc的指令接收tcp server
205
211
  result = True
206
212
  result &= self.handle.start_command(self.timeout)
@@ -212,9 +218,7 @@ class Driver(BaseDriver):
212
218
  values.update(system_parameter)
213
219
  for name, value in values.items():
214
220
  if value is not None:
215
- res = self.fast_rpc.rpc_set(name, value, 0, False)
216
- if isinstance(res, str):
217
- print("*********后台提示*********\n", res)
221
+ self.fast_rpc.rpc_set(name, value, 0, False)
218
222
  print_debug('Driver: 后端参数配置成功')
219
223
 
220
224
  # 系统开启前必须进行过一次初始化
@@ -273,9 +277,9 @@ class Driver(BaseDriver):
273
277
  value = {}
274
278
  self.init_device(system_parameter=value)
275
279
  return
276
- if name in {'ProgramSrc', 'ProgramOUTSrc', 'ProgramINSrc'}:
277
- source = [value.top_src, value.func_args, value.func_kwargs]
278
- value = source
280
+ elif name == 'Timeout':
281
+ self.timeout = value
282
+
279
283
  value = RPCValueParser.dump(value)
280
284
  func = self.fast_rpc.rpc_set
281
285
  name = 'GenWave' if name == 'Waveform' and value[0] == RPCValueParser.dump_tag_waveform else name
@@ -554,10 +558,12 @@ class RPCValueParser:
554
558
  value = [RPCValueParser.load(_v) for _v in value]
555
559
  return value
556
560
 
561
+
557
562
  class InfoSharedList:
558
563
  memory_name = 'NS_DEVICE_MEMORY'
559
564
  memory_size = 1024 ** 2
560
565
  head_size = 32 # memory中前head_size的长度为头部预留信息
566
+
561
567
  def __init__(self):
562
568
  try:
563
569
  self._memory = shared_memory.SharedMemory(name=self.memory_name, create=True, size=self.memory_size)
nsqdriver/NS_QSYNC.py CHANGED
@@ -266,9 +266,6 @@ class Driver(BaseDriver):
266
266
  return
267
267
  data = self.__fmt_qsync_mask(*value)
268
268
  self._send_command(data)
269
- elif name == 'GT_pd':
270
- data = self._fmt_gt_pd(value)
271
- self._send_command(data)
272
269
 
273
270
  elif name == "GeneratePrtTrig":
274
271
  data = self.__fmt_qsync_prt(self.subprtparam)
@@ -276,35 +273,6 @@ class Driver(BaseDriver):
276
273
  else:
277
274
  self.param[name] = value
278
275
 
279
- @lru_cache(maxsize=32)
280
- def _fmt_gt_pd(self, value):
281
-
282
- head = 0x61000003
283
- if value == 1:
284
- cmd_pack = (
285
- 0x5F5F5F5F,
286
- head,
287
- 0x00000000,
288
- 32,
289
- 0xCFF3FFFF,
290
- 0xFFFFFFFF,
291
- 0xCFF3FFFF,
292
- 0xFFFFFFFF
293
- )
294
- else:
295
- cmd_pack = (
296
- 0x5F5F5F5F,
297
- head,
298
- 0x00000000,
299
- 32,
300
- 0xFFFFFFFF,
301
- 0xFFFFFFFF,
302
- 0xFFFFFFFF,
303
- 0xFFFFFFFF
304
- )
305
-
306
- return struct.pack('=' + 'I' * len(cmd_pack), *cmd_pack)
307
-
308
276
  def subprt(self, name, value, ch=1):
309
277
  """
310
278
  subprt参数过滤
@@ -640,8 +608,7 @@ class DeviceCmdHandle:
640
608
  error_map = {b'\x1a\x00\x001': {1: '指令Resync执行失败',
641
609
  2: 'REFCLK not Detected',
642
610
  3: 'Clock Maybe unstable, DAC Settings Error',
643
- 4: 'Clock Maybe unstable, ADC Settings Error, '
644
- 'Please check if the amplifier is too large',
611
+ 4: 'Clock Maybe unstable, ADC Settings Error',
645
612
  5: 'SYSREF(External TRIG) not Detected, MTS failed / Sample Rate not Support',
646
613
  7: 'ADC Calibration Failed'}
647
614
  }
@@ -655,7 +622,7 @@ class DeviceCmdHandle:
655
622
  errors = []
656
623
  for board, future in zip(boards, futures):
657
624
  if board.has_cmd_link and board.has_stream_link:
658
- _id = (board.sig_fpga_pci_port & 0xFF) << 24
625
+ _id = (board.ds_id & 0xFF) << 24
659
626
  _res = struct.unpack('IIIII', future.result())[-1] & 0xFFFFFF
660
627
  if _res:
661
628
  errors.append(f'指令{cmd_data[4:8].tobytes()}向{board.cs_target}转发失败\n')
nsqdriver/__init__.py CHANGED
@@ -1,10 +1,10 @@
1
1
  from .NS_MCI import Driver as MCIDriver
2
2
  from .NS_QSYNC import Driver as QSYNCDriver
3
3
  from .NS_CST import Driver as CSTDriver
4
- # from .compiler.ns_wave import InsChannel
5
- # from .compiler.py_wave_asm import nsw_config, AssemblyError
4
+ from .compiler.ns_wave import InsChannel
5
+ from .compiler.py_wave_asm import nsw_config, AssemblyError
6
6
 
7
- version_pack = (0, 0, 241)
7
+ version_pack = (0, 0, 300)
8
8
 
9
- __version__ = '.'.join(str(_) for _ in version_pack)
10
- __all__ = ['MCIDriver', 'QSYNCDriver', 'CSTDriver']
9
+ __version__ = ".".join(str(_) for _ in version_pack)
10
+ __all__ = ["MCIDriver", "QSYNCDriver", "CSTDriver", "InsChannel"]
@@ -6,4 +6,4 @@ import nsqdriver.nswave._checkers as checkers
6
6
  import nsqdriver.nswave._translate as translator
7
7
 
8
8
 
9
- __all__ = ['Kernel', 'ir_pass', 'rules', 'checkers', 'translator', 'form_kernel']
9
+ __all__ = ['Kernel', 'ir_pass', 'rules', 'checkers', 'translator']
Binary file
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nsqdriver
3
- Version: 0.0.241
3
+ Version: 0.0.300
4
4
  Summary: Q series measurement and control equipment driver interface
5
5
  Home-page: https://g2hoyqcmh4.feishu.cn/wiki/Jgt1wxlKniveYQkqCgbcJHsMnoe
6
6
  Classifier: Intended Audience :: Developers
@@ -0,0 +1,41 @@
1
+ nsqdriver/NS_CST.py,sha256=zA5YcM65v66EqwBnplDvA6HM0I-y8damDOerE2CKyZE,8137
2
+ nsqdriver/NS_DDS_NEW.py,sha256=9c-9PlnyAA811EJ67vgFSZrWz0vvvBoi6-R9VCYoyco,22924
3
+ nsqdriver/NS_DDS_v3.py,sha256=sawKNLeSEmLKkKfPe-O9-LZCAY1lyTPEN3YJiAYU2Lc,20784
4
+ nsqdriver/NS_MCI.py,sha256=9c-9PlnyAA811EJ67vgFSZrWz0vvvBoi6-R9VCYoyco,22924
5
+ nsqdriver/NS_QSYNC.py,sha256=bPD0cAUehRXpTDwMNZutB5AWhZM7iwKBD5t5jmJiBF4,27900
6
+ nsqdriver/__init__.py,sha256=VhnMFIwkYwI3dqQ9JFE0O1a1_LZXz74epIblq1_qWdI,383
7
+ nsqdriver/common.py,sha256=5BRActb9TgNdVwWtfuZ_gki47H1WbABzYr5XbxLKlh4,519
8
+ nsqdriver/compiler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ nsqdriver/compiler/assembler.cp310-win_amd64.pyd,sha256=I--vmIqU254umrP5s3yfxt_2I3O7WUeLkn6IDCKciKw,390144
10
+ nsqdriver/compiler/ns_wave.cp310-win_amd64.pyd,sha256=qVF1Dq7cPl8vWQWRY18YAExy8Ql-ef9bsaUm0JfBxdM,209408
11
+ nsqdriver/compiler/ns_wave.pyi,sha256=axQaxrMaKRPx8k9sDVlRj3SjR03AmXUDzkVW4D_2RJw,3975
12
+ nsqdriver/compiler/py_wave_asm.cp310-win_amd64.pyd,sha256=foLSFJa5scxtLDfgViz1Y53qEs-9a_4sV1-FZ7kdzTw,282112
13
+ nsqdriver/compiler/py_wave_asm.pyi,sha256=PqEZuNt83CCu_FJUczUjStowOz2TBgvfIytGanFPHuQ,685
14
+ nsqdriver/nswave/__init__.py,sha256=rAU1XD58JBF7iAYB5LVD-ZlEmQq9wyJrsRVHF-OOrzI,302
15
+ nsqdriver/nswave/_asm.pyi,sha256=f8IjCLPIocBZXTC8F5GFTlI6ZDa5-hhShJPjL166K4o,2846
16
+ nsqdriver/nswave/_checkers.cp310-win_amd64.pyd,sha256=jhNqeBnJIFbjwWLvP7SFpq7YQS2EJcImIXzLr1iM5gc,181248
17
+ nsqdriver/nswave/_checkers.pyi,sha256=931KCK3B87dE0qjtWcEt6C-_KSIdH0RRiIYer8p6Tgg,1459
18
+ nsqdriver/nswave/_errors.cp310-win_amd64.pyd,sha256=Wtvbo93ADNdQ7lL44IQJ0TYNowJBxGWdSlKtExg5jTo,72192
19
+ nsqdriver/nswave/_errors.pyi,sha256=A4LLc1zu6blJgmaAW_Wdx19jvFe1fkIggkTgYaQ8BIM,664
20
+ nsqdriver/nswave/_functions.cp310-win_amd64.pyd,sha256=TNHRe9V4EC_GtOlWp6XIuGRWP6CvxYKJHz1_dBY8VLM,206336
21
+ nsqdriver/nswave/_functions.pyi,sha256=wOzfZITAzupxAONxGELNF_U-XMy1CTdr8iU8UeszTQk,1992
22
+ nsqdriver/nswave/_ir.cp310-win_amd64.pyd,sha256=aVG8TJrkvZDyLv-diW-2w2065zWF-gD22_GHHRK9FxM,496128
23
+ nsqdriver/nswave/_ir.pyi,sha256=nPh7se2s1D80zMLF_bSrA4WpKI7uk-hrLRPs5JHadxc,7413
24
+ nsqdriver/nswave/_ir_pass.cp310-win_amd64.pyd,sha256=En9RbqCPhqvT3e5qILunLvHMQRXc1aiandEsgw1E6Ns,52736
25
+ nsqdriver/nswave/_ir_pass.pyi,sha256=UmQVLgcfX1rw9HuMorRCensJtxB4b7zh7uyIIlTF_A0,289
26
+ nsqdriver/nswave/_optimizations.cp310-win_amd64.pyd,sha256=vwxPPAaipzBV43fJ64DhY2B6CyoSaNcQdgEi7Creq5w,72192
27
+ nsqdriver/nswave/_optimizations.pyi,sha256=6WxLlO1aJEMMGB4qL3iSr0l43b6pSH-7qRSHXzCQQa8,508
28
+ nsqdriver/nswave/_rules.cp310-win_amd64.pyd,sha256=qFRx5cBx8L0YoL_s325EGOwECbceAgru0ESW_5GNJpo,192000
29
+ nsqdriver/nswave/_rules.pyi,sha256=bMynUPRkrIfTNXPt0K7Rqy5cp4B-4EIdolznVBJaaAM,1926
30
+ nsqdriver/nswave/_simulator.cp310-win_amd64.pyd,sha256=W4x42bo9g00GrLeEUs-WAEA29ib_sRFGOVDINywVUdA,148480
31
+ nsqdriver/nswave/_translate.cp310-win_amd64.pyd,sha256=jzASAO0SEYdwLIIP9--_fGxoK-8d-zmo0H9egKe0DzY,110592
32
+ nsqdriver/nswave/_translate.pyi,sha256=f0N24eSL7hKj2R04W-EFeEo9A8UYfzHOta7LQrDn-UA,387
33
+ nsqdriver/nswave/kernel.cp310-win_amd64.pyd,sha256=dWNCrZQvSLJ0KbkBZZcBNNSQi8mW6h3s6rbbxTMDpZc,321024
34
+ nsqdriver/nswave/kernel.pyi,sha256=GBjjcfGBFiZ7_PCSgOWJcfVqckYg_r3j7PsMpUeaozE,2009
35
+ nsqdriver/wrapper/AWG_ADC.py,sha256=wLtkbJe39hDcnbWZ-8jyGZ78RQtn7iAZ7P7H0n-2IWU,19733
36
+ nsqdriver/wrapper/ND_NSMCI.py,sha256=e0j7BUdfrhfYb1GqBPlO4vSoZPXTKyictXy1nPvoMFE,6533
37
+ nsqdriver/wrapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ nsqdriver-0.0.300.dist-info/METADATA,sha256=0YYSTwA3caC12dhGBo_UwVUfs2tDOAXvy_i70gRHF94,4576
39
+ nsqdriver-0.0.300.dist-info/WHEEL,sha256=KUuBC6lxAbHCKilKua8R9W_TM71_-9Sg5uEP3uDWcoU,101
40
+ nsqdriver-0.0.300.dist-info/top_level.txt,sha256=o7EbQoFO6BoaG3KGbS9Lg_aRheZSY5KYzoYuI9vx-AI,10
41
+ nsqdriver-0.0.300.dist-info/RECORD,,