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_NEW.py +602 -0
- nsqdriver/NS_DDS_v3.py +14 -99
- nsqdriver/NS_MCI.py +12 -6
- nsqdriver/NS_QSYNC.py +2 -35
- nsqdriver/__init__.py +5 -5
- nsqdriver/compiler/assembler.cp310-win_amd64.pyd +0 -0
- nsqdriver/compiler/ns_wave.cp310-win_amd64.pyd +0 -0
- nsqdriver/compiler/py_wave_asm.cp310-win_amd64.pyd +0 -0
- nsqdriver/nswave/__init__.py +1 -1
- nsqdriver/nswave/_checkers.cp310-win_amd64.pyd +0 -0
- nsqdriver/nswave/_errors.cp310-win_amd64.pyd +0 -0
- nsqdriver/nswave/_functions.cp310-win_amd64.pyd +0 -0
- nsqdriver/nswave/_ir.cp310-win_amd64.pyd +0 -0
- nsqdriver/nswave/_ir_pass.cp310-win_amd64.pyd +0 -0
- nsqdriver/nswave/_optimizations.cp310-win_amd64.pyd +0 -0
- nsqdriver/nswave/_rules.cp310-win_amd64.pyd +0 -0
- nsqdriver/nswave/_simulator.cp310-win_amd64.pyd +0 -0
- nsqdriver/nswave/_translate.cp310-win_amd64.pyd +0 -0
- nsqdriver/nswave/kernel.cp310-win_amd64.pyd +0 -0
- {nsqdriver-0.0.241.dist-info → nsqdriver-0.0.300.dist-info}/METADATA +1 -1
- nsqdriver-0.0.300.dist-info/RECORD +41 -0
- nsqdriver/NS_DDS_v4.py +0 -778
- nsqdriver-0.0.241.dist-info/RECORD +0 -41
- {nsqdriver-0.0.241.dist-info → nsqdriver-0.0.300.dist-info}/WHEEL +0 -0
- {nsqdriver-0.0.241.dist-info → nsqdriver-0.0.300.dist-info}/top_level.txt +0 -0
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
|
-
|
|
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', '
|
|
66
|
+
ProbeSegment = namedtuple('ProbeSegment', ['start', 'stop', 'freq', 'idx'])
|
|
140
67
|
|
|
141
68
|
CaptureCmd = namedtuple('CaptureCmd', [
|
|
142
|
-
'start', 'ad_duration', 'delay', 'da_duration', 'freqs', 'delays', '
|
|
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'],
|
|
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].
|
|
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.
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
277
|
-
|
|
278
|
-
|
|
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.
|
|
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
|
-
|
|
5
|
-
|
|
4
|
+
from .compiler.ns_wave import InsChannel
|
|
5
|
+
from .compiler.py_wave_asm import nsw_config, AssemblyError
|
|
6
6
|
|
|
7
|
-
version_pack = (0, 0,
|
|
7
|
+
version_pack = (0, 0, 300)
|
|
8
8
|
|
|
9
|
-
__version__ =
|
|
10
|
-
__all__ = [
|
|
9
|
+
__version__ = ".".join(str(_) for _ in version_pack)
|
|
10
|
+
__all__ = ["MCIDriver", "QSYNCDriver", "CSTDriver", "InsChannel"]
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
nsqdriver/nswave/__init__.py
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nsqdriver
|
|
3
|
-
Version: 0.0.
|
|
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,,
|