/* * function : FindChannel * design : find channel in map and return it * param : char * - channel name * return : ChannelObject* - ChannelObject pointer * caller : */ ChannelObject* ChannelMap::FindChannel(const char *ChannelName) { std::string TempString(ChannelName); ChannelFinder = RealChannelMap.find(TempString); if( ChannelFinder != RealChannelMap.end() ) return ChannelFinder->second; else return NULL; }
///한라인에 표시할수 있는 최대문자길이보다 크면 잘라서 추가한다. void CTListBox::AppendText(const char* szTxt,D3DCOLOR dwColor,bool bAutoIncValue ) { if( szTxt == NULL ) return; ///최대 아이템수를 넘으면 제일먼저 들어온 아이템을 버린다. if( (m_iMaxSize > 0) && !m_ITM.empty() && (m_iMaxSize <= (int)m_ITM.size()) ) m_ITM.pop_front(); t_list_item itm; itm.m_bDrawn = false; int iLen = (int)strlen( szTxt ); CTSplitString szString; SIZE szSize = szString.GetSizeText( m_iFont, szTxt ); //홍근 : if( szSize.cx <= m_iWidth ) //if( iLen <= m_nMaxPutChar ) { strcpy(itm.m_szTxt,szTxt); itm.m_dwColor = dwColor; m_ITM.push_back(itm); } else { if( m_nMaxPutChar <= 0 ) { strcpy( itm.m_szTxt,szTxt ); itm.m_dwColor = dwColor; m_ITM.push_back(itm); } else { CTSplitString TempString( m_iFont, (char*)szTxt, m_iWidth ,CTControlMgr::GetInstance()->GetCodePage() ); for( int i = 0; i < TempString.GetLineCount(); ++i ) { strcpy( itm.m_szTxt, TempString.GetString( i )); itm.m_dwColor = dwColor; m_ITM.push_back(itm); } } } if( bAutoIncValue ) SetValue( GetMaximum() ); }
/* * function : add sc_clock * design : allocate sc_clock and push it to map * param : char * - channel name * param : char * - data type */ void ChannelMap::AddSCclock(const char *ChannelName, const char *DataType) { sc_interface *p_SCinterface = NULL; p_SCinterface = new sc_clock(ChannelName, 10, SC_NS); ChannelObject *p_ChannelObject = new ChannelObject(); // assign datas in ChannelObject strcpy(p_ChannelObject->ChannelType, "sc_clock"); strcpy(p_ChannelObject->DataType, DataType); p_ChannelObject->p_SCinterface = p_SCinterface; // insert ChannelObject into map std::string TempString(ChannelName); RealChannelMap[TempString] = p_ChannelObject; }
/* * function : add sc_signal * design : allocate sc_signal and push it to map * param : char * - channel name * param : char * - data type */ void ChannelMap::AddSCsignal(const char *ChannelName, const char *DataType) { sc_interface *p_SCinterface = NULL; if(strcmp(DataType, "bool") == 0) p_SCinterface = new sc_signal<bool>(ChannelName); else if(strcmp(DataType, "UINT32") == 0) p_SCinterface = new sc_signal<unsigned int>(ChannelName); else return; ChannelObject *p_ChannelObject = new ChannelObject(); // assign datas in ChannelObject strcpy(p_ChannelObject->ChannelType, "sc_signal"); strcpy(p_ChannelObject->DataType, DataType); p_ChannelObject->p_SCinterface = p_SCinterface; // insert ChannelObject into map std::string TempString(ChannelName); RealChannelMap[TempString] = p_ChannelObject; }
/* * function : add sc_signal * design : allocate sc_signal and push it to map * param : char * - channel name * param : char * - data type */ void ChannelMap::AddAHBLiteSignal(const char *ChannelName, const char *DataType) { sc_interface *p_SCinterface = NULL; char a_NameTemp[256] = {0,}; if(strcmp(DataType, "Master") == 0) { char a_UINTTemp[7][256] = { "$HADDR_", "$HBURST_", "$HRDATA_", "$HSIZE_", "$HTRANS_", "$HWDATA_", "$HPROT_" }; char a_BOOLTemp[4][256] = { "$HLOCK_", "$HWRITE_", "$HREADY_", "$HRESP_" }; for(int UINTIndex = 0; UINTIndex < 7; UINTIndex++) { strcpy(a_NameTemp, ChannelName); strcat(a_NameTemp, a_UINTTemp[UINTIndex]); p_SCinterface = new sc_signal<unsigned int>(a_NameTemp); ChannelObject *p_ChannelObject = new ChannelObject(); strcpy(p_ChannelObject->ChannelType, "AHBLITE"); strcpy(p_ChannelObject->DataType, DataType); p_ChannelObject->p_SCinterface = p_SCinterface; std::string TempString(a_NameTemp); RealChannelMap[TempString] = p_ChannelObject; } for(int BOOLIndex = 0; BOOLIndex < 4; BOOLIndex++) { strcpy(a_NameTemp, ChannelName); strcat(a_NameTemp, a_BOOLTemp[BOOLIndex]); p_SCinterface = new sc_signal<bool>(a_NameTemp); ChannelObject *p_ChannelObject = new ChannelObject(); strcpy(p_ChannelObject->ChannelType, "AHBLITE"); strcpy(p_ChannelObject->DataType, DataType); p_ChannelObject->p_SCinterface = p_SCinterface; std::string TempString(a_NameTemp); RealChannelMap[TempString] = p_ChannelObject; } } else if(strcmp(DataType, "Slave") == 0) { char a_UINTTemp[7][256] = { "$HADDR_", "$HBURST_", "$HRDATA_", "$HPROT_", "$HTRANS_", "$HWDATA_", "$HSIZE_" }; char a_BOOLTemp[6][256] = { "$HLOCK_", "$HWRITE_", "$HREADY_", "$HSEL_", "$HREADYOUT_", "$HRESP_" }; for(int UINTIndex = 0; UINTIndex < 7; UINTIndex++) { strcpy(a_NameTemp, ChannelName); strcat(a_NameTemp, a_UINTTemp[UINTIndex]); p_SCinterface = new sc_signal<unsigned int>(a_NameTemp); ChannelObject *p_ChannelObject = new ChannelObject(); strcpy(p_ChannelObject->ChannelType, "AHBLITE"); strcpy(p_ChannelObject->DataType, DataType); p_ChannelObject->p_SCinterface = p_SCinterface; std::string TempString(a_NameTemp); RealChannelMap[TempString] = p_ChannelObject; } for(int BOOLIndex = 0; BOOLIndex < 6; BOOLIndex++) { strcpy(a_NameTemp, ChannelName); strcat(a_NameTemp, a_BOOLTemp[BOOLIndex]); p_SCinterface = new sc_signal<bool>(a_NameTemp); ChannelObject *p_ChannelObject = new ChannelObject(); strcpy(p_ChannelObject->ChannelType, "AHBLITE"); strcpy(p_ChannelObject->DataType, DataType); p_ChannelObject->p_SCinterface = p_SCinterface; std::string TempString(a_NameTemp); RealChannelMap[TempString] = p_ChannelObject; } } else return; }