1
2
3
4
5"""
6This example shows basic FNet DIO controller initialization and usage.
7
8(c) iSYSTEM Labs, 2022
9"""
10import isystem.connect as ic
11
12winidea_id = ''
13
14
15try:
16
17 connMgr = ic.ConnectionMgr()
18 connMgr.connect(ic.CConnectionConfig().instanceId(winidea_id))
19
20
21 SessionCtrl = ic.CSessionCtrl(connMgr)
22 FNetCtrl = ic.CFNetCtrl(connMgr)
23 DIOCtrl = FNetCtrl.DIO('ADIO.DIO1')
24
25
26
27 optDIOCfg = DIOCtrl.cfg()
28 optDIOCfg.reset()
29
30
31 optDIOCfg.set_bank(nBank = 0, bOutput = False, dThreshold = 3.3)
32
33 optDIOCfg.set_bank(nBank = 3, bOutput = True, dThreshold = 3.3)
34
35 nMyInputChannel = 0
36 nMyOutputChannel = 25
37 nMyOtherOutputChannel = 27
38 optDIOCfg.set_channel(nChannel = nMyInputChannel, strName = 'MyInputChannel', bShow = True, bInitialHi = False)
39 optDIOCfg.set_channel(nChannel = nMyOtherOutputChannel, strName = 'MyOtherOutputChannel', bShow = True, bInitialHi = False)
40
41
42
43 SessionCtrl.end()
44 SessionCtrl.begin_prepare()
45
46
47
48
49 FTrig = 5
50 FTrigStop = 6
51 nPattern = 3
52
53 optDIOOp = DIOCtrl.op()
54
55 DIOCtrl.op_qualifier_enable(FTrig)
56 DIOCtrl.op_qualifier_enable_on_start(False)
57
58
59 optDIOOp.set_record(ic.ERecord_ALL)
60
61
62 optComparator = optDIOOp.opt_comparator(0)
63
64 optComparator.set_channel_ignore_all()
65
66 optComparator.set_channel_state(nMyInputChannel, bHi = True)
67
68 optComparator.set_FTrig(FTrig)
69
70
71 optDIOOp.set_action(nAction = 1, nFTrig = FTrig, nChannel = nMyOutputChannel, bHi = True)
72
73
74 optPattern = optDIOOp.opt_pattern(nPattern)
75
76 vPatternChannels = ic.IntVector([nMyOutputChannel, nMyOtherOutputChannel])
77 optPattern.set_channels(vPatternChannels)
78
79 optPattern.set_operation(ic.EOperation_CONTINUOUS)
80
81 optPattern.set_pattern("10,3ms;01,5ms")
82
83 optPattern.set_start(FTrig, False)
84
85 optPattern.set_stop(FTrigStop, False)
86
87
88 FNetCtrl.op_apply()
89
90
92 ChannelState = DIOCtrl.ctrl_get_channel(nMyInputChannel)
93 DIOCtrl.ctrl_set_channel(nMyOutputChannel, ChannelState)
94
95
96 DIOCtrl.ctrl_start_pattern(nPattern)
97
98 DIOCtrl.ctrl_stop_pattern(nPattern)
99except Exception as ex:
100 print(ex)