winIDEA SDK
test_run.py
1# This script is licensed under BSD License, see file LICENSE.txt.
2#
3# (c) TASKING Germany GmbH, 2023
4
5import time
6
7import isystem.connect as ic
8
9
10winidea_id = ''
11
12
13def test_run():
14 connMgr = ic.ConnectionMgr()
15 connMgr.connect(ic.CConnectionConfig().instanceId(winidea_id))
16
17 execCtrl = ic.CExecutionController(connMgr)
18 daqCtrl = ic.CDAQController(connMgr)
19
20 print("Configuring DAQ to observe variable 'main_loop_counter' (item with index 0)...")
21 daqCfg = ic.DAQConfigVector()
22 cfg = ic.CDAQConfigItem("main_loop_counter", ic.CDAQController.daqSampleMax, 0)
23 daqCfg.push_back(cfg)
24 daqCtrl.configure(daqCfg)
25 daqCtrl.enableGlobal(True)
26
27 print("Running CPU and recording variable...")
28 execCtrl.run()
29 time.sleep(2)
30 execCtrl.stop()
31
32 status = daqCtrl.status()
33 print("Recording finished, current DAQ status:")
34 print(f"\tDAQ globally enabled: {status.getGlobalEnable()}")
35 print(f"\tNumber of available samples: {status.getNumSamplesAvailable()}")
36 print(f"\tLast loop time: {status.getLastLoopTime()}")
37 print(f"\tNumber of DAQ loops: {status.getNumLoops()}")
38 print(f"\tIs overflow: {status.getOverflow()}")
39 print(f"\tDAQ internal time: {status.getTime()}")
40
41 info = daqCtrl.info()
42 print(f"DAQ info:")
43 print(f"\tMax items: {info.getMaxItems()}")
44 print(f"\tBuffer size: {info.getBufSize()}")
45 print(f"\tMax item size: {info.getMaxItemSize()}")
46
47 print(f"First 10 samples (out of {status.getNumSamplesAvailable()}):")
48 samples = ic.DAQSampleVector()
49 daqCtrl.read(samples)
50 for index, sample in enumerate(samples[:10]):
51 sample: ic.CDAQSample
52 value = daqCtrl.getDataValue(sample).getInt()
53 timeUs = sample.getTime()
54 print(f"\tSample {index}: {value} @ {timeUs} us (DAQ item: {sample.getIndex()})")
55
56 daqCtrl.enableGlobal(False)
57
58
59if __name__ == "__main__":
60 test_run()