def __init__(self, name, max_attachments=1, logger=None ):
     OutPort.__init__(self, name, BULKIO.dataSDDS, OutSDDSPort.TRANSFER_TYPE , logger )
     self.max_attachments = max_attachments
     self.attachedGroup = {} # key=connection_id,  value=attach_id
     self.lastStreamData = None
     self.lastName = None
     self.defaultStreamSRI = sri.create()
     self.defaultTime = timestamp.now()
Exemplo n.º 2
0
 def pushSRI(self, xdelta=1, streamID='TestStreamID', mode=0, kw=[]):
     sri = BULKIO.StreamSRI(hversion=1,
                            xstart=0.0,
                            xdelta=xdelta,
                            xunits=1,
                            subsize=0,
                            ystart=0.0,
                            ydelta=0.0,
                            yunits=0,
                            mode=mode,
                            streamID=streamID,
                            blocking=False,
                            keywords=kw)
     self.input_vita49_port.pushSRI(sri, timestamp.now())
Exemplo n.º 3
0
    def setupComponent(self, endianness=BIG_ENDIAN, pkts_per_push=1, sri=None):
        # Set properties
        self.comp.interface = 'lo'
        compDataSddsIn = self.comp.getPort('dataSddsIn')
        self.comp.advanced_optimizations.sdds_pkts_per_bulkio_push = pkts_per_push

        if sri is None:
            kw = [
                CF.DataType("dataRef",
                            ossie.properties.to_tc_value(endianness, 'long'))
            ]
            sri = BULKIO.StreamSRI(hversion=1,
                                   xstart=0.0,
                                   xdelta=1.0,
                                   xunits=1,
                                   subsize=0,
                                   ystart=0.0,
                                   ydelta=0.0,
                                   yunits=0,
                                   mode=0,
                                   streamID='TestStreamID',
                                   blocking=False,
                                   keywords=kw)

        compDataSddsIn.pushSRI(sri, timestamp.now())

        streamDef = BULKIO.SDDSStreamDefinition('id', BULKIO.SDDS_SI,
                                                self.uni_ip, 0, self.port,
                                                8000, True, 'testing')

        # Try to attach
        self.attachId = ''

        try:
            self.attachId = compDataSddsIn.attach(streamDef, 'test')
        except:
            print "ATTACH FAILED"
            attachId = ''

        self.assertTrue(self.attachId != '',
                        "Failed to attach to SourceSDDS component")
 def pushPacket(self, URL, EOS, streamID):
     self.pushPacket( URL, timestamp.now(), EOS, streamID )
Exemplo n.º 5
0
 def pushSRI(self,xdelta=1,streamID='TestStreamID',mode=0,kw=[]):
     sri = BULKIO.StreamSRI(hversion=1, xstart=0.0, xdelta=xdelta, xunits=1, subsize=0, ystart=0.0, ydelta=0.0, yunits=0, mode=mode, streamID=streamID, blocking=False, keywords=kw)
     self.input_vita49_port.pushSRI(sri,timestamp.now())          
Exemplo n.º 6
0
    def testNonConformingConformingSwitch(self):
        self.setupComponent()
        
        # Get ports
        compDataShortOut_out = self.comp.getPort('dataShortOut')
        compDataSddsIn = self.comp.getPort('dataSddsIn')
        
        # Connect components
        self.comp.connect(self.sink, providesPortName='shortIn')
            
        # Start components
        self.comp.start()
        
        # Create data
        fakeData = [x for x in range(0, 512)]
        pktNum = 0
        
        sr=1e6
        xdelta_ns=int(1/(sr*2) * 1e9)
        time_ns=0
        
        recSRI = False
        # No time slips here
        while pktNum < 100:
            # Create data
            h = Sdds.SddsHeader(pktNum, FREQ=(sr*73786976294.838211), TT=(time_ns*4), CX=1)
            p = Sdds.SddsShortPacket(h.header, fakeData)
            p.encode()
            self.userver.send(p.encodedPacket)
            pktNum = pktNum + 1
            
            if pktNum != 0 and pktNum % 32 == 31:
                pktNum = pktNum + 1
                
            time_ns = time_ns + 512*xdelta_ns
            
        self.assertEqual(self.comp.status.time_slips, 0, "There should be no time slips!")
        
        # Stop the component, detach, then re-attach a new stream that is using the conforming sampleRate
        self.comp.stop()
        
        compDataSddsIn.detach(self.attachId)
        
        kw = [CF.DataType("dataRef", ossie.properties.to_tc_value(BIG_ENDIAN, 'long'))]
        sri = BULKIO.StreamSRI(hversion=1, xstart=0.0, xdelta=1.0, xunits=1, subsize=0, ystart=0.0, ydelta=0.0, yunits=0, mode=0, streamID='TestStreamID2', blocking=False, keywords=kw)
            
        compDataSddsIn.pushSRI(sri,timestamp.now())  
        
        streamDef = BULKIO.SDDSStreamDefinition('id2', BULKIO.SDDS_SI, self.uni_ip, 0, self.port, 8000, True, 'testing')
        self.attachId = compDataSddsIn.attach(streamDef, 'test') 

        self.comp.start()
        # Create data
        fakeData = [x for x in range(0, 512)]
        pktNum = 0
        
        sr=1e6
        xdelta_ns=int(1/(sr) * 1e9)
        time_ns=0
        
        recSRI = False
        # No time slips here
        while pktNum < 100:
            # Create data
            h = Sdds.SddsHeader(pktNum, FREQ=(sr*73786976294.838211), TT=(time_ns*4), CX=1)
            p = Sdds.SddsShortPacket(h.header, fakeData)
            p.encode()
            self.userver.send(p.encodedPacket)
            pktNum = pktNum + 1
            
            if pktNum != 0 and pktNum % 32 == 31:
                pktNum = pktNum + 1
                
            time_ns = time_ns + 512*xdelta_ns
            
        self.assertEqual(self.comp.status.time_slips, 0, "There should be no time slips!")