"""
This example shows basic FNet CAN controller initialization and usage.
(c) iSYSTEM Labs, 2022
"""
import isystem.connect as ic
winidea_id = ''
try:
connMgr = ic.ConnectionMgr()
connMgr.connect(ic.CConnectionConfig().instanceId(winidea_id))
SessionCtrl = ic.CSessionCtrl(connMgr)
FNetCtrl = ic.CFNetCtrl(connMgr)
CANCtrl = FNetCtrl.CAN('CAN2LIN2.CAN1')
optCANCfg = CANCtrl.cfg()
SessionCtrl.begin_reset()
optCANCfg.set_mode(ic.ECAN_CAN_FD_ISO)
optCANCfg.set_allow_injection(False)
optCANCfg.set_arbitration (nBaudrate_kbps = 1000, nBitSamplingPoint = 70)
optCANCfg.set_FD_data_phase(nBaudrate_kbps = 1000, nBitSamplingPoint = 70)
SessionCtrl.end()
SessionCtrl.begin_prepare()
FTrig = 5
optCANOp = CANCtrl.op()
CANCtrl.op_qualifier_enable(FTrig)
CANCtrl.op_qualifier_enable_on_start(False)
optCANOp.set_record_all_received(False)
optCANOp.set_error(bRecord = False, nFTrig = FTrig)
optCANOp.set_comparator(nComparator = 0, bRecord = False, nFTrig = FTrig, eLength = ic.ECAN_Standard, nID = 11, nMask = 0xff, eType = ic.ECAN_Data)
optCANOp.set_record_all_injected(True)
optCANOp.set_action(nAction = 0, nFTrig = FTrig, eLength = ic.ECAN_Standard, nID = 11, bFD = True, bBRS = False, bESI = False, bRequest = False, rstrData = '01020304')
FNetCtrl.op_apply()
CANCtrl.ctrl_inject(eLength = ic.ECAN_Standard, nID = 11, bFD = True, bBRS = False, bESI = False, bRequest = False, rstrData = '01020304')
except Exception as ex:
print(ex)