Simulink中的线 SegmentType 分为'trunk'和'branch',这两种获取原模型和目标模型方式是不一样的,
对于:'trunk'这种类型如果没有分支的话可以直接获取源模型和目标模型句柄,但是有分支就不行,得获取branch类型的线才能获取源模型和目标模型
对于下面1是trunk,2,3是branch类型。
则1可以获取源模型及端口:直接获取不到线1的目标模型。
2,3的句柄则怎么获取输入:
rawlinH = get_param(refemodel_hand(ii),'LineHandles');
下面这个代码不能获取:
src_block_R = get_param(rawlinH.Inport(ix), 'SrcBlock');%SrcBlockHandle
src_port_R = get_param(rawlinH.Inport(ix), 'SrcPort');%SrcPort % 使用get方法查不到这个属性。
替换成下面这个代码即可。
src_block_R = get(rawlinH.Inport(ix), 'SourcePort');
src_block_new = strrep(src_block_R,':','/');
对于2,3得使用下面获取
src_block_R = get(rawlinH.Inport(ix), 'SourcePort');
src_block_new = strrep(src_block_R,':','/');
1句柄怎么求它的输出模块:
dst_block_list = get(rawlinH.Outport(iy),'DstPortHandle');
获取它线下的子线也就是branch类型。
dst_block_Hand = get_param(dst_block_list, 'Line');
dst_block_R = get_param([dst_block_Hand{:}], 'DstBlock');
dst_port_R = get_param([dst_block_Hand{:}], 'DstPort');