Expand description
共享观测状态:UiPlugin(总线面)写、render_body(窗口面)读。
线程形貌:总线侧在插件 worker 线程写;窗口侧在 eframe 主线程读;
锁粒度 = 每次 lock().clone()/snapshot(),不跨帧持锁。
Structs§
- Account
Row - 账户行(多账号面;规划 §5.B + 0.2.18 四态)。
- BusSnap
- 一次 eTimer 拉取的服务/插件快照(渲染直接可用)。
- Cell
View - 一格的可读视图(渲染/测试用)。
- Contract
Store - 合约库(v4 查询合约窗数据源):en_symbol → ContractData。
- CtpForm
- CTP 网关配置表单(S6 测试面;界面手工输入源 → UiCmd::CtpConfigure →
ask
ctp.configure。零配置口径:界面不读文件,值全部人敲;密码位掩码)。 - Data
Split - 数据区两刀的份额(0.4.1 BD-UI-54)。Python
right_splitter= vertical 50:50, 我们的左右刀与之正交;两值都夹在crate::splitters::clamp_frac界内。 - Kline
Fetch - K线历史补数单(fen 请求形态;tq 桥消费)。
- LogEntry
- 一行日志(BD-UI-41:Python 侧 LogMonitor 是带「时间/信息/接口」表头的表格
(
widget.py:1167-1180),我们原来只存正文串、渲染侧没有时间可排)。 时间戳在入环那一刻打,北京墙钟%H:%M:%S(与fmt_dt同口径)。 - LogRing
- 环形日志:push 满则挤掉最旧一条,溢出计数单调(页面显示“已丢弃 N 条“)。
spilling 面(A/D 裁定):进环的每一笔都追加写盘(
%APPDATA%\ek\logs\按天文件;EK_UI_LOG_DIR可重定向)—— 显示有界,事实全量,回去翻盘不翻环。 - Market
Store - 单格 = (symbol, interval) → bar 升序序列(丢头保尾;datetime 单调)。
- Order
Form - 下单面板表单(v2 常驻右侧;Python TradingWidget 字段面等价;操作面非配置面)。
- Reload
Form - 回灌表单(v4:界面面已退役,总线口
UiCmd::Reload保留;解析器留作 测试与脚本面)。 - Tick
Store - tick 库(v2 行情 tab 唯一数据源):symbol → 最新 tick,逐 symbol 覆盖, 有界 = 订阅面(ek-ctp 只发已订阅合约;无 bar 回落,用户裁定)。
- Trade
Snap - 交易监控快照(渲染侧读的那一份;0.5 起它是四本 keyed 账的缓存视图, 不再是「eTimer 拍 ask oms 全量查询组帧」的产物)。
- UiShared
- 插件面板与宿主观察线程共用的观测状态。
Enums§
- Account
Stage - 账户装配四态(0.2.18,规划 §3.3「添加 ≠ 连接 ≠ 断开 ≠ 移除」)。
- Bottom
Right Tab - 右下组 tab(Python [资金|日志])。
- Confirm
Step - 二次确认步进:Armed = 首点待确认;Fired = 同名二点已发令;Switched = 目标迁移。
- Login
State - 登录态(0.2.19;事实源 = ek-ctp 0.9.0
{gw}.status,规划 P3 / 裁定 3)。 - TopLeft
Tab - 左上组 tab(Python [委托|未成交];审计修正:行情是带不是 tab,K线/运维/CTP 是弹窗不是 tab,故不设全局 10 值 UiTab——那是 v2 残影)。
- UiCmd
- UI 操作指令(窗口面 → 总线面;eTimer 节拍被 ui 插件请辞)。
Constants§
- ACCOUNT_
STALE_ SECS - 「查询断供」判据之二:距最后一次资金回报超过这么多秒(规划 Q10)。
- CHAIN_
STATE_ PREFIX - 链状态行的前缀(0.5.0,用户定「链进行的状态改为事件日志推送」)—— 单源:引用网关那一份。
- KLINE_
CELL_ CAP - 行情缓存单格容量(防涨;丢头保尾,bar 流单调)。
- LIST_
POLL_ TICKS - 管制面快照(
svctl.list)轮询节拍(0.5 M3:事件驱动后唯一保留的拍级轮询)。 - MARKET_
ORDER - 行情带六所固定 tab 序(0.4.1 BD-UI-54:六所各一格 = 用户裁定「每个交易所
都要一个」;原
crate::dock::MARKET_ORDER随 dock 拆除,常量原样搬到这里)。 - MAX_
ACCOUNTS - 账户软上限(0.2.18 落地既有开放项:达上限『添加账户』入口禁用并提示, 界面侧不再无限长行)。 账户数防御性顶(0.9.10 用户裁定「我们从来没有限制过账户数」): 业务侧无限制,这条只挡荒谬状态(误操作连击/异常脚本),顶到 64 = 事实上摸不到。
- PENDING_
CRIT_ FLOOR - 水位阈下限(0.7.0 背压刀):积压越过软顶的 1/4 且不少于此数 → 红。
- PENDING_
WARN_ FLOOR - 水位阈下限(0.7.0 背压刀):积压越过软顶的 1/16 且不少于此数 → 黄。
- QUERY_
REJECT_ STREAK_ LIMIT - 「查询断供」判据之一:资金/持仓查询连续被拒达此数(规划 Q10)。
- RING_
CAP - 日志环形容量(A/D 裁定 2026-10-28:E15 实证 512 被一次 506 行的状态洪水
灌满 → 启动链日志被挤出,T5 假红。显示窗抬到 4096(与 K线格同哲学:
够看 + 有界);全量事实由溢出落盘兜住(
LogRingspilling 面, 每所一笔一行,追加写,永不回环 —— 见LogRing::push的 spill 分支)。 - STATUS_
ASKS_ PER_ TICK {gw}.status每拍最多问几个账户(0.5 M3:状态轮询摊平)。- TRADE_
CAP - 成交账本上限(0.5 偏离基线③,用户裁定接)。
Functions§
- is_
quarantined - 隔离态判定(svctl.list 状态原文含 Quarantin → 红;ePlugQDown.<名> 是定向 广播,未知名无法预订阅 —— 快照行扫描是唯一闭环面,BD-UI-17)。
- parse_
gateway - 票据网关选择子解析(多账号面)。
- parse_
reload_ csv - CSV(每行
dt,open,high,low,close,volume;dt 为 epoch 秒)→ BarData 批。 错行报行号;空 csv = Err;升序不强制(dm.reload 自会逐行入窗)。 - pending_
thresholds - 某插件的水位阈(0.7.0:吃这一行自己的软顶,比例 + 下限)。