Allow External Function Output Channel Rename

Antonio Garcia 2 months ago in IQANdesign • updated by Vincent Thiele 2 months ago 5

In case an External Function includes an output of any type (perhaps also input, haven't tried) you can assign it to the module where the external function is being used (or slave module I suppose), change pin alternatives, etc (good feature).  But, I think you should allow edit its name, once asigned, so you can give them unique names. If I want to use that external funcion several times, I will get many outputs called identically, which is a mess. I Know automatic name can be set for outputs... but for efficient diagnosis is more or less the same. You want it to have a meaninfull name.


When the external function has an function group output, I think that the scope identifier is a quite nice way to have unique names. 

But it seems as if it is output channels like COUT and DOUT located inside the external function that you are thinking of ? 

The scope identifier for external function's function group outputs is just perfect! no complaints about it.

And you're right, I was talking about output channels (COUT,DOUT..) located inside the external function.  If you go inside any instance of the external function, you can drag and drop the output channel to the module you need, but you can't rename it once assigned. The problem arraises when you have many instances of the external function, and all the outputs assigned to the same module. 

I could leave the output channels out from the external function, of course. But for this particular application I preferred them to be placed, and somehow isolated, inside the external function. This is because I get all the output's properties from external channels (not only its input signal, but also Cmin,Cmax,Start and Stop for both directions). So I would have to create a bunch of funtion group outputs (9 in my app) to feed all the output channel properties. But this is what I will have to do I suppose.

Perhaps the same scope indentifier could be applied to the module outputs naming, instead of allowing free renaming.

So, imagine you have one output channel named "out" located inside the external function. You create 2 instances of that external function, and assign both outputs to the same module....they could appear named as Instance1.out and Instance2.out in the module block diagram. Just an idea (I would prefer free renaming, anyway)


It's also a problem with adjust parameters. We've tried to put a number of standard processing functions together as external functions and it tends to become a mess when we have a dozen "MaxSpeed" adjust parameters in the settings file. I think the scope identifier would be great if it conveyed everywhere and not just in Qcode functions. That way we would see "Function1.MaxSpeed" in the parameter list and be able to identify where those items reside.

This can be partially solved if you create one adjust group for each instance of external function. Surely this is not the grouping structure you wanted... but it will let you know which MaxSpeed are you adjusting. At least for adjusting from a master display or from IQANRun, for example. This would be a better approach if adjust "sub-groups" (like a folder tree) were already implemented...

But scope identifiers in adjust parameters would be the most suitable solultion, indeed.

Yes, you're right Antonio, and we do that. I guess I was mixing my terminology. The real problem is when we pull a settings file from a system and try to make sense of it offline. Instead of the parameters being grouped in their adjust groups, they're grouped by type (Digital Parameter, Function Parameter, etc.) and it's very difficult to trace which parameter goes where at that point. This is where the scope identifiers would be handy (or just keeping the adjust groups, but that may be a problem for one parameter in multiple groups).