Beispiel #1
0
/*******************************************************************************
 Function Name  : vSetHardwareList
 Input(s)       : hHwList - Hardware List
                  nSize   - Size of the Hardware Lsit
 Output         :  -
 Functionality  : This function will init hardware list and will find net name
                  associated with the hardware if any.
 Member of      : CHardwareListingCAN
 Author(s)      : Raja N
 Date Created   : 08.09.2004
 Modifications  : Raja N on 14.03.2005, Create list control to hold selected
                  hardware items
*******************************************************************************/
void CHardwareListingCAN::vSetHardwareList(INTERFACE_HW* /*psHwIntr*/, int nSize)
{
    //all the application related to UI shall be performed only if
    //BUSMASTER is not called from COM

    // Clear the lsit
    m_omHardwareList.DeleteAllItems();
    // Remove all columns
    m_omHardwareList.DeleteColumn(0);
    // Set the Image List
    m_omHardwareList.SetImageList(&m_omImageList, LVSIL_SMALL );
    // Set Image List for selected list
    m_omSelectedHwList.SetImageList(&m_omImageList, LVSIL_SMALL );

    // Insert First Columns
    // The style is Icon. So insert Empty column

    // Create selelected list columns
	m_omHardwareList.InsertColumn(  defHARDWARE_COL,
									_(defSTR_HARDWARE_COL_NAME) );
	m_omHardwareList.SetColumnWidth( defHARDWARE_COL,
										defSTR_LISTED_HARDWARE_COL_WIDTH );
    m_omSelectedHwList.InsertColumn( defHARDWARE_COL,
                                     _(defSTR_HARDWARE_COL_NAME) );
    m_omSelectedHwList.SetColumnWidth( defHARDWARE_COL,
                                       defSTR_HARDWARE_COL_WIDTH );
    m_omSelectedHwList.InsertColumn(defCHANNEL_COL,
                                     _(defSTR_CHANNEL_NAME) );
    m_omSelectedHwList.SetColumnWidth( defCHANNEL_COL,
                                       defSTR_CHANNEL_COL_WIDTH );

    int nImageIndex = 0;
    CString omStrFormat("");
    // Add List of unselected Hw in to the CListCtrl
    int index = 0;
    bool bSelItem;
    UINT nItemCount = 0;
    for( ; index < nSize; index++)
    {
        bSelItem = false;
        //check if the channel is already in selected list
        for ( int i = 0 ; i < nSize && m_pnSelList[i]!=-1 ; i++ )
        {
            if ( m_pnSelList[i] == index )
            {
                bSelItem = true;
                break;
            }
        }

        //Add the channel only if its not in selected list
        if ( !bSelItem )
        {
            omStrFormat.Format( getProtocolChannelNameFormat(index).c_str() );
            nImageIndex = defDISCONNECTED_IMAGE_INDEX;
            // Insert List Item
            m_omHardwareList.InsertItem( nItemCount, omStrFormat, nImageIndex);
            // Set the hardware list index as item data
            m_omHardwareList.SetItemData( nItemCount++, index );
        }
    }

    // Set the selection to the first row
    m_nSelectedItem = 0;
    m_omHardwareList.SetItemState( m_nSelectedItem,
                                   LVIS_SELECTED | LVIS_FOCUSED,
                                   LVIS_SELECTED | LVIS_FOCUSED);
}
Beispiel #2
0
void CTxMsgListView::vUpdateMsgListDisplay(sTXCANMSGDETAILS sMsgDetail,
        INT nCurrentIndex)
{
    CString omStrMsgID( "" );
    CString omStrMsgData( "" );
    CString omStrMsgType( "" );
    CString omStrDLC( "" );
    CString omStrChannel( "" );
    INT nIndex           = -1;
    UINT unImageID       = 0;
    CString omStrFormat( "" );
    CString omStrMsgName( "" );
    // Set Edit flag to TRUE
    m_bInitDlg = TRUE;

    // format the message data length
    // Get the base and accordingly change the format for Format function of
    // CString class.
    if( TRUE == CTxMsgManager::s_TxFlags.nGetFlagStatus(TX_HEX) )
    {
        omStrMsgID.Format(defFORMAT_MSGID_HEX,sMsgDetail.m_sTxMsg.m_unMsgID);
        omStrFormat = defFORMAT_DATA_HEX;
    }
    else
    {
        omStrMsgID.Format( defFORMAT_MSGID_DECIMAL,
                           sMsgDetail.m_sTxMsg.m_unMsgID );
        omStrFormat = defFORMAT_DATA_DECIMAL;
    }    // Message Details View
    CTxMsgDetailsView* pomDetailsView = nullptr;
    CMsgSignal* pDBptr = nullptr;
    pomDetailsView = (CTxMsgDetailsView*)pomGetDetailsViewPointer();
    if (nullptr != pomDetailsView)
    {
        pDBptr =  pomDetailsView->m_pouDBPtr;
    }
    CString omStrUpdatedMsgLength = "";
    // See if the msg ID is in the database
    // If yes load appropriate image
    if (nullptr != pDBptr)
    {
        omStrMsgName =
            pDBptr->omStrGetMessageNameFromMsgCode(sMsgDetail.m_sTxMsg.m_unMsgID);
        //omStrUpdatedMsgLength = pDBptr->omStrGetMessageLengthFromMsgCode(sMsgDetail.m_sTxMsg.m_unMsgID);
    }
    if ( omStrMsgName.IsEmpty() == FALSE )
    {
        unImageID = 1;// Database Image
        // Add message Name with the entry
        omStrMsgID += " [" +
                      pDBptr->omStrGetMessageNameFromMsgCode(sMsgDetail.m_sTxMsg.m_unMsgID )
                      + "]";
    }
    else
    {
        unImageID = 2;// Non-Database image
    }

    // Format channel ID
    omStrChannel.Format("%d", sMsgDetail.m_sTxMsg.m_ucChannel );

    // Format Message Type
    omStrFormat.Insert(omStrFormat.GetLength(),defEMPTY_CHAR);
    CString omStrTemp = "";

    for(INT i=0; i<sMsgDetail.m_sTxMsg.m_ucDataLen; i++)
    {
        omStrTemp.Format(omStrFormat,sMsgDetail.m_sTxMsg.m_ucData[i]);
        omStrMsgData +=  omStrTemp;
    }
    // Format the Message type
    if(sMsgDetail.m_sTxMsg.m_ucEXTENDED == TRUE)
    {
        omStrMsgType = defMSGID_EXTENDED;
    }
    else
    {
        omStrMsgType = defMSGID_STD;
    }
    if(sMsgDetail.m_sTxMsg.m_ucRTR == TRUE)
    {
        omStrMsgType += defMSGID_RTR;
    }
    // Format the DLC
    omStrDLC.Format("%d",sMsgDetail.m_sTxMsg.m_ucDataLen);
    // Get the current count if this is new items and insert it
    // as new item. Otherwise set the current item text.
    if(nCurrentIndex == -1)
    {
        INT nCount = m_omLctrMsgList.GetItemCount();
        if(nCount != -1 )
        {
            nIndex = m_omLctrMsgList.
                     InsertItem(nCount,omStrMsgID,unImageID);
        }
    }
    else
    {
        LVITEM sItem;
        sItem.mask      = LVIF_IMAGE;
        sItem.iItem     = nCurrentIndex;
        sItem.iSubItem  = defMAIN_ITEM;
        sItem.iImage    = unImageID;
        m_omLctrMsgList.
        SetItemText(nCurrentIndex,defMAIN_ITEM,omStrMsgID);
        m_omLctrMsgList.SetItem(&sItem);
        nIndex = nCurrentIndex;
    }
    // Set the list control item with string formatted for each column.
    if(nIndex != -1 )
    {
        // Update Channel ID
        m_omLctrMsgList.SetItemText( nIndex,
                                     defSUBITEM_MSGDETAILS_CHANNEL_ID,
                                     omStrChannel );
        // Update Message Type
        m_omLctrMsgList.SetItemText( nIndex,
                                     defSUBITEM_MSGDETAILS_TYPE,
                                     omStrMsgType );
        // Update Message Length
        m_omLctrMsgList.SetItemText( nIndex,
                                     defSUBITEM_MSGDETAILS_DLC,
                                     omStrDLC );
        // Update Data Bytes with Dirty Flag
        if( sMsgDetail.m_bIsMsgDirty == TRUE &&
                unImageID == 1 &&
                sMsgDetail.m_sTxMsg.m_ucDataLen > 0 )
        {
            omStrMsgData +=defASSETRIC;
        }
        m_omLctrMsgList.SetItemText( nIndex,
                                     defSUBITEM_MSGDETAILS_DATA,
                                     omStrMsgData);
        // Update Check box status
        m_omLctrMsgList.SetCheck( nIndex, sMsgDetail.m_bEnabled );
    }

    // Set Edit flag to FALSE
    m_bInitDlg = FALSE;
}