From 1b455c7e3baea44646d2f3ed071e81688eed2c1b Mon Sep 17 00:00:00 2001 From: zhouhuang Date: Mon, 13 Jan 2025 10:13:48 +0800 Subject: [PATCH] update --- das-dn/hostadsbf/hostadsbf.cpp | 4 ++++ das-dn/hostadsbf/hostadsbf.h | 4 +++- das-dn/third_party/AdsLib/AdsDevice.cpp | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/das-dn/hostadsbf/hostadsbf.cpp b/das-dn/hostadsbf/hostadsbf.cpp index 2e13f739..c9079503 100644 --- a/das-dn/hostadsbf/hostadsbf.cpp +++ b/das-dn/hostadsbf/hostadsbf.cpp @@ -743,6 +743,7 @@ BOOLEAN CHostADSBFProcess::calc(void) pData = GetUnitYCParamByPoint(uid, n); if (pData[4] == 1) continue; registerAddr = MAKEWORD(pData[0], pData[1]); + if (registerAddr <= 0) continue; if (registerAddr < DATA_BLOCK_BOUNDARY) { if (!m_adsDatas[0].inuse) m_adsDatas[0].inuse = TRUE; @@ -770,6 +771,7 @@ BOOLEAN CHostADSBFProcess::calc(void) pData = GetUnitYMParamByPoint(uid, n); if (pData[4] == 1) continue; registerAddr = MAKEWORD(pData[0], pData[1]); + if (registerAddr <= 0) continue; if (registerAddr < DATA_BLOCK_BOUNDARY) { if (!m_adsDatas[0].inuse) m_adsDatas[0].inuse = TRUE; @@ -797,6 +799,7 @@ BOOLEAN CHostADSBFProcess::calc(void) pData = GetUnitYXParamByPoint(uid, n); if (pData[4] == 1) continue; registerAddr = MAKEWORD(pData[0], pData[1]); + if (registerAddr <= 0) continue; value_type = pData[2]; if (registerAddr < DATA_BLOCK_BOUNDARY) { @@ -1028,6 +1031,7 @@ BOOLEAN CHostADSBFProcess::readFileID() myAdsVariable myPathInfoInvalid {*m_turbine, ".gwPathInfoInvalid"}; if (!myPathInfoInvalid.Read(2, &wPathInfoInvalid)) { + vLog(LOG_ERROR, "Read .gwPathInfoInvalid error.\n"); m_bRouteAdded = FALSE; delete m_turbine; m_turbine = NULL; diff --git a/das-dn/hostadsbf/hostadsbf.h b/das-dn/hostadsbf/hostadsbf.h index 0f9eb423..fdf86aba 100644 --- a/das-dn/hostadsbf/hostadsbf.h +++ b/das-dn/hostadsbf/hostadsbf.h @@ -33,7 +33,9 @@ struct myAdsVariable { { if (!m_Route.IsConnected()) return FALSE; uint32_t bytesRead = 0; - //if (*m_Handle.get() == 0) return FALSE; + if (*m_Handle.get() == 0xffffffff) { + return FALSE; + } auto error = m_Route.ReadReqEx2(m_IndexGroup, *m_Handle, size, diff --git a/das-dn/third_party/AdsLib/AdsDevice.cpp b/das-dn/third_party/AdsLib/AdsDevice.cpp index 00a5ef5f..cbb1a44e 100644 --- a/das-dn/third_party/AdsLib/AdsDevice.cpp +++ b/das-dn/third_party/AdsLib/AdsDevice.cpp @@ -123,6 +123,7 @@ AdsHandle AdsDevice::GetHandle(const std::string& symbolName) const if (error || (sizeof(handle) != bytesRead)) { LOG_ERROR("AdsDevice GetSymbolHandle is failed: " << symbolName << "."); //throw AdsException(error); + return {new uint32_t {0xffffffff}, {[](uint32_t){ return 0; }}}; } else {