6This script opens a window with chart, and plots values of target
7arrays given as command line args.
9This script requires 'matplotlib' to be installed.
17import isystem.connect
as ic
22matplotlib.use(
'TkAgg')
26 cmgr = ic.ConnectionMgr()
27 cmgr.connect(ic.CConnectionConfig().instanceId(winidea_id))
29 debugCtrl = ic.CDebugFacade(cmgr)
32 debugCtrl.runUntilFunction(
'main')
33 debugCtrl.waitUntilStopped()
34 dataCtrl2 = ic.CDataController2(cmgr)
36 return debugCtrl, dataCtrl2
39def getDataFromTarget(debugCtrl, dataCtrl2, arrayNames):
42 for arrayName
in arrayNames:
43 exprType = dataCtrl2.getExpressionType(0, arrayName)
44 exprInfo = exprType.Expression()
45 numElements = exprInfo.ArrayDimension()
46 dataCtrl2.release(exprType)
48 for i
in range(numElements):
49 val = debugCtrl.evaluate(ic.IConnectDebug.fMonitor, arrayName + f
"[{i}]")
50 targetArray.append(val.getInt())
52 targetData.append(targetArray)
57def plotArrays(arrayNames, targetData):
58 for idx, data
in enumerate(targetData):
59 pl.plot(data, label=arrayNames[idx])
64 pl.title(
"Target Data")
72 parser = argparse.ArgumentParser(description=
"Specify names of arrays containing plot data.")
74 parser.add_argument(
'targetVar', metavar=
'targetVar', type=str, nargs=
'*',
75 default=[
'g_intArray1'],
76 help=
'list of arrays on target')
78 return parser.parse_args()
84 debugCtrl, dataCtrl2 = _initTarget()
85 targetData = getDataFromTarget(debugCtrl, dataCtrl2, args.targetVar)
86 plotArrays(args.targetVar, targetData)
89if __name__ ==
"__main__":