import sys import time import os from socketserver import BaseRequestHandler, UDPServer # add python path of microwave to sys.path microwave_path = os.path.join(__file__, *(['..'] * 3)) microwave_path = os.path.abspath(microwave_path) sys.path.insert(0, microwave_path) from microwave.servers import MicroWaveReceiver class MicroWaveRequestHandlertest(BaseRequestHandler): def handle(self): # Get message and client socket buf, _ = self.request receiver = self.server.Receiver receiver.AddBuf(buf) if receiver.DataFrameReady: # data frame ready frame_number = receiver.Header.FrameNumber bin_name = os.path.join(self.server.OutputFolder, "{}.bin".format(frame_number)) print("Frame {} ready".format(frame_number)) with open(bin_name, "wb") as bin_file: bin_file.write(receiver.DataFrame) class MicroWaveUDPServertest(UDPServer): def __init__(self, server_address, output_folder): super().__init__(server_address, MicroWaveRequestHandlertest) # create receiver instance self.Receiver = MicroWaveReceiver() self.OutputFolder = output_folder if __name__ == '__main__': if len(sys.argv) == 2: output_folder = sys.argv[1] else: output_folder = '.' # host = '192.168.2.65' host = '' port = 9911 server = MicroWaveUDPServertest((host, port), output_folder) server.packed_count = 0 print(time.asctime(),'Server started on port', port) print('....') print('ctrl-c to quit server.') try: server.serve_forever() except KeyboardInterrupt: server.server_close() print(time.asctime(),"Server Stopped") except: server.server_close() print(time.asctime(),"Server Stopped")