Up

 

  

 
Source Code
from Scorpion import RegisterCallback,PluginChanged,GetControlByHandle

class InspectionCounterPlugin(object):
  '''
  InspectionCounterPlugin
  roar@tordivel.no
  12jul2011
  requirements : Scorpion 8.4.0.487 or higher
  '''
  def __init__(self,cntr,name):
    self.name=name

    cntr.deleteControls()  #delete previous added controls if any

    self.count = 0
    self.panel=cntr.addControl('Panel',0,0)
    self.panel.align=5  #client
    self.panel.caption='Inspections=%d' % self.count
    self.panel.font.size = 15

    RegisterCallback('Actions.BeforeStart',self.beforeStart)
    RegisterCallback('Actions.AfterStop',self.afterStop)
    RegisterCallback('System.AfterInspect',self.afterInspect)

    print self,'__init__'

  def __del__(self):

    print self,'__del__'

  def __str__(self):
    '''
    return a unique persistance name for host application storage
    '''
    return '%s_%s'%(self.__class__.__name__,self.name)

  def getConfig(self):
    '''
    returns plugin configuration as string
    '''
    from SPB import CreateSpb
    spb=CreateSpb()
    #create a spb instance, populate with the plugin configuration
    #and return the xml string
    spb.setInt('version',1)
    spb.setInt('count',self.count)
    return spb.xml

  def setConfig(self,value):
    '''
    set plugin configuration from the string 'value'
    '''
    from SPB import CreateSpb
    spb=CreateSpb(value)
    # TODO: extract plugin configuration from the spb object
    if spb.getInt('version')>0:
      if spb.getInt('count')<>None:
        self.count=spb.getInt('count')

  def beforeStart(self):
    '''
    reset inspection counter
    '''
    self.count=0
    self.panel.caption='Reset on Start'

  def afterStop(self):
    '''
    signal stopped
    '''
    self.panel.caption='Inspections while running was %d'%self.count


  def afterInspect(self,Result):
    '''
    increment counter and update panel
    '''
    print self,'afterInspect'
    self.count+=1
    self.panel.caption='Inspections=%d' % self.count


def CreatePlugin(hWnd, name=''):
  '''
  Scorpion Plugin Stub - Required
  '''
  cntr=GetControlByHandle(hWnd)
  return InspectionCounterPlugin(cntr,name)

Scorpion Vision Version XV  : Build 764 - Date: 20200529
Scorpion Vision Software® is a registered trademark of Tordivel AS.
Copyright © 2000 - 2020 Tordivel AS.