SKILL update user interface

S

S. Badel

Guest
hi all,

I have SKILL scripts which take long time to run on large designs. These scripts write
output to a log file, which i'd like to be able to display as the script goes on (tail)
to show the status in real-time.

I tried using a viewfile window for this, but as the SKILL script is running this window
is not updated (nor is any window belonging to the icfb process, which is quite annoying too).

So, is there a way to update the user interface just like the tcl/tk update command for example?

stéphane
 
"S. Badel" <stephane.badel@REMOVETHISepfl.ch> writes:

So, is there a way to update the user interface just like the tcl/tk
update command for example?
I wonder if (hiUpdate) could help you.

A+

--
Jean-Marc
 
How about in another Xwindow ... " tail -f <FILENEME>"


-- Gerry



"S. Badel" <stephane.badel@REMOVETHISepfl.ch> wrote in message
news:42f097e6$1@epflnews.epfl.ch...
hi all,

I have SKILL scripts which take long time to run on large designs. These
scripts write
output to a log file, which i'd like to be able to display as the script
goes on (tail)
to show the status in real-time.

I tried using a viewfile window for this, but as the SKILL script is
running this window
is not updated (nor is any window belonging to the icfb process, which is
quite annoying too).

So, is there a way to update the user interface just like the tcl/tk
update command for example?

stéphane
 
In article <42f097e6$1@epflnews.epfl.ch>,
stephane.badel@REMOVETHISepfl.ch says...
I have SKILL scripts which take long time to run on large designs. These scripts write
output to a log file, which i'd like to be able to display as the script goes on (tail)
to show the status in real-time.
Have you looked at the ipc* routines? I tried to solve my "execute OCEAN
scripts from inside DFII" by using the ipcSkillProcess. Problem was that
DFII executed the next line in the OCEAN script before the previous had
returned, so I would have to write my own synchronizing mechanism. There
is a fairly good example in the documentation with sourcecode for an
external program in c. If you want to use Tcl instead, you have to load
package TclX because you want to communicate with descriptors other than
stdout and stdin.

--
Svenn
 
S. Badel wrote:

hi all,

I have SKILL scripts which take long time to run on large designs. These
scripts write
output to a log file, which i'd like to be able to display as the script
goes on (tail)
to show the status in real-time.

I tried using a viewfile window for this, but as the SKILL script is
running this window
is not updated (nor is any window belonging to the icfb process, which
is quite annoying too).

So, is there a way to update the user interface just like the tcl/tk
update command for example?

stéphane
arglist 'view

Do you mean the "autoUpdate" argument ?
 
Yes... you need to use autoUpdate argument...
Example:
(progn
,(win = (view file winSpec title autoUpdate))
)


thanks,
ronald
 
Stéphane:
;tail the output.log file
hiEnableTailViewfile(view("yourlogfile"))
---
Erik

S. Badel wrote:
hi all,

I have SKILL scripts which take long time to run on large designs. These scripts write
output to a log file, which i'd like to be able to display as the script goes on (tail)
to show the status in real-time.

I tried using a viewfile window for this, but as the SKILL script is running this window
is not updated (nor is any window belonging to the icfb process, which is quite annoying too).

So, is there a way to update the user interface just like the tcl/tk update command for example?

stéphane
 
I know that, my problem is that while the SKILL is running the user interface
is frozen. it's kind of annoying.

thanks,
stéphane


Erik Wanta wrote:
Stéphane:
;tail the output.log file
hiEnableTailViewfile(view("yourlogfile"))
---
Erik

S. Badel wrote:

hi all,

I have SKILL scripts which take long time to run on large designs. These scripts write
output to a log file, which i'd like to be able to display as the script goes on (tail)
to show the status in real-time.

I tried using a viewfile window for this, but as the SKILL script is running this window
is not updated (nor is any window belonging to the icfb process, which is quite annoying too).

So, is there a way to update the user interface just like the tcl/tk update command for example?

stéphane
 
The fundamental problem is due to SKILL not being multi-threaded.

I don't think there's really any way around this unless you can allow the
toplevel a look in every now and again. I've done this kind of thing before by
doing:

procedure(doPart1()
.....
.....
hiRegTimer("doPart2()" 0)
)

procedure(doPart2()
....
....
hiRegTimer("doPart3()" 0)
)

etc. Or of course some code which refers to some data structure to keep track
of how far it has got. Effectively you're implementing some kind of cooperative
multi-tasking; giving the "OS" (i.e. DFII) a chance to update its windows,
before the SKILL code gets restarted via the timer.

Regards,

Andrew.

On Tue, 09 Aug 2005 10:48:08 +0200, "S. Badel"
<stephane.badel@REMOVETHISepfl.ch> wrote:

I know that, my problem is that while the SKILL is running the user interface
is frozen. it's kind of annoying.

thanks,
stéphane


Erik Wanta wrote:
Stéphane:
;tail the output.log file
hiEnableTailViewfile(view("yourlogfile"))
---
Erik

S. Badel wrote:

hi all,

I have SKILL scripts which take long time to run on large designs. These scripts write
output to a log file, which i'd like to be able to display as the script goes on (tail)
to show the status in real-time.

I tried using a viewfile window for this, but as the SKILL script is running this window
is not updated (nor is any window belonging to the icfb process, which is quite annoying too).

So, is there a way to update the user interface just like the tcl/tk update command for example?

stéphane
 
why not run the Skill code as separate batch process?

That way you could still use Opus
while a separate process running Skill and shows it in the log window.

This is what I do:
(ipcBeginProcess (strcat "exec " fullCmd) "" "" "" "" (strcat "+"
logFile)))
(ipcWaitForProcess cid)
(printf "tool: Batch %s process %d started %s\n" fullCmd
cid->processId (getCurrentTime))
;; open log window to check logfile
window = (view logFile winSpec title autoUpdate)

The only time your user interface is frozen is the time between
ipcBeginProcess and ipcWaitForProcess.. Usually under 2 seconds.

thanks,
ronald


S. Badel wrote:
I know that, my problem is that while the SKILL is running the user interface
is frozen. it's kind of annoying.

thanks,
stéphane
 
Or run the view() in a separate process. In which case you may prefer to use an
rxvt terminal running "less".

rkdocc@yahoo.com wrote:
why not run the Skill code as separate batch process?

That way you could still use Opus
while a separate process running Skill and shows it in the log window.

This is what I do:
(ipcBeginProcess (strcat "exec " fullCmd) "" "" "" "" (strcat "+"
logFile)))
(ipcWaitForProcess cid)
(printf "tool: Batch %s process %d started %s\n" fullCmd
cid->processId (getCurrentTime))
;; open log window to check logfile
window = (view logFile winSpec title autoUpdate)

The only time your user interface is frozen is the time between
ipcBeginProcess and ipcWaitForProcess.. Usually under 2 seconds.

thanks,
ronald


S. Badel wrote:

I know that, my problem is that while the SKILL is running the user interface
is frozen. it's kind of annoying.
 

Welcome to EDABoard.com

Sponsor

Back
Top