]> SALOME platform Git repositories - modules/superv.git/blobdiff - examples/GraphStream.py
Salome HOME
*** empty log message ***
[modules/superv.git] / examples / GraphStream.py
index 4941141e06012573f3ab6ab86a3f6b71ad1173f2..3ceeebbd6dbe45bf9382c6748dff3581058a94e0 100644 (file)
 
 from SuperV import *
 # Graph creation 
-GraphStream = Graph( 'GraphStream' )
+GraphStream = StreamGraph( 'GraphStream' )
 GraphStream.SetName( 'GraphStream' )
 GraphStream.SetAuthor( '' )
-GraphStream.SetComment( '' )
+GraphStream.SetComment( 'Test of DataStreamPorts in FactoryNodes and ComputingNode' )
 GraphStream.Coords( 0 , 0 )
 
 # Creation of Factory Nodes
 
-Add = GraphStream.FNode( 'AddComponent' , 'AddComponent' , 'Add' )
+NewDataStream = GraphStream.FNode( 'DataStreamFactory' , 'DataStreamFactory' , 'NewDataStream' )
+NewDataStream.SetName( 'NewDataStream' )
+NewDataStream.SetAuthor( '' )
+NewDataStream.SetContainer( 'FactoryServer' )
+NewDataStream.SetComment( '' )
+NewDataStream.Coords( 0 , 0 )
+INewDataStreamGate = NewDataStream.GetInPort( 'Gate' )
+ONewDataStreamDataStream = NewDataStream.GetOutPort( 'DataStream' )
+ONewDataStreamGate = NewDataStream.GetOutPort( 'Gate' )
+
+Add = GraphStream.FNode( 'DataStreamFactory' , 'DataStreamFactory' , 'Add' )
 Add.SetName( 'Add' )
 Add.SetAuthor( '' )
 Add.SetContainer( 'FactoryServer' )
-Add.SetComment( 'Add from AddComponent' )
+Add.SetComment( 'Add from DataStreamFactory from DataStreamComponent' )
 Add.Coords( 15 , 241 )
-Add.InDataStreamPort( 'istream' , 'long' )
-Add.OutDataStreamPort( 'ostream' , 'long' )
-Add.OutDataStreamPort( 'Ostream' , 'long' )
-
-Sub = GraphStream.FNode( 'SubComponent' , 'SubComponent' , 'Sub' )
+IAddx = Add.GetInPort( 'x' )
+IAddy = Add.GetInPort( 'y' )
+IAddGate = Add.GetInPort( 'Gate' )
+OAddz = Add.GetOutPort( 'z' )
+OAddGate = Add.GetOutPort( 'Gate' )
+IAddistream = Add.GetInStreamPort( 'istream' )
+OAddostream = Add.GetOutStreamPort( 'ostream' )
+OAddOStream = Add.GetOutStreamPort( 'OStream' )
+
+Sub = GraphStream.FNode( 'DataStreamFactory' , 'DataStreamFactory' , 'Sub' )
 Sub.SetName( 'Sub' )
 Sub.SetAuthor( '' )
 Sub.SetContainer( 'FactoryServer' )
-Sub.SetComment( 'Sub from SubComponent' )
+Sub.SetComment( 'Sub from DataStreamFactory from DataStreamComponent' )
 Sub.Coords( 227 , 99 )
-Sub.InDataStreamPort( 'istream' , 'long' )
-Sub.InDataStreamPort( 'Istream' , 'long' )
-
-Mul = GraphStream.FNode( 'MulComponent' , 'MulComponent' , 'Mul' )
+ISubx = Sub.GetInPort( 'x' )
+ISuby = Sub.GetInPort( 'y' )
+ISubGate = Sub.GetInPort( 'Gate' )
+OSubz = Sub.GetOutPort( 'z' )
+OSubGate = Sub.GetOutPort( 'Gate' )
+ISubistream = Sub.GetInStreamPort( 'istream' )
+ISubIstream = Sub.GetInStreamPort( 'Istream' )
+
+Mul = GraphStream.FNode( 'DataStreamFactory' , 'DataStreamFactory' , 'Mul' )
 Mul.SetName( 'Mul' )
 Mul.SetAuthor( '' )
 Mul.SetContainer( 'FactoryServer' )
-Mul.SetComment( 'Mul from MulComponent' )
+Mul.SetComment( 'Mul from DataStreamFactory from DataStreamComponent' )
 Mul.Coords( 444 , 241 )
