1
2
3
4
5"""
6This example shows basic FNet CAN 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 CANCtrl = FNetCtrl.CAN('CAN2LIN2.CAN1')
24
25
26
27 optCANCfg = CANCtrl.cfg()
28 SessionCtrl.begin_reset()
29
30 optCANCfg.set_mode(ic.ECAN_CAN_FD_ISO)
31 optCANCfg.set_allow_injection(False)
32 optCANCfg.set_arbitration (nBaudrate_kbps = 1000, nBitSamplingPoint = 70)
33 optCANCfg.set_FD_data_phase(nBaudrate_kbps = 1000, nBitSamplingPoint = 70)
34
35
36
37 SessionCtrl.end()
38 SessionCtrl.begin_prepare()
39
40
41
42
43 FTrig = 5
44
45 optCANOp = CANCtrl.op()
46
47 CANCtrl.op_qualifier_enable(FTrig)
48 CANCtrl.op_qualifier_enable_on_start(False)
49
50
51 optCANOp.set_record_all_received(False)
52
53 optCANOp.set_error(bRecord = False, nFTrig = FTrig)
54
55 optCANOp.set_comparator(nComparator = 0, bRecord = False, nFTrig = FTrig, eLength = ic.ECAN_Standard, nID = 11, nMask = 0xff, eType = ic.ECAN_Data)
56
57
58 optCANOp.set_record_all_injected(True)
59
60
61 optCANOp.set_action(nAction = 0, nFTrig = FTrig, eLength = ic.ECAN_Standard, nID = 11, bFD = True, bBRS = False, bESI = False, bRequest = False, rstrData = '01020304')
62
63
64 FNetCtrl.op_apply()
65
66
67 CANCtrl.ctrl_inject(eLength = ic.ECAN_Standard, nID = 11, bFD = True, bBRS = False, bESI = False, bRequest = False, rstrData = '01020304')
68
69except Exception as ex:
70 print(ex)