From bdf0dc4cb183d3fec40e1d51b3bb94b7e53d0a55 Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期日, 04 一月 2026 10:45:07 +0800
Subject: [PATCH] 1.修复报文字段差异风险: S1F3:项目用 getSubItemU4(0) 取 SVID;日志里有 U2 的情况,可能导致解析失败后回退成 SV=0。 S6F11:项目发送 DATAID(U4) + CEID(U4);日志样例里第一个字段是 U2,可能存在类型/字段定义不一致。
---
SourceCode/Bond/BondEq/AlarmPopupDlg.cpp | 40 ++++++++++++++++++++++++++++++++++++++--
1 files changed, 38 insertions(+), 2 deletions(-)
diff --git a/SourceCode/Bond/BondEq/AlarmPopupDlg.cpp b/SourceCode/Bond/BondEq/AlarmPopupDlg.cpp
index dd9b9b2..f37c3ca 100644
--- a/SourceCode/Bond/BondEq/AlarmPopupDlg.cpp
+++ b/SourceCode/Bond/BondEq/AlarmPopupDlg.cpp
@@ -21,6 +21,7 @@
m_crBkgnd = RGB(225, 225, 225);
m_hbrBkgnd = nullptr;
m_pActiveAlarm = nullptr;
+ m_pObserver = nullptr;
}
CAlarmPopupDlg::~CAlarmPopupDlg()
@@ -52,6 +53,35 @@
// CAlarmPopupDlg 消息处理程序
+
+void CAlarmPopupDlg::InitRxWindows()
+{
+ /* code */
+ // 订阅数据
+ IRxWindows* pRxWindows = RX_GetRxWindows();
+ pRxWindows->enableLog(5);
+ if (m_pObserver == NULL) {
+ m_pObserver = pRxWindows->allocObserver([&](IAny* pAny) -> void {
+ // onNext
+ pAny->addRef();
+ int code = pAny->getCode();
+ if (RX_CODE_BONDER_BEEP == code) {
+ bool bMute = theApp.m_model.getBonder().isMute();
+ SetButtonBackgroundColors(bMute);
+ TRACE("RX_CODE_BONDER_BEEP %s\n", bMute ? "1" : "0");
+ }
+ pAny->release();
+ }, [&]() -> void {
+ // onComplete
+ }, [&](IThrowable* pThrowable) -> void {
+ // onErrorm
+ pThrowable->printf();
+ });
+
+ theApp.m_model.getObservable()->observeOn(pRxWindows->mainThread())
+ ->subscribe(m_pObserver);
+ }
+}
BOOL CAlarmPopupDlg::OnInitDialog()
{
@@ -143,6 +173,7 @@
pLine->SetLineColor(RGB(168, 168, 168));
+ InitRxWindows();
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
@@ -176,6 +207,11 @@
if (m_pActiveAlarm != nullptr) {
m_pActiveAlarm->release();
m_pActiveAlarm = nullptr;
+ }
+
+ if (m_pObserver != nullptr) {
+ m_pObserver->unsubscribe();
+ m_pObserver = NULL;
}
}
@@ -231,11 +267,13 @@
m_btnSoundOff.SetBkgndColor(BS_NORMAL, BTN_SOUND_OFF_BKGND_NORMAL);
m_btnSoundOff.SetBkgndColor(BS_HOVER, BTN_SOUND_OFF_BKGND_HOVER);
m_btnSoundOff.SetBkgndColor(BS_PRESS, BTN_SOUND_OFF_BKGND_PRESS);
+ m_btnSoundOff.Invalidate();
}
else {
m_btnSoundOff.SetBkgndColor(BS_NORMAL, BTN_SOUND_ON_BKGND_NORMAL);
m_btnSoundOff.SetBkgndColor(BS_HOVER, BTN_SOUND_ON_BKGND_HOVER);
m_btnSoundOff.SetBkgndColor(BS_PRESS, BTN_SOUND_ON_BKGND_PRESS);
+ m_btnSoundOff.Invalidate();
}
}
@@ -258,8 +296,6 @@
TRACE("操作失败:地址=1003,错误码=%d\n", nFlag);
}
});
-
- SetButtonBackgroundColors(!bMute);
}
void CAlarmPopupDlg::OnBnClickedButtonAlarmOff()
--
Gitblit v1.9.3