import socket import struct import tkinter as tk import threading from udpmsg import * from datetime import datetime from tkinter import font import threading from disSys import * from logWin import * from ccuSys import * target_ip = '127.0.0.1' target_port = 5000 def receive_messages(sock, logwin:logWin, disSysWin:disSys): while True: current_time = datetime.now() formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S") data, address = sock.recvfrom(4096) # 接受配电系统消息 disSysWin.update_fromMsg(data) headBuf = data[:6] header = struct.unpack('接收到来自 {address} | 高压母线配电指令:\n") logWin.display_log(logwin,f"{formatted_time}->接收到来自 {address} | 高压母线配电指令:") elif(msg_id==0x0002): logWin.display_log(logwin,f"{formatted_time}->接收到来自 {address} | 高压汇流排A配电指令:") elif(msg_id==0x0003): logWin.display_log(logwin,f"{formatted_time}->接收到来自 {address} | 高压汇流排B配电指令:") elif(msg_id==0x0004): logWin.display_log(logwin,f"{formatted_time}->接收到来自 {address} | 低压母线配电指令:") elif(start1==0x20 and start2==0x20): if(msg_id==0x0050): logWin.display_log(logwin,f"{formatted_time}->接收到来自 {address} | CCU控制指令:") def send_messages(sock, logwin:logWin, disSysWin:disSys,ccuSysWin:ccuSys): while True: # 配电消息反馈 a,b,c,d = disSysWin.get_date() sock.sendto(a, (target_ip, target_port)) sock.sendto(b, (target_ip, target_port)) sock.sendto(c, (target_ip, target_port)) sock.sendto(d, (target_ip, target_port)) #TODO复合管控消息反馈 e = ccuSysWin.ccuState.pack() sock.sendto(e, (target_ip, target_port)) threading.Event().wait(1) # 每隔1秒发送一次消息