fix: 跟踪confirmed[-1],新笔确认时查上一轮confirmed[-1]的BSP
以前跟踪bi_list[-1](含未确认)导致时序不对。 现在跟踪confirmed[-1]的稳定ID,变化时在bi_list中精确定位 上一轮的那笔,查其end_klc是否为BSP。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
ae4c79c133
commit
07f079067f
+8
-9
@@ -107,8 +107,8 @@ class BSPMonitor:
|
|||||||
if len(confirmed) < 2:
|
if len(confirmed) < 2:
|
||||||
return
|
return
|
||||||
|
|
||||||
last_bi = confirmed[-1]
|
last_confirmed = confirmed[-1]
|
||||||
current_bi_id = _bi_id(last_bi)
|
current_bi_id = _bi_id(last_confirmed)
|
||||||
if current_bi_id is None:
|
if current_bi_id is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -116,26 +116,25 @@ class BSPMonitor:
|
|||||||
if st.first_run:
|
if st.first_run:
|
||||||
st.first_run = False
|
st.first_run = False
|
||||||
st.last_bi_id = current_bi_id
|
st.last_bi_id = current_bi_id
|
||||||
st.pivot_monitor.update(engine.bi_zs_list) # 初始化中枢状态
|
st.pivot_monitor.update(engine.bi_zs_list)
|
||||||
logger.info(
|
logger.info(
|
||||||
f"[{name}] 首次完成 — {len(confirmed)} 笔, "
|
f"[{name}] 首次完成 — {len(confirmed)} 笔, "
|
||||||
f"{len(engine.bsp_list)} BSP (不推送)"
|
f"{len(engine.bsp_list)} BSP (不推送)"
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
# 6. 检测新笔
|
# 6. 检测新笔确认
|
||||||
if current_bi_id == st.last_bi_id:
|
if current_bi_id == st.last_bi_id:
|
||||||
return # 无新笔,跳过
|
return
|
||||||
|
|
||||||
# 保存旧笔 ID,用它在当前笔列表中定位刚结束的那笔
|
|
||||||
prev_bi_id = st.last_bi_id
|
prev_bi_id = st.last_bi_id
|
||||||
st.last_bi_id = current_bi_id
|
st.last_bi_id = current_bi_id
|
||||||
|
|
||||||
bi_dir = "⬆️" if last_bi.dir == Chan_BI_DIR.UP else "⬇️"
|
bi_dir = "⬆️" if last_confirmed.dir == Chan_BI_DIR.UP else "⬇️"
|
||||||
logger.info(f"[{name}] 新笔确认 — #{len(confirmed)} "
|
logger.info(f"[{name}] 新笔确认 — #{len(confirmed)} "
|
||||||
f"{bi_dir} 高度: ${last_bi.height:.2f}")
|
f"{bi_dir} 高度: ${last_confirmed.height:.2f}")
|
||||||
|
|
||||||
# 7. 用旧笔 ID 精确定位刚结束的笔,检查其终点是否为 BSP
|
# 7. 找到刚被终结的那笔(上一轮的 confirmed[-1]),检查其终点是否为 BSP
|
||||||
prev_bi = None
|
prev_bi = None
|
||||||
for b in engine.bi_list:
|
for b in engine.bi_list:
|
||||||
if b.is_sure and _bi_id(b) == prev_bi_id:
|
if b.is_sure and _bi_id(b) == prev_bi_id:
|
||||||
|
|||||||
Reference in New Issue
Block a user