修正缓存函数bug,替换del方法

This commit is contained in:
murmur 2023-03-11 17:06:55 +08:00
parent 2c5d8933ba
commit 0212f884c6

View File

@ -106,13 +106,18 @@ def tt_hh(addr,data):
msgs = cache[ccid]
for i in range(len(msgs)):
try:
# 按缓存先后顺序发送
addr.send(msgs[i])
# 发送成功则清除对应缓存数据
del cache[ccid][i] # not msgs[i]
except:
# 异常时退出循环
# 异常时退出循环不用再尝试发送后续msgs
# 退出前清空已发送成功的缓存数据
# del方法会改变list大小
while(i):
cache[ccid].pop(0)
i = i-1
break
return 0
def tt_trans(addr,data):
@ -132,12 +137,13 @@ def tt_trans(addr,data):
msg[-1]=crc
if not taddr:
# 未到匹配的在线终端
# 未到匹配的在线终端
#更新缓存
#{tccid1=[msg1,msg2,...],...}
cache[tccid].append(msg)
save_cache(cache)
print("终端未在线或ccid错。")
return 0
print("匹配终端:",tccid,"<--->",taddr)
@ -148,13 +154,14 @@ def tt_trans(addr,data):
taddr.send(msg)
except Exception:
# 发送失败
taddr.close()
# 更新pairs清空对应终端
update_pairs(taddr,tccid,1)
#更新缓存
#{tccid1=[msg1,msg2,...],...}
cache[tccid].append(msg)
save_cache(cache)
print("发送失败,终端可能已掉线。",taddr)
return 0
@ -171,10 +178,12 @@ def err_handle(flag,addr):
def tt_decode(addr,data):
'''处理收到的数据'''
'''处理收到的数据
数据正常返回0
数据异常返回-1'''
if data[:5] != b'$TTMS' or len(data) <12:
if data[:5] != b'$TTMS' or len(data) <12 or len(data)>200:
# 数据长度不可能小于12考虑非法接入的可能主动断开连接
return -1