1、记录二进制航迹
函数:
SDI.py主程序__main__
a)decode_thread = threading.Thread(target=decode_with_queue, args=(data_queue,), ) #data_queue = Queue.Queue(1000)
decode_with_queue(dqueue) #data_buf = dqueue.get()
decode(data_buf) #deocde cat62,ret = decode_dll.DataProcess(data_buf, len(data_buf)),最重要的函数,track解码并发送到MQ
decode_dll.DataProcess.restype = listTrackData #trackData的数组:[('iCountTrack', c_int),('tracks', trackData * 100),]
#源自init_decode_dll()函数中:decode_dll = cdll.LoadLibrary(PII_config['decode_path_win'])
lst_data = pack_data(data_buf) #head=62,返回列表lst
b) 执行recv_track(input_mode) #input_mode = PII_config['track_recv_type'],config.py中定义'track_recv_type': 0,
(1)recv_track()函数
trackClient = init_socket(input_mode) #init_socket()从网络读取数据,UDP广播port:31088
data_buf, address = trackClient.recvfrom(BUFSIZE) #源address'168.192.11.52',源端口‘55902’;BUFSIZE = 8192
# 记录二进制航迹
write_byte(data_buf)
(2)write_byte(data_buf) 由recv_track()调用
位置:按扇区记录
9扇区:track_data_byte/2020-02-19/2020-02-19_09_ZBYN_AERA_CONTROL.dat
10扇区:track_data_byte/2020-02-19/2020-02-19_10_ZBYN_AERA_CONTROL.dat