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