我正在处理连接到服务器的客户端代码。服务器正在执行一些任务并每 1 秒继续返回一次数据。这个数据是元组
(7.6, 37)
,其中7.6
是一个区域的值(可以是0到55之间的任何值),37
是数据的id。这个 id 就像计数器一样,当服务器启动时从 0 开始并一直递增直到服务器重新启动。
客户端代码必须查看面积值何时小于
10.0
并执行进一步计算。有时在服务器之间发送一些噪音值,其中面积小于10.0
,所以我们必须忽略它,但如果面积值小于10.0
超过 10 秒,这意味着它不是噪音,我们可以继续进行计算。所以噪音值将始终存在 3-4 秒,但如果超过 10 秒,则不是噪音。
为了处理这个问题,我编写了以下一些逻辑。
runOnce = True
data = server.recv() # Getting the values from server
area = data[0]
id = data[1]
if area < 10.0:
if runOnce:
checkId = id + 10
runOnce = False
else:
if checkId > id:
# This data is not noisy
所以在上面的代码中,我将变量
runOnce
设为 True。一旦我收到面积值,我就用 checkId
设置一个 id+10
变量,所以如果当前 id 是 50,那么我将在 60 处检查。所以在第 60 个 id 如果面积仍然小于 10,这意味着,它有已经 10 秒,因此当前数据没有噪音。这似乎工作正常但它实际上是噪音然后这段代码没有报告它。
我该如何处理这个逻辑?