feat: ExpressionEngine firstFill + printVars 实现
This commit is contained in:
parent
e575efdc8a
commit
693d3b5197
@ -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;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user