I'm trying to write a generic procedure to plot waveform that takes the plot macro parameters as procedure input arguments.
Basically, I want something like this :
procedure( my_procedure( signal signal_name strip ...stuff... )
plot( sprintf( "%s ?expr '("%s") ?strip "%d" " signal signal_name strip ) )
It seems like I cannot plot something out of a sprintf because sprintf does not return an object, right ?
Is there any way to get that working ?
Well, sprintf returns a string, so you can't just pass that to plot. In general trying to do run-time evaluation of a macro like plot is going to be problematic, so I'd suggest that you do:
procedure(my_procedure(signal signal_name strip) awvPlotWaveform(currentWindow() || newWindow() list(signal) ?expr list(signal_name) ?stripNumber list(strip)) ; hardCopy stuff)
So use the underlying function.
In reply to Andrew Beckett:
Thanks you very much for your answer. It seems to be working !
Do you have any documentation on the awvPlotWaveform function ? I can't find anything in the manual.
What is the difference with the Plot function ?
In reply to The Setlaz:
It's documented. In IC615 it's in <ICinstDir>/doc/vivaxlskill/vivaxlskill.pdf (and cdnshelp would find it). In IC5141 it's in <ICinstDir>/doc/skartistref/skartistref.pdf (I searched in cdsdoc, and found it).
The plot() function has some convient options - it will create a window if one doesn't exist already, and you can just do plot(sig1 sig2 sig3) for example - the awvPlotWaveform() is a bit more verbose.
Alright. Does it mean that the plot() macro is kind of wrapper for awvPlotWaveform() function ?
I will look at the documentation tomorrow - I only looked at OCEAN Refence and SKILL Language Reference and SKILL User's Guide maual. Thanks a lot for your help.
Effectively, yes. It's actually a wrapper around either awvSimplePlotWaveform or awvPlotExpression - which are all very similar to awvPlotWaveform.
Thanks for the details !
I have another question regarding the plot. I would like to change the defaults size of the graph being saved.
I tried creating a window using the syntax you gave a few times :
awvCreatePlotWindow(?bBox list(100:100 1000:600))
But when I open the plot image, it is still a 800 x 600 graph.
I also tweaked my .cdsenv to make Viva to plot to large window using the following settings :
viva.graphFrame width string "1920"viva.graphFrame height string "1152"
It works, when I run OCEAN without the -nograph option, the graph is plotted to a big OCEAN window, but it still saved to a 800 x 600px.
I'm running Cadence 126.96.36.199