// 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;
}
Ejemplo n.º 4
0
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;
}
Ejemplo n.º 9
0
// 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;
}