I've written an Ocean script that works fine from CIW and ADE L defined as an output: ocnEval("./noise_summary.ocn").
However when trying to plug it in as an "OCEAN script" output in ADEXL, it cannot catch the session axlGetWindowSession() - actually, checking the Job.log, it doesn't even manage to do a hiGetCurrentWindow(). Giving directly the "usual" session name (e.g. "session0") doesn't work either.
If I do a dummy change to my script (e.g. changing a comment) and come back to ADEXL clicking on the "Re-evaluate results" button, I get my summary for the last corner run... (and of course, "session0" as the session name).Is there a way to get the session name so that my script is executed through each corner in ADE XL?
Thanks for your help,Kind regards,Matthieu
In reply to Andrew Beckett:
Thanks for your quick answer!
I'm indeed using openResults(). My script looks like this:
resultDir = openResults() V=listToVector(parseString(resultDir "/")) sdb = axlGetMainSetupDB(axlGetWindowSession()) ;# session database historyname=V ;# ="Interactive.xxx" hist=axlGetHistoryEntry(sdb historyname) rdbPath=axlGetHistoryResults(hist) rdb=axlReadResDB(rdbPath) ;# results database pt = rdb->point(1) corner = cadr(pt->outputs())->cornerName test = caadr(axlGetTests(sdb)) ;# should be the same as V resultDir_dd = axlGetPointRunDir(hist test ?cornerName corner ?designPointId 1) resultDir = strcat(resultDir_dd "/psf")
So basically, I need the sdb to access the "corner" and "test" informations for my summary, but it's my 1st ocn script with ADEXL... maybe you'd know of a simpler / more straightforward way?
In reply to Matth83:
I don't understand why you need to do any of this - if you didn't do any of those statements, the results would already be open for the specific point already. So you can immediately start doing things like v("/out" ?result 'tran) or VT("/mynode") or whatever.
Actually, my script creates a summary file for each corner. The file name is defined by the corner&test names which I can get only through axlSkill functions (as used in my previous post) that require a session name. Is there a way to get the corner and the test names without these functions? (almost all axlSkill functions require the session database handle).
I couldn't get the axlGetCornerNameForCurrentPointInRun() function running (even placed at the beginning of my script).
That works for me - I can do:
sprintf(fileName "./myFile%s_%s.out" axlGetCornerNameForCurrentPointInRun() axlGetTemperatureForCurrentPointInRun())
and then the filename includes both the corner name (if it's a corner, or "" otherwise), and the temperature. You can also access design variables using VAR("varName") (bear in mind that the VAR() will return a float most likely. so you might need to convert to a string.