+IMulx = Mul.GetInPort( 'x' )
+IMuly = Mul.GetInPort( 'y' )
+IMulGate = Mul.GetInPort( 'Gate' )
+OMulz = Mul.GetOutPort( 'z' )
+OMulGate = Mul.GetOutPort( 'Gate' )
 
-Div = GraphStream.FNode( 'DivComponent' , 'DivComponent' , 'Div' )
+Div = GraphStream.FNode( 'DataStreamFactory' , 'DataStreamFactory' , 'Div' )
 Div.SetName( 'Div' )
 Div.SetAuthor( '' )
 Div.SetContainer( 'FactoryServer' )
-Div.SetComment( 'Div from DivComponent' )
+Div.SetComment( 'Div from DataStreamFactory from DataStreamComponent' )
 Div.Coords( 634 , 98 )
-Div.OutDataStreamPort( 'ostream' , 'long' )
+IDivx = Div.GetInPort( 'x' )
+IDivy = Div.GetInPort( 'y' )
+IDivGate = Div.GetInPort( 'Gate' )
+ODivz = Div.GetOutPort( 'z' )
+ODivGate = Div.GetOutPort( 'Gate' )
+ODivostream = Div.GetOutStreamPort( 'ostream' )
+
+# Creation of Computing Nodes
+StreamAdd_ServiceinParameter = []
+StreamAdd_ServiceinParameter.append( SALOME_ModuleCatalog.ServicesParameter( 'objref' , 'this' ) )
+StreamAdd_ServiceinParameter.append( SALOME_ModuleCatalog.ServicesParameter( 'long' , 'x' ) )
+StreamAdd_ServiceinParameter.append( SALOME_ModuleCatalog.ServicesParameter( 'long' , 'y' ) )
+StreamAdd_ServiceoutParameter = []
+StreamAdd_ServiceoutParameter.append( SALOME_ModuleCatalog.ServicesParameter( 'long' , 'z' ) )
+StreamAdd_ServiceinStreamParameter = []
+StreamAdd_ServiceinStreamParameter.append( SALOME_ModuleCatalog.ServicesDataStreamParameter( SALOME_ModuleCatalog.DATASTREAM_INTEGER , 'istream' , SALOME_ModuleCatalog.DATASTREAM_ITERATIVE ) )
+StreamAdd_ServiceoutStreamParameter = []
+StreamAdd_ServiceoutStreamParameter.append( SALOME_ModuleCatalog.ServicesDataStreamParameter( SALOME_ModuleCatalog.DATASTREAM_INTEGER , 'ostream' , SALOME_ModuleCatalog.DATASTREAM_ITERATIVE ) )
+StreamAdd_ServiceoutStreamParameter.append( SALOME_ModuleCatalog.ServicesDataStreamParameter( SALOME_ModuleCatalog.DATASTREAM_INTEGER , 'OStream' , SALOME_ModuleCatalog.DATASTREAM_ITERATIVE ) )
+StreamAdd_Service = SALOME_ModuleCatalog.Service( 'StreamAdd' , StreamAdd_ServiceinParameter , StreamAdd_ServiceoutParameter , StreamAdd_ServiceinStreamParameter , StreamAdd_ServiceoutStreamParameter , 0 , 0 )
+StreamAdd = GraphStream.CNode( StreamAdd_Service )
+StreamAdd.SetName( 'StreamAdd' )
+StreamAdd.SetAuthor( '' )
+StreamAdd.SetComment( '' )
+StreamAdd.Coords( 0 , 0 )
+IStreamAddthis = StreamAdd.GetInPort( 'this' )
+IStreamAddx = StreamAdd.GetInPort( 'x' )
+IStreamAddy = StreamAdd.GetInPort( 'y' )
+IStreamAddGate = StreamAdd.GetInPort( 'Gate' )
+OStreamAddz = StreamAdd.GetOutPort( 'z' )
+OStreamAddGate = StreamAdd.GetOutPort( 'Gate' )
+IStreamAddistream = StreamAdd.GetInStreamPort( 'istream' )
+OStreamAddostream = StreamAdd.GetOutStreamPort( 'ostream' )
+OStreamAddOStream = StreamAdd.GetOutStreamPort( 'OStream' )
 
 # Creation of Links
