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")
|