// Setter for the logging configuration data HRESULT CFrameProcessor_Common::SetConfigData(BYTE* pvDataStream, const CString& omStrVersion) { if (FALSE == bIsEditingON()) { return S_FALSE; } ClearLoggingBlockList(); BYTE* pbBuff = pvDataStream; BYTE bVersion = 0; USHORT ushLogBlks = 0; COPY_DATA_2(&bVersion, pbBuff, sizeof(bVersion)); COPY_DATA_2(&ushLogBlks, pbBuff, sizeof(ushLogBlks)); m_omStrVersion = omStrVersion; for (USHORT i = 0; i < ushLogBlks; i++) { CBaseLogObject* pouBaseLogObj = CreateNewLogObj(m_omStrVersion); pbBuff = pouBaseLogObj->SetConfigData(pbBuff, bVersion); m_omLogListTmp.Add(pouBaseLogObj); } return S_OK; }
// To modify the filtering scheme of a logging block HRESULT CFrameProcessor_J1939::FPJ1_ApplyFilteringScheme(USHORT ushLogBlkID, const SFILTERAPPLIED_J1939& sFilterObj) { HRESULT hResult = S_FALSE; if (bIsEditingON()) { if (m_omLogListTmp.GetSize() > ushLogBlkID) { CBaseLogObject* pouBaseLogObj = m_omLogListTmp.GetAt(ushLogBlkID); CLogObjectJ1939* pLogObj = static_cast<CLogObjectJ1939*> (pouBaseLogObj); if (NULL != pLogObj) { pLogObj->SetFilterInfo(sFilterObj); hResult = S_OK; } else { ASSERT(FALSE); } } } return hResult; }
//MVN HRESULT CFrameProcessor_Common::SetConfigData( xmlDocPtr pDoc, ETYPE_BUS eBus) { if (FALSE == bIsEditingON()) { return S_FALSE; } ClearLoggingBlockList(); USHORT ushLogBlks = 0; xmlChar* pchXpath = NULL; xmlXPathObjectPtr pXpathPtr = NULL; if(eBus == CAN) { pchXpath = (xmlChar*)"//BUSMASTER_CONFIGURATION/Module_Configuration/CAN_Log/Log_Block"; } else if(eBus == J1939) { pchXpath = (xmlChar*)"//BUSMASTER_CONFIGURATION/Module_Configuration/J1939_Log/Log_Block"; } else if(eBus == LIN) { pchXpath = (xmlChar*)"//BUSMASTER_CONFIGURATION/Module_Configuration/LIN_Log/Log_Block"; } pXpathPtr = xmlUtils::pGetNodes(pDoc, pchXpath); xmlNodePtr pNodePtr; if ( pXpathPtr != NULL) { xmlNodeSetPtr pNodeSet = pXpathPtr->nodesetval; if(pNodeSet != NULL) { ushLogBlks = pNodeSet->nodeNr; for(int i = 0; i < ushLogBlks; i++) { CBaseLogObject* pouBaseLogObj = CreateNewLogObj(m_omStrVersion); if ( S_OK == pouBaseLogObj->nSetConfigData(pNodeSet->nodeTab[i])) { vAddLogFile(m_omLogListTmp, pouBaseLogObj); //m_omLogListTmp.Add(pouBaseLogObj); } } } } return S_OK; }
HRESULT CFrameProcessor_Common::RemoveLoggingBlock(USHORT ushBlk) { HRESULT hResult = S_FALSE; if (bIsEditingON()) { if (FindLoggingBlock(ushBlk) != NULL) { GetActiveLogObjArray()->RemoveAt(ushBlk); hResult = S_OK; } } return hResult; }
HRESULT CFrameProcessor_Common::Confirm(void) { HRESULT hResult = S_FALSE; if (bIsEditingON()) { vUpdateLoggingFlag(); // First ensure m_bLogFlagTmp is updated vEmptyLogObjArray(m_omLogObjectArray); //m_omLogObjectArray.Copy(m_omLogListTmp); vCopyLogObjArray(m_omLogObjectArray, m_omLogListTmp); m_bExprnFlag_Log = m_bLogFlagTmp; // Then only assign value to log flag hResult = S_OK; } return hResult; }
HRESULT CFrameProcessor_Common::SetLoggingBlock(USHORT ushBlk, const SLOGINFO& sLogObject) { HRESULT hResult = S_FALSE; if (bIsEditingON()) { CBaseLogObject* pouLogObj = FindLoggingBlock(ushBlk); if (pouLogObj != NULL) { pouLogObj->SetLogInfo(sLogObject); hResult = S_OK; } } return hResult; }
HRESULT CFrameProcessor_Common::AddLoggingBlock(const SLOGINFO& sLogObject) { HRESULT hResult = S_FALSE; if (bIsEditingON()) { CBaseLogObject* pouCurrLogBlk = CreateNewLogObj(m_omStrVersion); if (NULL != pouCurrLogBlk) { pouCurrLogBlk->SetLogInfo(sLogObject); m_omLogListTmp.Add(pouCurrLogBlk); hResult = S_OK; } else { ASSERT(FALSE); } } return hResult; }
HRESULT CFrameProcessor_Common::StopEditingSession(BOOL bConfirm) { HRESULT hResult = S_OK; // Success is default assumption if (bIsEditingON()) // Proceed only when editing is going on { if (bConfirm) // Confirm changes and stop the session { hResult = Confirm(); } if (S_OK == hResult) // Wrap up only if everything is successful { vEmptyLogObjArray(m_omLogListTmp); // Clean the temporary repository m_bEditingON = FALSE; } } else { hResult = S_FALSE; // Not supposed to call otherwise } return hResult; }
// To modify the filtering scheme of a logging block HRESULT CFrameProcessor_CAN::FPC_ApplyFilteringScheme(USHORT ushLogBlkID, const SFILTERAPPLIED_CAN& sFilterObj) { HRESULT hResult = S_FALSE; CLogObjectCAN* pLogObj = nullptr; if (bIsEditingON()) { if (m_omLogListTmp.GetSize() > ushLogBlkID) { CBaseLogObject* pouBaseLogObj = m_omLogListTmp.GetAt(ushLogBlkID); pLogObj = static_cast<CLogObjectCAN*> (pouBaseLogObj); } } else { if (m_omLogObjectArray.GetSize() > ushLogBlkID) { CBaseLogObject* pouBaseLogObj = m_omLogObjectArray.GetAt(ushLogBlkID); pLogObj = static_cast<CLogObjectCAN*> (pouBaseLogObj); } } //update the filters if (nullptr != pLogObj) { pLogObj->SetFilterInfo(sFilterObj); hResult = S_OK; } else { ASSERT(false); } return hResult; }