完善功能
This commit is contained in:
@@ -74,7 +74,6 @@ void sendStateUpdate() {
|
||||
if(dbImage->GetProcInfo(proc, subs, pubs)) {
|
||||
crow::json::wvalue processInfo;
|
||||
processInfo["name"] = proc;
|
||||
// 将STRING_LIST转换为std::vector<std::string>
|
||||
std::vector<std::string> subs_vec(subs.begin(), subs.end());
|
||||
std::vector<std::string> pubs_vec(pubs.begin(), pubs.end());
|
||||
processInfo["subscribed"] = subs_vec;
|
||||
@@ -93,16 +92,25 @@ void sendStateUpdate() {
|
||||
{
|
||||
lock_guard<mutex> lock(wsMutex);
|
||||
int varCount = dbImage->GetNumVariables();
|
||||
CDBImage::CVar lastVar;
|
||||
bool hasLastVar = (varCount > 0) && dbImage->Get(lastVar, varCount-1);
|
||||
crow::json::wvalue::list varList;
|
||||
|
||||
// 遍历所有变量
|
||||
for(int i = 0; i < varCount; i++) {
|
||||
CDBImage::CVar var;
|
||||
if(dbImage->Get(var, i)) {
|
||||
varList.push_back({
|
||||
{"name", var.GetName()},
|
||||
{"value", var.GetValue()},
|
||||
{"time", var.GetTime()},
|
||||
{"type", var.GetType()},
|
||||
{"source", var.GetSource()}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
msg["variables"] = {
|
||||
{"count", varCount},
|
||||
{"last_updated", {
|
||||
{"name", hasLastVar ? lastVar.GetName() : ""},
|
||||
{"value", hasLastVar ? lastVar.GetValue() : ""},
|
||||
{"time", hasLastVar ? lastVar.GetTime() : "0.0"}
|
||||
}}
|
||||
{"data", std::move(varList)} // 包含所有变量的数组
|
||||
};
|
||||
}
|
||||
|
||||
@@ -132,9 +140,9 @@ bool FetchLoop(MOOS::MOOSAsyncCommClient* comms, CDBImage* m_DBImage)
|
||||
m_DBImage->SetProcInfo(procMail);
|
||||
|
||||
// 打印进程信息
|
||||
STRING_LIST processes;
|
||||
m_DBImage->GetProcesses(processes);
|
||||
std::cout << "Active processes: " << processes.size() << std::endl;
|
||||
// STRING_LIST processes;
|
||||
// m_DBImage->GetProcesses(processes);
|
||||
// std::cout << "Active processes: " << processes.size() << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -146,15 +154,15 @@ bool FetchLoop(MOOS::MOOSAsyncCommClient* comms, CDBImage* m_DBImage)
|
||||
|
||||
// 打印数据库变量信息
|
||||
int varCount = m_DBImage->GetNumVariables();
|
||||
std::cout << "Database variables: " << varCount << std::endl;
|
||||
// std::cout << "Database variables: " << varCount << std::endl;
|
||||
|
||||
// 打印最近更新的变量
|
||||
if(varCount > 0) {
|
||||
CDBImage::CVar lastVar;
|
||||
if(m_DBImage->Get(lastVar, varCount-1)) {
|
||||
std::cout << "Last updated variable: "
|
||||
<< lastVar.GetName() << " = "
|
||||
<< lastVar.GetValue() << std::endl;
|
||||
// std::cout << "Last updated variable: "
|
||||
// << lastVar.GetName() << " = "
|
||||
// << lastVar.GetValue() << std::endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user