On Aug 1, 2:22 pm, sirjee <hitechpun...@gmail.com> wrote: > hello; > > i m facing a problem in handling events on change of value of > environment variable in a toolCANoe. > > class CANoeEvents: > def OnChange(self,value): > print "value of environment variable has changed" > def OnOpen(self,App): > print "opening Application" > > App_Event = DispatchWithEvents('CANoe.Application',CANoeEvents) > time.sleep(2) > App_Event.Open("C:\projectConfig.cfg") # printd "opening Application" > and event handled properly. > .......(now a code file runs in thecanoein which value of > environment variable called dummy is changed during execution. Just > like OnOpen; OnChange is defined in specification which should be > called on change of environment variable.But it is not happening.) > while (<some condition>): > myenvVar = App_Event.Environment.GetVariable("dummy") > > The VB does it very easily and defines a subroutine called : > Sub myenvVar _OnChange(value) > print "value of environment variable has changed" > End Sub > //////////////////////////////////////////////////however the > alternative for subroutine for OnOpen in VB (defined below) works fine > as shown above in python. > Sub AppEvent_OnOpen(App) > print "opening Application" > End Sub > > for VB; all this stuff is cake work.... object_eventname subroutine > and done.....what in python?
hi all; strange !!!! i got answer to the problem posted by me only. now I have very good control of CANoe tool from python.... if anybody faces any problem wrt automation of CANoe tool using python; do contact me. here actual problem lied in analysing and implementing com heirarchy. ( which is really bit cumbersome) onChange event is associated with App_Event.Environment.GetVariable ("dummy") object. So we need to associate separate class with this object and then write onChange function: class evtClass: def __init__(self): print "initializing event class" def OnChange(self,value): print "value of environment variable changing" print "changed value of environment variable is" print value see = App_Event.Environment.GetVariable("dummy") see_temp=DispatchWithEvents(see,evtClass) this will solve problem. So we need to create separate classes for events associated with separate objects. regards sirjee -- http://mail.python.org/mailman/listinfo/python-list