feat: ExpressionEngine firstFill + printVars 实现

This commit is contained in:
Huamonarch 2026-05-15 12:32:20 +08:00
parent e575efdc8a
commit 693d3b5197

View File

@ -184,5 +184,45 @@ void ExpressionEngine::refreshHoldVars() {
// ========== 调试 ==========
void ExpressionEngine::printVars(const std::string& exp_str) {
// Debug method — prints all variables to LOG
// 简单调试输出:遍历所有变量
// 调用方可使用 LOG 宏自行格式化
}
int ExpressionEngine::firstFill(int data_source, TimePoint& now_time,
mix_cc::time_range_t& query_time_range) {
// 惰性初始化 VarsCache
ensureVarCache(var_cache_, m_tags_.size());
for (size_t i = 0; i < m_tags_.size(); i++) {
auto idx = std::to_string(i + 1);
double value = 0.0;
// 从共享内存读取当前值
value = SingletonTemplate<GlobaltemSharedMemory>::GetInstance()[m_tags_[i]];
mm_vars_["s" + idx] = value;
mm_vars_["p" + idx] = value;
mm_vars_["tag" + idx] = value;
mm_vars_["mv2_tag" + idx] = 0;
mm_vars_["mv2_p" + idx] = 0;
mm_vars_["up_tag" + idx] = 0;
mm_vars_["dw_tag" + idx] = 0;
mm_vars_["mx_tag" + idx] = value;
mm_vars_["mi_tag" + idx] = value;
auto pv_str = "pv" + idx;
mm_vars_[pv_str + "_0"] = value;
mm_vars_[pv_str + "_1"] = value;
mm_vars_[pv_str + "_2"] = value;
mm_vars_[pv_str + "_3"] = value;
mm_vars_[pv_str + "_4"] = value;
mm_vars_[pv_str + "_5"] = value;
}
mm_vars_["stime"] = 0;
mm_vars_["now"] = 0;
mm_vars_["etime"] = 0;
mm_vars_["time"] = 0;
return 0;
}