SBPText->SetText(std::to_string(BPModel::GetInstance()->GetLastData().last_check_sbp_value).c_str());
}
- void BPDetectFirstView::WriteMapToPointArrays(const std::map<int, std::pair<int, int>> &bpMap)
+ void BPDetectFirstView::WriteMapToPointArrays()
{
+ const auto &bpDeque = BPModel::GetInstance()->GetlastCheckData();
+
+ // 重置数据
for (int i = 0; i < 24; ++i)
{
sbpData[i].x = i;
sbpData[i].y = 120;
dbpData[i].x = i;
- dbpData[i].y = 80;
+ dbpData[i].y = 80;
}
- int dataCount = std::min(static_cast<int>(bpMap.size()), 24);
+ int dataCount = std::min(static_cast<int>(bpDeque.size()), 24);
if (dataCount == 0)
{
return;
}
- auto it = bpMap.end();
- std::advance(it, -dataCount);
+ // 从deque末尾开始取最近的dataCount条数据
+ auto startIt = bpDeque.end() - dataCount;
// 填充数组
- for (int i = 0; i < dataCount; ++i, ++it)
+ for (int i = 0; i < dataCount; ++i, ++startIt)
{
- // x坐标使用数组索引,y坐标使用map中的值
+ // x坐标使用数组索引,y坐标使用deque中的值
sbpData[i].x = i;
- sbpData[i].y = it->second.first; // SBP值
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sbpData[%d].y:%d", i, it->second.first);
+ sbpData[i].y = startIt->last_check_sbp_value; // SBP值
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sbpData[%d].y:%d", i, startIt->last_check_sbp_value);
dbpData[i].x = i;
- dbpData[i].y = it->second.second; // DBP值
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dbpDat[%d].y:%d", i, it->second.second);
+ dbpData[i].y = startIt->last_check_dbp_value; // DBP值
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dbpDat[%d].y:%d", i, startIt->last_check_dbp_value);
}
}
void BPDetectFirstView::InitChartView()
{
- // WriteMapToPointArrays(BPModel::GetInstance()->GetBPValueMap());
+ WriteMapToPointArrays();
// 初始化图表控件
if (bpchart == nullptr)
{