opnet的复合属性可真是复杂啊,今天为了更改opnet的传输机的输出功率,发现一些问题。
要改输出功率power,发现,它是无线节点传输机rt的channel下的一个属性,如果简单的是rt的一个属性也到罢了,但是牵扯到了它的复合属性,很扯淡。
首先,使用如下代码;
tx_id = op_id_from_name(op_topo_parent(op_id_self()),OPC_OBJTYPE_RATX,"rt_0");
ch_id = op_topo_child(tx_id,OPC_OBJTYPE_COMP,0);
op_ima_obj_attr_set(ch_id,"power",trans_power);
报错说power不是channel的属性,函数op_ima_obj_attr_set出错,然后将代码换成如下内容,
tx_id = op_id_from_name(op_topo_parent(op_id_self()),OPC_OBJTYPE_RATX,"rt_0");
ch_id = op_id_from_name(tx_id,OPC_OBJTYPE_COMP,"channel");
op_ima_obj_attr_set(ch_id,"power",trans_power);
发现结果是一样的,使用odb调试发现,rt的channel的id是12,但是通过第二句获得的id却是11,很郁闷,不知道是那里的原因;最后尝试加入了代码
ch_id = ch_id +1;
结果ok。
不知道是opnet的问题,还是那个函数使用有问题。
转载于:https://blog.51cto.com/yangfei1/385669