| | |
| | | |
| | | if (RX_CODE_ALARM_SET == code) { |
| | | UpdatePageData(); |
| | | |
| | | |
| | | // 通知设备状态 |
| | | /* |
| | | SERVO::CEqAlarmStep* pStep = nullptr; |
| | | if (pAny->getPtrValue("ptr", (void*&)pStep)) { |
| | | if (pStep != nullptr) { |
| | | // 获取 AlarmManager 单例 |
| | | AlarmManager& alarmManager = AlarmManager::getInstance(); |
| | | |
| | | // 从 pStep 获取需要的参数,假设这些值是从 pStep 中获取的 |
| | | AlarmData alarmData; |
| | | alarmData.nId = pStep->getAlarmId(); |
| | | alarmData.nSeverityLevel = pStep->getAlarmLevel(); |
| | | alarmData.nDeviceId = pStep->getEquipment()->getID(); |
| | | alarmData.nUnitId = pStep->getUnitId(); |
| | | alarmData.strDeviceName = alarmManager.getDeviceNameById(alarmData.nDeviceId); |
| | | alarmData.strUnitName = alarmManager.getUnitNameById(alarmData.nDeviceId, alarmData.nUnitId); |
| | | const AlarmInfo* pAlarmInfo = alarmManager.getAlarmInfoByID(pStep->getAlarmId()); |
| | | alarmData.strDescription = pAlarmInfo != nullptr ? pAlarmInfo->strAlarmText : ""; |
| | | if (pStep->getAlarmState() == 1) { |
| | | alarmData.strStartTime = getCurrentTimeString(); |
| | | alarmData.strEndTime = ""; |
| | | InsertAlarmData(&m_listCtrl, alarmData); |
| | | } |
| | | } |
| | | } |
| | | */ |
| | | } |
| | | else if (RX_CODE_ALARM_CLEAR == code) { |
| | | UpdatePageData(); |
| | |
| | | GetDlgItem(IDC_BUTTON_NEXT_PAGE)->EnableWindow(m_nCurPage < m_nTotalPages); |
| | | } |
| | | |
| | | static char* pszAlarmLevel[] = {"Warning", "Error"}; |
| | | void CAlarmDlg::FillDataToListCtrl(CListCtrl* pListCtrl, const std::vector<AlarmData>& vecData) |
| | | { |
| | | if (pListCtrl == nullptr || pListCtrl->m_hWnd == nullptr) { |
| | |
| | | |
| | | // 遍历数据并插入到CListCtrl中 |
| | | for (const auto& alarm : vecData) { |
| | | int nItem = pListCtrl->InsertItem(pListCtrl->GetItemCount(), _T("")); // 插入新行 |
| | | CString str; |
| | | // 设置列内容 |
| | | str.Format(_T("%d"), alarm.nId); |
| | | pListCtrl->SetItemText(nItem, 1, str); // 报警ID |
| | | pListCtrl->SetItemText(nItem, 2, pszAlarmLevel[alarm.nSeverityLevel % 2]); // 等级 |
| | | pListCtrl->SetItemText(nItem, 3, alarm.strDeviceName.c_str()); // 设备名称 |
| | | pListCtrl->SetItemText(nItem, 4, alarm.strUnitName.c_str()); // 单元名称 |
| | | pListCtrl->SetItemText(nItem, 5, alarm.strStartTime.c_str()); // 开始时间 |
| | | pListCtrl->SetItemText(nItem, 6, alarm.strEndTime.c_str()); // 结束时间 |
| | | pListCtrl->SetItemText(nItem, 7, alarm.strDescription.c_str()); // 描述 |
| | | InsertAlarmData(pListCtrl, alarm); |
| | | } |
| | | |
| | | // 获取列数 |
| | |
| | | pListCtrl->SetColumnWidth(nColCount - 1, LVSCW_AUTOSIZE_USEHEADER); |
| | | } |
| | | |
| | | static char* pszAlarmLevel[] = { "Warning", "Error" }; |
| | | void CAlarmDlg::InsertAlarmData(CListCtrl* pListCtrl, const AlarmData& alarmData) |
| | | { |
| | | if (pListCtrl == nullptr || pListCtrl->m_hWnd == nullptr) { |
| | |
| | | CString str; |
| | | str.Format(_T("%d"), alarmData.nId); |
| | | pListCtrl->SetItemText(nNewItem, 1, str); // 报警ID |
| | | pListCtrl->SetItemText(nNewItem, 2, pszAlarmLevel[alarmData.nSeverityLevel % 2]); // 等级 |
| | | pListCtrl->SetItemText(nNewItem, 2, pszAlarmLevel[alarmData.nSeverityLevel % 2]); // 等级 |
| | | pListCtrl->SetItemText(nNewItem, 3, alarmData.strDeviceName.c_str()); // 设备名称 |
| | | pListCtrl->SetItemText(nNewItem, 4, alarmData.strUnitName.c_str()); // 单元名称 |
| | | pListCtrl->SetItemText(nNewItem, 5, alarmData.strStartTime.c_str()); // 开始时间 |