📄 multiportflashdownloadtool.cpp
字号:
void TMainForm::Enable_UIComponent( void )
{
Enable_FileMenu();
Enable_FactoryDatabaseMenu();
Enable_OptionMenu();
Enable_DebugLoggingMenu();
// Enable_lvListView();
Enable_OperationRadioButton();
Enable_FormatFatRangeRadioButton();
Enable_BaudrateComboBox();
Enable_TypeComboBox();
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void TMainForm::Disable_FileMenu( void )
{
miFile->Enabled = false;
}
//----------------------------------------------------------------------------
void TMainForm::Enable_FileMenu( void )
{
miFile->Enabled = true;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void TMainForm::Disable_FactoryDatabaseMenu( void )
{
miFactoryDatabase->Enabled = false;
}
//----------------------------------------------------------------------------
void TMainForm::Enable_FactoryDatabaseMenu( void )
{
miFactoryDatabase->Enabled = true;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void TMainForm::Disable_OptionMenu( void )
{
miOption->Enabled = false;
}
//----------------------------------------------------------------------------
void TMainForm::Enable_OptionMenu( void )
{
miOption->Enabled = true;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void TMainForm::Disable_DebugLoggingMenu( void )
{
miDebuglog->Enabled = false;
}
//----------------------------------------------------------------------------
void TMainForm::Enable_DebugLoggingMenu( void )
{
miDebuglog->Enabled = true;
}
#if 0
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void TMainForm::Disable_lvListView( void )
{
lv->Enabled = false;
}
//----------------------------------------------------------------------------
void TMainForm::Enable_lvListView( void )
{
lv->Enabled = true;
}
#endif
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void TMainForm::Disable_OperationRadioButton( void )
{
rbNOR->Enabled = false;
rbNFB->Enabled = false;
}
//----------------------------------------------------------------------------
void TMainForm::Enable_OperationRadioButton( void )
{
rbNOR->Enabled = true;
rbNFB->Enabled = true;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void TMainForm::Disable_FormatFatRangeRadioButton( void )
{
rbAuto->Enabled = false;
rbManual->Enabled = false;
rbResetToFactory->Enabled = false;
}
//----------------------------------------------------------------------------
void TMainForm::Enable_FormatFatRangeRadioButton( void )
{
rbAuto->Enabled = true;
rbManual->Enabled = true;
rbResetToFactory->Enabled = true;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void TMainForm::Disable_BaudrateComboBox( void )
{
cbBaudrate->Enabled = false;
}
//----------------------------------------------------------------------------
void TMainForm::Enable_BaudrateComboBox( void )
{
cbBaudrate->Enabled = true;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void TMainForm::Disable_TypeComboBox( void )
{
cbType->Enabled = false;
}
//----------------------------------------------------------------------------
void TMainForm::Enable_TypeComboBox( void )
{
cbType->Enabled = true;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void TMainForm::Disable_SeperateDownloadButton( void )
{
for (int i=0; i<MAX_SUPPORT_PORT_NUM; i++)
{
btnCOMStartArray[i]->Enabled = false;
}
}
//----------------------------------------------------------------------------
void TMainForm::Enable_SeperateDownloadButton( void )
{
for (int i=0; i<MAX_SUPPORT_PORT_NUM; i++)
{
btnCOMStartArray[i]->Enabled = true;
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void TMainForm::Disable_AllDownloadButton( void )
{
Disable_SeperateDownloadButton();
}
//----------------------------------------------------------------------------
void TMainForm::Enable_AllDownloadButton( void )
{
Enable_SeperateDownloadButton();
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void TMainForm::Disable_SpecificMsUI( int index )
{
cbCOMArray[index]->Enabled = false;
cbAutoPollingArray[index]->Enabled = false;
btnCOMStartArray[index]->Enabled = false;
}
//----------------------------------------------------------------------------
void TMainForm::Enable_SpecificMsUI( int index )
{
cbCOMArray[index]->Enabled = true;
cbAutoPollingArray[index]->Enabled = true;
btnCOMStartArray[index]->Enabled = true;
}
#if 0
//============================================================================
void __fastcall TMainForm::RedrawLVList( void )
{
unsigned short rom_count;
TListItem *pListItem;
lv->Items->Clear();
if( OPERATION_NFB == m_DnParam.eOperation )
{
BL_INFO bl_info;
pListItem = lv->Items->Add();
pListItem->Caption = "BootLoader";
if(!BL_GetInfo(m_DnParam.bl_handle, &bl_info))
{
AnsiString region_prefix;
pListItem->Checked = _TRUE==bl_info.m_enable?true:false;
pListItem->SubItems->Add("");
pListItem->SubItems->Add( "0x" + IntToHex((int)bl_info.m_start_addr, 8) );
pListItem->SubItems->Add("");
pListItem->SubItems->Add(bl_info.m_filepath);
}
}
if(!DL_GetCount(g_DL_HANDLE, &rom_count))
{
//ROM_INFO rom_info[MAX_LOAD_SECTIONS];
if(!DL_Rom_GetInfoAll(g_DL_HANDLE, rom_info, MAX_LOAD_SECTIONS))
{
// access
m_uiTotalFileSize = 0;
for(int i=0; i<rom_count; i++)
{
AnsiString as_reg_prefix;
TListItem *p_list_item;
// access
m_uiTotalFileSize += rom_info[i].filesize;
// if( ! DL_Rom_GetInfo(g_DL_HANDLE, i, &(rom_info[i])) )
{
p_list_item = lv->Items->Add();
p_list_item->Caption = rom_info[i].name;
if( strcmpi( rom_info[i].name, "ROM" ) == 0 )
{
asROMFileName = rom_info[i].filepath;
}
if( strcmpi( rom_info[i].name, "FAT" ) == 0 )
{
i_LV_FAT_index = i;
asFATFileName = rom_info[i].filepath;
}
p_list_item->Checked = rom_info[i].enable;
if( ABSOLUTE_ADDR == rom_info[i].addr_type )
{
as_reg_prefix = "";
}
else
{
as_reg_prefix = "+";
}
p_list_item->SubItems->Add( as_reg_prefix + "0x" + IntToHex((int)rom_info[i].region_addr, 8) );
p_list_item->SubItems->Add( "0x" + IntToHex((int)rom_info[i].begin_addr, 8) );
p_list_item->SubItems->Add( "0x" + IntToHex((int)rom_info[i].end_addr, 8) );
p_list_item->SubItems->Add(rom_info[i].filepath);
}
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::RedrawLVCheckBox( void )
{
unsigned short rom_count;
int rom_begin_index;
if( OPERATION_NFB == m_DnParam.eOperation )
{
BL_INFO bl_info;
if(!BL_GetInfo(m_DnParam.bl_handle, &bl_info))
{
lv->Items->Item[0]->Checked = (_TRUE==bl_info.m_enable)?true:false;
}
rom_begin_index = 1;
}
else
{
rom_begin_index = 0;
}
if(!DL_GetCount(g_DL_HANDLE, &rom_count))
{
ROM_INFO rom[MAX_LOAD_SECTIONS];
int checked_count=0;
if(!DL_Rom_GetInfoAll(g_DL_HANDLE, rom, MAX_LOAD_SECTIONS))
{
for(int i=0; i<rom_count; i++)
{
if(rom[i].enable)
{
checked_count++;
}
lv->Items->Item[rom_begin_index+i]->Checked = (_TRUE==rom[i].enable)?true:false;
}
}
if( OPERATION_NFB == m_DnParam.eOperation )
{
if( 0 < checked_count )
{
lv->Items->Item[0]->Checked = true;
BL_SetEnableAttr(m_DnParam.bl_handle, _TRUE);
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::lvClick(TObject *Sender)
{
TListView *plv = dynamic_cast<TListView *>(Sender);
if( 0<=lvChanged.iChangedIndex && lvChanged.iChangedIndex < plv->Items->Count )
{
if( OPERATION_NOR == m_DnParam.eOperation )
{
DL_Rom_SetEnableAttr(g_DL_HANDLE, lvChanged.iChangedIndex, plv->Items->Item[lvChanged.iChangedIndex]->Checked?_TRUE:_FALSE);
}
else
{
if( 0 == lvChanged.iChangedIndex )
{
BL_SetEnableAttr(m_DnParam.bl_handle, plv->Items->Item[0]->Checked?_TRUE:_FALSE);
}
else
{
DL_Rom_SetEnableAttr(g_DL_HANDLE, lvChanged.iChangedIndex-1, plv->Items->Item[lvChanged.iChangedIndex]->Checked?_TRUE:_FALSE);
}
}
RedrawLVCheckBox();
}
else
{
lv_oldClick(Sender);
}
lvChanged.iChangedIndex = NO_CHANGE;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::lv_oldClick(TObject *Sender)
{
TListView *p_lv = dynamic_cast<TListView *>(Sender);
int iLastDel=0;
int ret;
if ( p_lv->Selected == NULL )
return;
if(asROM_Path.Length()>0)
{
OpenROMDialog->InitialDir = asROM_Path;
OpenROMDialog->FileName = "";
}
else if( 4 <= p_lv->Selected->SubItems->Count )
{
iLastDel = p_lv->Selected->SubItems->Strings[3].LastDelimiter("\\:");
if ( iLastDel > 0)
{
OpenROMDialog->InitialDir = p_lv->Selected->SubItems->Strings[3].SubString(1, iLastDel-1 );
OpenROMDialog->FileName = "";
}
}
//getIndexFromListView(p_lv);
if( OpenROMDialog->Execute( ))
{
unsigned short index;
if( OPERATION_NFB == m_DnParam.eOperation )
{
if( 0 == p_lv->ItemIndex ) // boot loader
{
if(ret=BL_LoadByFilepath(m_DnParam.bl_handle, OpenROMDialog->FileName.c_str()))
{
if( FTHND_HANDLE_BUSY_NOW == ret )
{
Application->MessageBox( "Program is busy! Can not update setting right now.", "Fail", MB_OK );
return;
}
else
{
AnsiString as_msg = " Load boot-loader \"" + OpenROMDialog->FileName + "\" fail!";
Application->MessageBox( as_msg.c_str(), "Fail", MB_OK );
return;
}
}
}
else
{
index = p_lv->ItemIndex-1;
}
}
else // NOR
{
index = p_lv->ItemIndex;
}
if( ! ( OPERATION_NFB == m_DnParam.eOperation && 0 == p_lv->ItemIndex ) )
{
if(ret=DL_Rom_LoadByFilepath(g_DL_HANDLE, index, OpenROMDialog->FileName.c_str()))
//if(ret=DL_Rom_LoadByFilepath(g_DL_HANDLE, p_lv->Selected->Index, OpenROMDialog->FileName.c_str()))
{
if( FTHND_HANDLE_BUSY_NOW == ret )
{
Application->MessageBox( "Program is busy! Can not update setting right now.", "Fail", MB_OK );
return;
}
else if( FTHND_SCAT_REGION_IS_OVERLAP == ret )
{
AnsiString as_msg = "\"" + OpenROMDialog->FileName + "\" is too large and causes region overlap!";
Application->MessageBox( as_msg.c_str(), "Fail", MB_OK );
return;
}
else
{
AnsiString as_msg = " Load file \"" + OpenROMDialog->FileName + "\" fail!";
Application->MessageBox( as_msg.c_str(), "Fail", MB_OK );
return;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -