Exemple #1
0
    def initialize(self):
        """
        Initializes this SLClient.
        """
        if self.slconn.getSLAddress() is None:
            message = "no SeedLink server specified"
            raise SeedLinkException(message)

        if self.verbose >= 2:
            self.ppackets = True
        if self.slconn.getSLAddress().startswith(":"):
            self.slconn.setSLAddress("127.0.0.1" + self.slconn.getSLAddress())
        if self.streamfile is not None:
            self.slconn.readStreamList(self.streamfile, self.selectors)
        if self.multiselect is not None:
            self.slconn.parseStreamlist(self.multiselect, self.selectors)
        else:
            if self.streamfile is None:
                self.slconn.setUniParams(self.selectors, -1, None)
        if self.statefile is not None:
            self.slconn.setStateFile(self.statefile)
        else:
            if self.begin_time is not None:
                self.slconn.setBeginTime(self.begin_time)
            if self.end_time is not None:
                self.slconn.setEndTime(self.end_time)
Exemple #2
0
 def __init__(self, bytes=None, offset=None):
     if bytes is None or offset is None:
         return
     if len(bytes) - offset < self.SLHEADSIZE + self.SLRECSIZE:
         msg = "not enough bytes in sub array to construct a new SLPacket"
         raise SeedLinkException(msg)
     self.slhead = bytes[offset:offset + self.SLHEADSIZE]
     self.msrecord = bytes[offset + self.SLHEADSIZE:offset +
                           self.SLHEADSIZE + self.SLRECSIZE]
Exemple #3
0
    def appendBytes(self, bytes_):
        """
        Appends bytes to the receive buffer after the last received data.
        """
        if self.bytesRemaining() < len(bytes_):
            msg = "not enough bytes remaining in buffer to append new bytes"
            raise SeedLinkException(msg)

        self.databuf[self.recptr:self.recptr + len(bytes_)] = bytes_
        self.recptr += len(bytes_)
Exemple #4
0
 def appendBytes(self, bytes):
     """
     Appends bytes to the receive buffer after the last received data.
     """
     if self.bytesRemaining() < len(bytes):
         msg = "not enough bytes remaining in buffer to append new bytes"
         raise SeedLinkException(msg)
     ## for-while
     for i in range(len(bytes)):
         self.databuf[self.recptr] = bytes[i]
         self.recptr += 1
Exemple #5
0
    def getPacket(self):
        """
        Returns last received packet.

        :return: last received packet if data buffer contains a full packet to
            send.
        :raise: SeedLinkException if there is not a packet ready to send.

        See also: :meth:`packetAvailable`
        """
        if not self.packetAvailable():
            raise SeedLinkException("SLPacket not available to send")
        return SLPacket(self.databuf, self.sendptr)
Exemple #6
0
    def isEnd(self):
        """
        Check for SeedLink END packet.

        :return: true if next send packet is a SeedLink END packet

        :raise: SeedLinkException if there are not enough bytes to determine
        """
        if self.recptr - self.sendptr < len(SLPacket.ENDSIGNATURE):
            msg = "not enough bytes to determine packet type"
            raise SeedLinkException(msg)
        return self.databuf[self.sendptr: self.sendptr +
                            len(SLPacket.ENDSIGNATURE)].lower() == \
            SLPacket.ENDSIGNATURE.lower()
Exemple #7
0
 def getMSRecord(self):
     # following from  obspy.mseed.tests.test_libmseed.py -> test_msrParse
     msr = clibmseed.msr_init(C.POINTER(MSRecord)())
     pyobj = np.array(self.msrecord)
     errcode = \
             clibmseed.msr_parse(pyobj.ctypes.data_as(C.POINTER(C.c_char)),
             len(pyobj), C.pointer(msr), -1, 1, 1)
     if errcode != 0:
         msg = "failed to decode mini-seed record: msr_parse errcode: %s"
         raise SeedLinkException(msg % (errcode))
     #print "DEBUG: msr:", msr
     msrecord_py = msr.contents
     #print "DEBUG: msrecord_py:", msrecord_py
     return msrecord_py
Exemple #8
0
    def packetIsInfo(self):
        """
        Check for SeedLink INFO packet.

        :return: true if next send packet is a SeedLink INFO packet

        :raise SeedLinkException: if there are not enough bytes to determine
            packet type
        """
        if self.recptr - self.sendptr < len(SLPacket.INFOSIGNATURE):
            msg = "not enough bytes to determine packet type"
            raise SeedLinkException(msg)
        return self.databuf[self.sendptr: self.sendptr +
                            len(SLPacket.INFOSIGNATURE)].lower() == \
            SLPacket.INFOSIGNATURE.lower()  # @UndefinedVariable