wu_xinjun
2022-03-25 6e6504475a0ef865ed1d47f78c89f56762965b3c
src/microwave/servers.py
@@ -3,13 +3,7 @@
from socketserver import BaseRequestHandler, UDPServer
from .components import *
from .constants import *
# add python path of src to sys.path
src_path = os.path.join(__file__, *(['..'] * 2))
src_path = os.path.abspath(src_path)
sys.path.insert(0, src_path)
from protos import aerial_pb2 as pb
from ..protos import aerial_pb2 as pb
@@ -37,7 +31,7 @@
        """
        receive data packet from udp
        """
        self.data_buf.extend(data)
        self.data_buf.extend(bytes(data))
        self.ReceivedDataLength += len(data)
        if self.ReceivedDataLength == self.DataLength:
            # if received data length equal expected data length
@@ -47,7 +41,7 @@
    def _receive_footer(self, data) -> None:
        # receive footer block
        self.footer_buf.extend(data)
        self.footer_buf.extend(bytes(data))
        self.ReceivedFooterLength += len(data)
        if self.ReceivedFooterLength == sizeof(FooterBlock):
            self.Footer = FooterBlock.from_buffer_copy(self.footer_buf)
@@ -95,10 +89,10 @@
                
                # 判断第一个数据包中是否包含Footer Block
                if (header_size + data_size) < buf_size:
                    self._receive_footer(buf[header_size + data_size])
                    self._receive_footer(buf[header_size + data_size:])
        elif self.state == UDP_STATE_DATA:
            # receive data block
            self.DataFrame.extend(buf)
            self.DataFrame.extend(bytes(buf))
            remain_data_size = self.DataLength - self.ReceivedDataLength
            data_size = min(buf_size, remain_data_size)
            self._receive_data(buf[: data_size])
@@ -106,7 +100,7 @@
                self._receive_footer(buf[data_size: ])
        elif self.state == UDP_STATE_FOOTER:
            # receive footer block
            self.DataFrame.extend(buf)
            self.DataFrame.extend(bytes(buf))
            self._receive_footer(buf)