-Addz = Add.Port( 'z' )
-Suby = GraphStream.Link( Addz , Sub.Port( 'y' ) )
-Suby.AddCoord( 1 , 189 , 207 )
-Suby.AddCoord( 2 , 189 , 350 )
-
-Muly = GraphStream.Link( Addz , Mul.Port( 'y' ) )
-
-Addostream = Add.Port( 'ostream' )
-Subistream = GraphStream.Link( Addostream , Sub.Port( 'istream' ) )
-Subistream.AddCoord( 1 , 201 , 237 )
-Subistream.AddCoord( 2 , 200 , 378 )
-
-AddOstream = Add.Port( 'Ostream' )
-SubIstream = GraphStream.Link( AddOstream , Sub.Port( 'Istream' ) )
-SubIstream.AddCoord( 1 , 212 , 267 )
-SubIstream.AddCoord( 2 , 211 , 409 )
-
-Subz = Sub.Port( 'z' )
-Mulx = GraphStream.Link( Subz , Mul.Port( 'x' ) )
-Mulx.AddCoord( 1 , 420 , 322 )
-Mulx.AddCoord( 2 , 419 , 180 )
-
-Divx = GraphStream.Link( Subz , Div.Port( 'x' ) )
-
-Mulz = Mul.Port( 'z' )
-Divy = GraphStream.Link( Mulz , Div.Port( 'y' ) )
-Divy.AddCoord( 1 , 622 , 207 )
-Divy.AddCoord( 2 , 623 , 320 )
-
-# Creation of Input datas
-Addx = Add.Input( 'x' , 3)
-Addy = Add.Input( 'y' , 4.5)
-Subx = Sub.Input( 'x' , 1.5)
-Addistream = Add.Input( 'istream' , 1)
-
-# Creation of Output variables
-AddFuncValue = Add.Port( 'FuncValue' )
-Divz = Div.Port( 'z' )
-Divostream = Div.Port( 'ostream' )
+LNewDataStreamDataStreamStreamAddthis = GraphStream.Link( ONewDataStreamDataStream , IStreamAddthis )
+
+LAddzSuby = GraphStream.Link( OAddz , ISuby )
+LAddzSuby.AddCoord( 1 , 189 , 207 )
+LAddzSuby.AddCoord( 2 , 189 , 350 )
+
+LAddzMuly = GraphStream.Link( OAddz , IMuly )
+
+LAddostreamSubistream = GraphStream.Link( OAddostream , ISubistream )
+LAddostreamSubistream.AddCoord( 1 , 201 , 237 )
+LAddostreamSubistream.AddCoord( 2 , 200 , 378 )
+
+LAddOStreamSubIstream = GraphStream.Link( OAddOStream , ISubIstream )
+LAddOStreamSubIstream.AddCoord( 1 , 212 , 267 )
+LAddOStreamSubIstream.AddCoord( 2 , 211 , 409 )
+
+LSubzMulx = GraphStream.Link( OSubz , IMulx )
+LSubzMulx.AddCoord( 1 , 420 , 322 )
+LSubzMulx.AddCoord( 2 , 419 , 180 )
+
+LSubzDivx = GraphStream.Link( OSubz , IDivx )
+
+LMulzDivy = GraphStream.Link( OMulz , IDivy )
+LMulzDivy.AddCoord( 1 , 622 , 207 )
+LMulzDivy.AddCoord( 2 , 623 , 320 )
+
+# Input datas
+IAddx.Input( 3 )
+IAddy.Input( 7 )
+ISubx.Input( 1 )
+IStreamAddx.Input( 1 )
+IStreamAddy.Input( 2 )
+IAddistream.Input( 1 )
+
+# Output Ports of the graph
+#ODivz = Div.GetOutPort( 'z' )
+#OStreamAddz = StreamAdd.GetOutPort( 'z' )
+
+GraphStream.PrintPorts()
+GraphStream.IsValid()
+status = GraphStream.IsExecutable()
+if status == 0 :
+    print 'Input of port IStreamAddistream is required : Ok'
+else :
+    print 'Input of port IStreamAddistream is required : ERROR'
+# Following input is required :
+IStreamAddistream.Input( 1 )
+GraphStream.IsExecutable()
+
+GraphStream.Run()
+GraphStream.DoneW()
+GraphStream.PrintPorts()
+GraphStream.State()
+
+GraphStream.Export('/tmp/GraphStream.xml')
 
+GraphStream = StreamGraph( '/tmp/GraphStream.xml' )
 GraphStream.Run()
 GraphStream.DoneW()
 GraphStream.PrintPorts()
+GraphStream.State()