/******************************************************************************* 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); }
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; }