From 63b92491bd4ef0dbcdc24f7419cb42963276fb2b Mon Sep 17 00:00:00 2001 From: jakeallen Date: Wed, 27 Mar 2024 16:14:36 +0800 Subject: [PATCH] new_test --- receive.py | 44 ++++++++++++++++++++++++-------------------- send.py | 12 ++++++++++-- testbench | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+), 22 deletions(-) create mode 100644 testbench diff --git a/receive.py b/receive.py index 3cc7220..89610d0 100644 --- a/receive.py +++ b/receive.py @@ -113,7 +113,9 @@ class ReceiveApp: first_type = "错误类型:帧头错误" self.recv_text.insert(tk.END, first_type + "\n") return - + else: + first_type = "帧头正确" + self.recv_text.insert(tk.END, first_type + "\n") #判断是否连续 Water = '{:08X}'.format(water) water = water + 1 @@ -123,6 +125,7 @@ class ReceiveApp: else: k = "帧不连续,有漏帧" self.recv_text.insert(tk.END, k + "\n") + return #汇报时间 """ @@ -349,7 +352,7 @@ class ReceiveApp: #地面航速 k = int(getmessage[178:182],16) / 10 - self.recv_text.insert(tk.END, "地面航速:" + k + "\n") + self.recv_text.insert(tk.END, "地面航速:" + str(k) + "\n") #经纬度 @@ -385,16 +388,20 @@ class ReceiveApp: #地面航线 k = int(getmessage[198:202],16) / 10 - self.recv_text.insert(tk.END, "地面航线:" + k + "\n") + self.recv_text.insert(tk.END, "地面航线:" + str(k) + "\n") # 实际航向 k = int(getmessage[202:206], 16) - self.recv_text.insert(tk.END, "实际航向:" + k + "\n") + self.recv_text.insert(tk.END, "实际航向:" + str(k) + "\n") #帧尾 if getmessage[206:212] != "334441": last_type = "错误类型:帧尾错误" self.recv_text.insert(tk.END, last_type + "\n") + else: + last_type = "帧尾正确" + self.recv_text.insert(tk.END, last_type + "\n") + return #ACARS数据 @@ -587,14 +594,13 @@ class ReceiveApp: frequency = int.from_bytes(byte_string, byteorder='little') self.recv_text.insert(tk.END, "通道7中心频率为" + str(frequency) + "KHz\n") - get_fpga = getmessage[154:162] - byte_string = bytes.fromhex(get_fpga) - fpga = int.from_bytes(byte_string, byteorder='little') + get_fpga = getmessage[154:170] + #去掉头部的0 + fpga = get_fpga.lstrip('0') self.recv_text.insert(tk.END, "FPGA版本号为" + str(fpga) + "\n") - get_arm = getmessage[170:178] - byte_string = bytes.fromhex(get_arm) - arm = int.from_bytes(byte_string, byteorder='little') + get_arm = getmessage[170:186] + arm = get_arm.lstrip('0') self.recv_text.insert(tk.END, "ARM版本号为" + str(arm) + "\n") #四个字节,分别对应第一到第四段号码 @@ -606,12 +612,10 @@ class ReceiveApp: self.recv_text.insert(tk.END, "接收机地址为" + str(ip_address) + "\n") get_port = getmessage[194:198] - byte_string = bytes.fromhex(get_port) - port = int.from_bytes(byte_string, byteorder='little') - self.recv_text.insert(tk.END, "接收机端口号为" + str(port) + "\n") + self.recv_text.insert(tk.END, "接收机端口号为" + str(get_port) + "\n") #198-202 纬度 - get_longitude = getmessage[198:204] + get_longitude = getmessage[198:206] if get_longitude[0:3] == "FFFF": longitude = "无效" else: @@ -623,7 +627,7 @@ class ReceiveApp: else: long_tag = "北纬: " longitude = str((longitude)/10000) - get_latitude = getmessage[204:212] + get_latitude = getmessage[206:214] if get_latitude[0:3] == "FFFF": latitude = "无效" else: @@ -640,17 +644,17 @@ class ReceiveApp: else: self.recv_text.insert(tk.END, "本机位置为: " + str(long_tag) + str(longitude) + str(lat_tag) + str(latitude) + "\n") - cpu_temp = getmessage[212:214] - - byte_string = bytes.fromhex(cpu_temp) - cpu_temp = int.from_bytes(byte_string, byteorder='little') + cpu_temp = getmessage[214:216] self.recv_text.insert(tk.END, "CPU温度为" + str(cpu_temp) + "℃\n") #帧尾 - if getmessage[214:220] != "334441": + if getmessage[216:222] != "334441": last_type = "错误类型:帧尾错误" self.recv_text.insert(tk.END, last_type + "\n") return + else: + last_type = "帧尾正确" + self.recv_text.insert(tk.END, last_type + "\n")\ if __name__ == "__main__": diff --git a/send.py b/send.py index e0f3b76..c69a40e 100644 --- a/send.py +++ b/send.py @@ -40,6 +40,12 @@ class SendApp: self.flow_msg_entry = tk.Entry(self.metadata_frame) self.flow_msg_entry.grid(row=0, column=3) + #实际时间 + self.actual_time_label = tk.Label(self.metadata_frame, text="实际时间:") + self.actual_time_label.grid(row=0, column=6) + self.actual_time_entry = tk.Entry(self.metadata_frame) + self.actual_time_entry.grid(row=0, column=7) + # 时标 self.time_msg_label = tk.Label(self.metadata_frame, text="时标:") self.time_msg_label.grid(row=0, column=4) @@ -99,14 +105,16 @@ class SendApp: def send_message(self): msg = self.send_entry.get() + msg = msg.replace(" ", "") if msg == "": head = self.first_message_entry.get() flow = self.flow_msg_entry.get() - times = self.time_msg_entry.get() + times = self.actual_time_entry.get() time_count = self.time_msg_entry.get() types = self.type_msg_entry.get() length = self.length_msg_entry.get() - data = self.data_msg_entry.get() + data_get = self.data_msg_entry.get() + data = "".join(data_get.split(" ")) last = self.last_message_entry.get() msg = head + flow + times + time_count + types + length + data + last #发送数据 diff --git a/testbench b/testbench new file mode 100644 index 0000000..7d0120e --- /dev/null +++ b/testbench @@ -0,0 +1,38 @@ +AIS数据测试: +帧头:58443341 +流水:00000000 +时间:111111111111 +时标:11111111 +帧尾:334441 +报文类型:01 +数据长度:0081 +数据段:01123456789912345678123456776543211234567899123456789912345678991234567899001234123409011020121234567899123456789912345678991234567899001234123456781234567812341234 + +工况数据测试: +完整数据:584433410000000111111111111111111111334441FF00811234567800000000 8765432100000000 1111111100000000 2222222200000000 3333333300000000 4444444400000000 5555555500000000 0000202109070001 0000000031303334 C0A8310A 8080 4D4DFBFF D7281100 30334441 +帧头:58443341 +流水:00000001 +时间:111111111111 +时标:11111111 +帧尾:334441 +报文类型:FF +数据长度:0081 +数据段:1234567800000000 8765432100000000 1111111100000000 2222222200000000 3333333300000000 4444444400000000 5555555500000000 0000202109070001 0000000031303334 C0A8310A 8080 4D4DFBFF D7281100 30 + +ACARS +帧头:58443341 +流水:00000000 +时标:11111111111111111111 +帧尾:334441 +报文类型:03 +数据长度:40 +数据段:0001112233445566771234123456781234657812346578071701300100123456781234657800008888 + +ADSB +帧头:58443341 +流水:00000000 +时标:11111111111111111111 +帧尾:334441 +报文类型:07 +数据长度:36 +数据段:11223305000100010002000200123456781234657800008888000099991122334455667788 \ No newline at end of file