Salome HOME
CCAR: add a python component PYCOMPO which uses NUMPY API to DSC
[samples/dsccode.git] / src / PYCOMPO / PYCOMPO.py
1 import sys,traceback,os
2 import DSCCODE__POA
3 import calcium
4 import dsccalcium
5 import numpy
6
7 class PYCOMPO(DSCCODE__POA.PYCOMPO,dsccalcium.PyDSCComponent):
8   """
9      To be identified as a SALOME component this Python class
10      must have the same name as the component, inherit omniorb
11      class DSCCODE__POA.PYCOMPO and DSC class dsccalcium.PyDSCComponent
12      that implements DSC API.
13   """
14   def __init__ ( self, orb, poa, contID, containerName, instanceName, interfaceName ):
15     print "PYCOMPO.__init__: ", containerName, ';', instanceName,interfaceName
16     dsccalcium.PyDSCComponent.__init__(self, orb, poa,contID,containerName,instanceName,interfaceName)
17
18   def init_service(self,service):
19     print "init_service:",service
20     calcium.create_calcium_port(self.proxy,"tabin","CALCIUM_double","IN","I");
21     calcium.create_calcium_port(self.proxy,"tabout","CALCIUM_double","OUT","I");
22     return True
23
24   def run( self):
25     print "PYCOMPO.run"
26     ndim=10
27
28     force=calcium.doubleArray(ndim)
29     for i in xrange(ndim):
30       force[i]=i
31     err=calcium.cp_edb(self.proxy,calcium.CP_ITERATION ,0.,1,"tabout",ndim,force)
32
33     #val=calcium.doubleArray(ndim)
34     val=numpy.zeros(ndim,'d')
35     err,t,i,nval=calcium.cp_ldb(self.proxy,calcium.CP_ITERATION,0.,0.,1,"tabin",ndim,val)
36     print err,t,i,nval
37     #for i in xrange(ndim):
38     #  print val[i],
39     #print
40     print val
41
42     print "End of PYCOMPO.run"
43     sys.stdout.flush()
44
45