nsqdriver 0.4.3__cp38-cp38-macosx_11_0_x86_64.whl → 0.5.7__cp38-cp38-macosx_11_0_x86_64.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.
- nsqdriver/NS_MCI.py +13 -20
- nsqdriver/NS_QSYNC.py +55 -5
- nsqdriver/__init__.py +1 -1
- nsqdriver/compiler/assembler.cpython-38-darwin.so +0 -0
- nsqdriver/compiler/ns_wave.cpython-38-darwin.so +0 -0
- nsqdriver/compiler/py_wave_asm.cpython-38-darwin.so +0 -0
- nsqdriver/wrapper/AWG_ADC.py +1 -1
- {nsqdriver-0.4.3.dist-info → nsqdriver-0.5.7.dist-info}/METADATA +1 -1
- nsqdriver-0.5.7.dist-info/RECORD +18 -0
- {nsqdriver-0.4.3.dist-info → nsqdriver-0.5.7.dist-info}/WHEEL +1 -1
- nsqdriver-0.4.3.dist-info/RECORD +0 -17
- {nsqdriver-0.4.3.dist-info → nsqdriver-0.5.7.dist-info}/top_level.txt +0 -0
nsqdriver/NS_MCI.py
CHANGED
|
@@ -203,13 +203,13 @@ class Driver(BaseDriver):
|
|
|
203
203
|
values.update(system_parameter)
|
|
204
204
|
for name, value in values.items():
|
|
205
205
|
if value is not None:
|
|
206
|
-
self.
|
|
206
|
+
self.fast_rpc.rpc_set(name, value, 0, False)
|
|
207
207
|
print_debug('Driver: 后端参数配置成功')
|
|
208
208
|
|
|
209
209
|
# 系统开启前必须进行过一次初始化
|
|
210
210
|
result &= self.__init_system()
|
|
211
211
|
print_debug('Driver: 后端RF配置成功')
|
|
212
|
-
result &= self.
|
|
212
|
+
result &= self.fast_rpc.rpc_set('Reset')
|
|
213
213
|
print_debug('Driver: 后端缓存配置成功')
|
|
214
214
|
return result
|
|
215
215
|
|
|
@@ -218,19 +218,13 @@ class Driver(BaseDriver):
|
|
|
218
218
|
"""
|
|
219
219
|
关闭设备
|
|
220
220
|
"""
|
|
221
|
-
|
|
222
|
-
self.handle.close()
|
|
223
|
-
self.handle = None
|
|
224
|
-
if getattr(self, 'fast_rpc', None) is not None:
|
|
225
|
-
self.fast_rpc = None
|
|
221
|
+
...
|
|
226
222
|
|
|
227
223
|
def write(self, name: str, value, **kw):
|
|
228
224
|
channel = kw.get('ch', 1)
|
|
229
225
|
if name in {'Coefficient'}:
|
|
230
226
|
data, f_list, numberOfPoints, phases = get_coef(value, 4e9)
|
|
231
227
|
self.set('DemodulationParam', data, channel)
|
|
232
|
-
elif name in {'CaptureMode', 'SystemSync', 'ResetTrig', 'TrigPeriod', 'TrigFrom'}:
|
|
233
|
-
pass
|
|
234
228
|
else:
|
|
235
229
|
return self.set(name, value, channel)
|
|
236
230
|
|
|
@@ -264,23 +258,18 @@ class Driver(BaseDriver):
|
|
|
264
258
|
value = {}
|
|
265
259
|
self.init_device(system_parameter=value)
|
|
266
260
|
return
|
|
267
|
-
elif name in {'CaptureMode', 'SystemSync', 'ResetTrig', 'TrigPeriod', 'TrigFrom'}:
|
|
268
|
-
return
|
|
269
261
|
|
|
270
262
|
value = RPCValueParser.dump(value)
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
func = self.fast_rpc.rpc_set
|
|
274
|
-
name = 'GenWave' if name == 'Waveform' and value[0] == RPCValueParser.dump_tag_waveform else name
|
|
275
|
-
else:
|
|
276
|
-
func = self.handle.rpc_set
|
|
263
|
+
func = self.fast_rpc.rpc_set
|
|
264
|
+
name = 'GenWave' if name == 'Waveform' and value[0] == RPCValueParser.dump_tag_waveform else name
|
|
277
265
|
|
|
278
266
|
if self.has_start_capture and name == 'StartCapture':
|
|
279
267
|
return
|
|
280
268
|
self.has_start_capture = name == 'StartCapture'
|
|
281
269
|
|
|
282
270
|
if not func(name, value, channel):
|
|
283
|
-
|
|
271
|
+
...
|
|
272
|
+
# raise xmlrpc.client.Fault(400, f'指令{name}执行失败, 请重新open板卡')
|
|
284
273
|
|
|
285
274
|
@solve_rpc_exception
|
|
286
275
|
def get(self, name, channel=1, value=0):
|
|
@@ -320,11 +309,13 @@ class Driver(BaseDriver):
|
|
|
320
309
|
if key.endswith('version'):
|
|
321
310
|
version = version[key][1:].split('-')[0]
|
|
322
311
|
version = tuple(int(v) for v in version.split('.'))
|
|
312
|
+
break
|
|
323
313
|
else:
|
|
324
314
|
version = (0, 0, 0)
|
|
325
315
|
self.backend_version = version
|
|
326
316
|
if version >= (1, 2, 7):
|
|
327
|
-
|
|
317
|
+
self.set('InitSystem')
|
|
318
|
+
return True
|
|
328
319
|
else:
|
|
329
320
|
return self.__exec_command('初始化')
|
|
330
321
|
|
|
@@ -352,13 +343,15 @@ class Driver(BaseDriver):
|
|
|
352
343
|
return sock
|
|
353
344
|
|
|
354
345
|
def _show_system_status(self):
|
|
355
|
-
import json
|
|
356
346
|
keys = ['device_type', 'backend_version', 'ad_num', 'da_num', 'cpu_temp', 'memory_use']
|
|
357
347
|
status: dict = self.handle.get_all_status(False)
|
|
358
348
|
_string = [f'*********设备{self.addr}开启成功*********']
|
|
359
349
|
for key in keys:
|
|
360
350
|
_string.append(f'{key}: {status.get(key, "nan")}')
|
|
361
351
|
print('\n'.join(_string))
|
|
352
|
+
if self.backend_version >= (2, 0, 1):
|
|
353
|
+
print('available chnl: ')
|
|
354
|
+
print(self.get('ChnlInfo'))
|
|
362
355
|
|
|
363
356
|
|
|
364
357
|
class RPCFaultPack:
|
nsqdriver/NS_QSYNC.py
CHANGED
|
@@ -235,6 +235,12 @@ class Driver(BaseDriver):
|
|
|
235
235
|
self.change_ref(value)
|
|
236
236
|
elif name == 'UpdateFirmware':
|
|
237
237
|
self.update_firmware(value)
|
|
238
|
+
elif name == 'SetMask':
|
|
239
|
+
if not isinstance(value, list):
|
|
240
|
+
print(f'SetMask set value {value} is not a list')
|
|
241
|
+
return
|
|
242
|
+
data = self.__fmt_qsync_mask(*value)
|
|
243
|
+
self._send_command(data)
|
|
238
244
|
|
|
239
245
|
else:
|
|
240
246
|
self.param[name] = value
|
|
@@ -441,6 +447,18 @@ class Driver(BaseDriver):
|
|
|
441
447
|
|
|
442
448
|
return struct.pack('=' + 'I' * len(cmd_pack), *cmd_pack)
|
|
443
449
|
|
|
450
|
+
@lru_cache(maxsize=32)
|
|
451
|
+
def __fmt_qsync_mask(self, *mask):
|
|
452
|
+
cmd_pack = (
|
|
453
|
+
0x5F5F5F5F,
|
|
454
|
+
0x51000001,
|
|
455
|
+
0x00000000,
|
|
456
|
+
80,
|
|
457
|
+
*mask
|
|
458
|
+
)
|
|
459
|
+
|
|
460
|
+
return struct.pack('=' + 'I' * len(cmd_pack), *cmd_pack)
|
|
461
|
+
|
|
444
462
|
@lru_cache(maxsize=32)
|
|
445
463
|
def __fmt_qsync_start(self, src, period, shots, width, delay):
|
|
446
464
|
cmd_pack = (
|
|
@@ -544,11 +562,11 @@ class DeviceCmdHandle:
|
|
|
544
562
|
res = []
|
|
545
563
|
errors = []
|
|
546
564
|
for board, future in zip(boards, futures):
|
|
547
|
-
if board.
|
|
548
|
-
_id = (board.
|
|
565
|
+
if board.has_cmd_link and board.has_stream_link:
|
|
566
|
+
_id = (board.ds_id & 0xFF) << 24
|
|
549
567
|
_res = struct.unpack('IIIII', future.result())[-1] & 0xFFFFFF
|
|
550
568
|
if _res:
|
|
551
|
-
errors.append(f'指令{cmd_data[4:8].tobytes()}向{board.
|
|
569
|
+
errors.append(f'指令{cmd_data[4:8].tobytes()}向{board.cs_target}转发失败\n')
|
|
552
570
|
res.append(_id + _res)
|
|
553
571
|
return b''.join((head, cmd_data[4:12], struct.pack('=I' + 'I' * len(res), 16 + len(res) * 4, *res))), errors
|
|
554
572
|
|
|
@@ -556,8 +574,8 @@ class DeviceCmdHandle:
|
|
|
556
574
|
def packing_fake_result(boards: Iterable["MCIBoard"], cmd_data: memoryview, head: bytes) -> bytes:
|
|
557
575
|
res = []
|
|
558
576
|
for board in boards:
|
|
559
|
-
if board.
|
|
560
|
-
_id = (board.
|
|
577
|
+
if board.has_cmd_link and board.has_stream_link:
|
|
578
|
+
_id = (board.ds_id & 0xFF) << 24
|
|
561
579
|
res.append(_id + 0)
|
|
562
580
|
return b''.join((head, cmd_data[4:12], struct.pack('=I' + 'I' * len(res), 16 + len(res) * 4, *res)))
|
|
563
581
|
|
|
@@ -669,3 +687,35 @@ class InfoSharedList:
|
|
|
669
687
|
|
|
670
688
|
# threading.Thread(target=do_scanning, daemon=True, name='qsync_scanning_device').start()
|
|
671
689
|
SHARED_DEVICE_MEM = InfoSharedList()
|
|
690
|
+
|
|
691
|
+
|
|
692
|
+
if __name__ == '__main__':
|
|
693
|
+
ins = Driver('127.0.0.1')
|
|
694
|
+
|
|
695
|
+
count = 1024
|
|
696
|
+
period = 400e-6
|
|
697
|
+
delay = 0
|
|
698
|
+
source = 0
|
|
699
|
+
|
|
700
|
+
# ins.set('ResetTrig')
|
|
701
|
+
|
|
702
|
+
for ch in [1, 2, 3, 4, 5, 6, 7]:
|
|
703
|
+
ins.set('Shot', count, channel=ch)
|
|
704
|
+
ins.set('TrigPeriod', period, channel=ch)
|
|
705
|
+
ins.set('TrigDelay', delay, channel=ch)
|
|
706
|
+
ins.set('TrigFrom', source, channel=ch)
|
|
707
|
+
|
|
708
|
+
for ch in [8]:
|
|
709
|
+
ins.set('Shot', count, channel=ch)
|
|
710
|
+
ins.set('TrigWidth', 1600e-9, channel=ch)
|
|
711
|
+
ins.set('TrigPeriod', period, channel=ch)
|
|
712
|
+
ins.set('SubTriggerCount', 4, channel=ch)
|
|
713
|
+
ins.set('TrigDelayList', [1600e-9 * i for i in range(4)])
|
|
714
|
+
ins.set('TrigFrom', source, channel=ch)
|
|
715
|
+
|
|
716
|
+
for i in range(1):
|
|
717
|
+
# ins.set('GenerateTrig')
|
|
718
|
+
ins.set('GeneratePrtTrig')
|
|
719
|
+
import time
|
|
720
|
+
|
|
721
|
+
time.sleep(1)
|
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,
|
|
7
|
+
version_pack = (0, 5, 7)
|
|
8
8
|
|
|
9
9
|
__version__ = '.'.join(str(_) for _ in version_pack)
|
|
10
10
|
__all__ = ['MCIDriver', 'QSYNCDriver', 'CSTDriver', 'InsChannel']
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
nsqdriver/wrapper/AWG_ADC.py
CHANGED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
nsqdriver/NS_CST.py,sha256=_QYCjg1YglIJ4YVmxvISqvy5rExWGlMhyrK9zYIRbRY,7877
|
|
2
|
+
nsqdriver/NS_MCI.py,sha256=LWaPn2XGjlT20gupsg8aDAvHVxmtmLehCmI63pt4m74,20791
|
|
3
|
+
nsqdriver/NS_QSYNC.py,sha256=Qq0y2eISRo2faRQk3U57RHeAbssvYy7ex5rsCfxNfLU,24743
|
|
4
|
+
nsqdriver/__init__.py,sha256=rprb8TO2c6Nxr7wTVBj8rSzWNJo60MReiFTM4zafVkM,371
|
|
5
|
+
nsqdriver/common.py,sha256=IHfShqgNN3THbe7KD7ICdfFY7JKC_kQj0_KJk-449gQ,499
|
|
6
|
+
nsqdriver/compiler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
+
nsqdriver/compiler/assembler.cpython-38-darwin.so,sha256=Y5Ek8jUCjg9eQfn_an9-SDJbn7ElRYlORoNJSRlCogM,560104
|
|
8
|
+
nsqdriver/compiler/ns_wave.cpython-38-darwin.so,sha256=M9EVnPjvWbxr9Kioxe5alSg2NbPtytAwG8ClmVEKbTo,389864
|
|
9
|
+
nsqdriver/compiler/ns_wave.pyi,sha256=JQiE_9HqCzm00bS6c2JaaIXwt7xN_x9XXax-BBrE7-o,3824
|
|
10
|
+
nsqdriver/compiler/py_wave_asm.cpython-38-darwin.so,sha256=olZOrFBqqnyPFFfVtQh4Kc6vRIvcvQK9WsLK56dvfDA,533760
|
|
11
|
+
nsqdriver/compiler/py_wave_asm.pyi,sha256=w2PWlBrns4tfDYjTLyOBfNgjjjVA_xzMJZYYyDPKce4,656
|
|
12
|
+
nsqdriver/wrapper/AWG_ADC.py,sha256=ktQkORc8VZUFkNg6huC7DKIkvZyHYXRolQ2SAA89JnM,19199
|
|
13
|
+
nsqdriver/wrapper/ND_NSMCI.py,sha256=gTyrDObhbggl35V_q-kpDoPsfttIEnDFc6f0-pk_P0k,6288
|
|
14
|
+
nsqdriver/wrapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
+
nsqdriver-0.5.7.dist-info/METADATA,sha256=5i6Xs_CCMOSABTy9tFyh9rRlgOXbHYPL0SWdFbGjBhI,4359
|
|
16
|
+
nsqdriver-0.5.7.dist-info/WHEEL,sha256=-xNEBBqBjuLNGcSddobZMrgGCgJVOgsTLShPZDHgbqs,109
|
|
17
|
+
nsqdriver-0.5.7.dist-info/top_level.txt,sha256=o7EbQoFO6BoaG3KGbS9Lg_aRheZSY5KYzoYuI9vx-AI,10
|
|
18
|
+
nsqdriver-0.5.7.dist-info/RECORD,,
|
nsqdriver-0.4.3.dist-info/RECORD
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
nsqdriver/NS_CST.py,sha256=_QYCjg1YglIJ4YVmxvISqvy5rExWGlMhyrK9zYIRbRY,7877
|
|
2
|
-
nsqdriver/NS_MCI.py,sha256=QhZHdyE-isQ1YWScB1vKRiuFv2NFvMVhRLzrLdPlUvo,21239
|
|
3
|
-
nsqdriver/NS_QSYNC.py,sha256=nbF3cmicEpJhwYrRfULWYOK9lnqdOd_Jqy-QnK75ZPk,23351
|
|
4
|
-
nsqdriver/__init__.py,sha256=ayjUJe2lD4X2dU8uvEkXZkt7KbUggrfv_CW_UA5OnN4,371
|
|
5
|
-
nsqdriver/common.py,sha256=IHfShqgNN3THbe7KD7ICdfFY7JKC_kQj0_KJk-449gQ,499
|
|
6
|
-
nsqdriver/compiler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
-
nsqdriver/compiler/ns_wave.cpython-38-darwin.so,sha256=OdXLBvhMqI8PIyJOiVZ-lsKApOrDAV-61irjSdIZgxs,389864
|
|
8
|
-
nsqdriver/compiler/ns_wave.pyi,sha256=JQiE_9HqCzm00bS6c2JaaIXwt7xN_x9XXax-BBrE7-o,3824
|
|
9
|
-
nsqdriver/compiler/py_wave_asm.cpython-38-darwin.so,sha256=6WxBlVrg6hzNH17Q4CoUYdYof9_1T0j2_fcQfvD0BDQ,533768
|
|
10
|
-
nsqdriver/compiler/py_wave_asm.pyi,sha256=w2PWlBrns4tfDYjTLyOBfNgjjjVA_xzMJZYYyDPKce4,656
|
|
11
|
-
nsqdriver/wrapper/AWG_ADC.py,sha256=8K5xLEa_3CKnStWcoJeTj8ufEQfrx6o4l4XGNuOP3Ug,19211
|
|
12
|
-
nsqdriver/wrapper/ND_NSMCI.py,sha256=gTyrDObhbggl35V_q-kpDoPsfttIEnDFc6f0-pk_P0k,6288
|
|
13
|
-
nsqdriver/wrapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
-
nsqdriver-0.4.3.dist-info/METADATA,sha256=vxtTkxr6sJGag1ckhH0J4_nEkRtfCWiRBiNRRbh-oNw,4359
|
|
15
|
-
nsqdriver-0.4.3.dist-info/WHEEL,sha256=ZFv5yXgXaiE7_wiIOhB5T8vjMFeGthiQRfavaP_QKbQ,109
|
|
16
|
-
nsqdriver-0.4.3.dist-info/top_level.txt,sha256=o7EbQoFO6BoaG3KGbS9Lg_aRheZSY5KYzoYuI9vx-AI,10
|
|
17
|
-
nsqdriver-0.4.3.dist-info/RECORD,,
|
|
File without changes
|