master
jakeallen 11 months ago
parent 30fb253984
commit 63b92491bd

@ -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__":

@ -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
#发送数据

@ -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
Loading…
Cancel
Save