⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multiportflashdownloadtool.cpp_bak

📁 多串口下载手机软件的软件
💻 CPP_BAK
📖 第 1 页 / 共 5 页
字号:
{
    asDAFileName = INIFileH.read_DA_bin( "MultiPortFlashDownloadProject.ini", Application->ExeName );
    asScatFileName = INIFileH.read_Scatter( "MultiPortFlashDownloadProject.ini", Application->ExeName );
    asROMFileName = INIFileH.read_ROM( "MultiPortFlashDownloadProject.ini", Application->ExeName );
    asFATFileName = INIFileH.read_FAT( "MultiPortFlashDownloadProject.ini", Application->ExeName );
}
//----------------------------------------------------------------------------
void TMainForm::WriteFileSetting( void )
{
    INIFileH.write_DA_bin( "MultiPortFlashDownloadProject.ini", Application->ExeName, asDAFileName);
    INIFileH.write_Scatter( "MultiPortFlashDownloadProject.ini", Application->ExeName, asScatFileName);
    INIFileH.write_ROM( "MultiPortFlashDownloadProject.ini", Application->ExeName, asROMFileName);
    INIFileH.write_FAT( "MultiPortFlashDownloadProject.ini", Application->ExeName, asFATFileName);
}

//=============================================================================
void TMainForm::Display_Type( void )
{
    as_Type =  INIFileH.read_Type( "MultiPortFlashDownloadProject.ini", Application->ExeName );
    #ifndef SERVICE_CENTER
    if( as_Type.AnsiCompareIC("Download ROM and FAT") == 0 )
    {
         cbType->ItemIndex =  DOWNLOAD_ROM_AND_FAT_INDEX;
    }
    else if( as_Type.AnsiCompareIC("Download ROM") == 0 )
    {
         cbType->ItemIndex =  DOWNLOAD_ROM_INDEX;
    }
    else if( as_Type.AnsiCompareIC("Download ROM and Format") == 0 )
    {
         cbType->ItemIndex =  DOWNLOAD_ROM_AND_FORMAT_INDEX;
    }
    else
    {
         cbType->ItemIndex = FORMAT_INDEX;
    }
    #else
    cbType->ItemIndex =  DOWNLOAD_ROM_INDEX;
    #endif


}

//------------------------------------------------------------------------------
void TMainForm::Save_Type( void )
{
     #ifndef SERVICE_CENTER
     switch ( cbType->ItemIndex )
     {
         case DOWNLOAD_ROM_AND_FAT_INDEX:
              INIFileH.write_Type( "MultiPortFlashDownloadProject.ini", Application->ExeName, (AnsiString) "Download ROM and FAT");
         break;

         case DOWNLOAD_ROM_INDEX:
              INIFileH.write_Type( "MultiPortFlashDownloadProject.ini", Application->ExeName, (AnsiString) "Download ROM");
         break;

         case DOWNLOAD_ROM_AND_FORMAT_INDEX:
              INIFileH.write_Type( "MultiPortFlashDownloadProject.ini", Application->ExeName, (AnsiString) "Download ROM and Format");
         break;

         case FORMAT_INDEX:
              INIFileH.write_Type( "MultiPortFlashDownloadProject.ini", Application->ExeName, (AnsiString) "Format");
         break;

         default:  // default set to 460800
              INIFileH.write_Baseband_chip( "MultiPortFlashDownloadProject.ini", Application->ExeName, (AnsiString) "Download ROM and FAT");
         break;
     }
     #else
     INIFileH.write_Type( "MultiPortFlashDownloadProject.ini", Application->ExeName, (AnsiString) "Download ROM");
     #endif

}

//=============================================================================
void TMainForm::Display_FormatFatRangeVisible( void )
{
#ifndef SERVICE_CENTER
    if( cbType->ItemIndex == DOWNLOAD_ROM_AND_FORMAT_INDEX )
    {
        gbFormatFATRange->Visible = true;
    }
    else
#endif    
    {
        gbFormatFATRange->Visible = false;
    }
}

//---------------------------------------------------------------------------
void TMainForm::Display_FormatFatRange( void )
{
    Display_FormatFatRangeVisible();
    as_Format_FAT_range =  INIFileH.read_Format_FAT_range( "MultiPortFlashDownloadProject.ini", Application->ExeName );
    if( as_Format_FAT_range.AnsiCompareIC( "auto" ) == 0 )
    {
        rbAuto->Checked = true;
    }
    else
    {
        rbManual->Checked = true;
        as_Format_FAT_range = (AnsiString) "manual";
    }

}
//------------------------------------------------------------------------------
void TMainForm::Save_FormatFatRange( void )
{
    if( rbAuto->Checked )
    {
         INIFileH.write_Format_FAT_range( "MultiPortFlashDownloadProject.ini", Application->ExeName, (AnsiString) "auto");
    }
    else
    {
         INIFileH.write_Format_FAT_range( "MultiPortFlashDownloadProject.ini", Application->ExeName, (AnsiString) "manual");
    }



}

//==============================================================================
void TMainForm::Display_LVSetting( void )
{
    int ret;
    int iLastDel = 0;

    asROMFileName = INIFileH.read_ROM( "MultiPortFlashDownloadProject.ini", Application->ExeName );

    if( asROMFileName.AnsiCompareIC("") != 0 )
    {
        if(ret=DL_Rom_LoadByFilepath(g_DL_HANDLE, 0, asROMFileName.c_str()))
        {
            if( FTHND_HANDLE_BUSY_NOW == ret )
            {
                ShowMessage("Program is busy! Can not update setting right now.");
                return;
            }
            else if( FTHND_SCAT_REGION_IS_OVERLAP == ret )
            {
                ShowMessage( "\"" + asROMFileName + "\" is too large and causes region overlap!");
                return;
            }
            else
            {
                ShowMessage(" Load file \"" + asROMFileName + "\" fail!");
                return;
            }
        }

        iLastDel = asROMFileName.LastDelimiter("\\:");
        if ( iLastDel > 0)
        {
            asROM_Path = asROMFileName.SubString(1, iLastDel-1 );
        }

        if(b_AutoLoadResByScat)
        {
            DL_AutoLoadByScatRegionName(g_DL_HANDLE, asROMFileName.c_str(), RESOURCE_BIN|JUMPTABLE_BIN);
        }
    }

    #ifndef SERVICE_CENTER
    AnsiString as_LV_FAT_index;
    asFATFileName = INIFileH.read_FAT( "MultiPortFlashDownloadProject.ini", Application->ExeName );
    as_LV_FAT_index = INIFileH.read_LV_FAT_index( "MultiPortFlashDownloadProject.ini", Application->ExeName );
    i_LV_FAT_index = as_LV_FAT_index.ToInt();
    if( i_LV_FAT_index>=1 && cbType->ItemIndex == DOWNLOAD_ROM_AND_FAT_INDEX )
    {
        if( asFATFileName.AnsiCompareIC("") != 0 )
        {
            if(ret=DL_Rom_LoadByFilepath(g_DL_HANDLE, i_LV_FAT_index, asFATFileName.c_str()))
            {
                if( FTHND_HANDLE_BUSY_NOW == ret )
                {
                    ShowMessage("Program is busy! Can not update setting right now.");
                    return;
                }
                else if( FTHND_SCAT_REGION_IS_OVERLAP == ret )
                {
                    ShowMessage( "\"" + asFATFileName + "\" is too large and causes region overlap!");
                    return;
                }
                else
                {
                    ShowMessage(" Load file \"" + asFATFileName + "\" fail!");
                    return;
                }
            }

            iLastDel = asFATFileName.LastDelimiter("\\:");
            if ( iLastDel > 0)
            {
                asFAT_Path = asFATFileName.SubString(1, iLastDel-1 );
            }
        }
    }
    #endif
    
    RedrawLVCheckBox();

}

//------------------------------------------------------------------------------
void TMainForm::Save_LVSetting( void )
{
    INIFileH.write_ROM( "MultiPortFlashDownloadProject.ini", Application->ExeName, asROMFileName);
    #ifndef SERVICE_CENTER
    INIFileH.write_FAT( "MultiPortFlashDownloadProject.ini", Application->ExeName, asFATFileName);
    INIFileH.write_LV_FAT_index( "MultiPortFlashDownloadProject.ini", Application->ExeName, IntToStr(i_LV_FAT_index));
    #endif

    #if 0
    AnsiString as_reg_prefix;

    INIFileH.write_LV_count( "MultiPortFlashDownloadProject.ini", Application->ExeName, "rom_info_count", lv->Items->Count );

    for(int i=0; i<lv->Items->Count; i++)
    {
        write_LV_name( "MultiPortFlashDownloadProject.ini", Application->ExeName, "rom_info_name" + IntToStr(i), rom_info[i].name);
    }

    for(int i=0; i<lv->Items->Count; i++)
    {
        if( ABSOLUTE_ADDR == rom_info[i].addr_type )
        {
            as_reg_prefix = "";
        }
        else
        {
            as_reg_prefix = "+";
        }
        write_LV_region_addr( "MultiPortFlashDownloadProject.ini", Application->ExeName, "rom_info_region_addr" + IntToStr(i), as_reg_prefix + "0x" + IntToHex((int)rom_info[i].region_addr, 8));
    }

    for(int i=0; i<lv->Items->Count; i++)
    {
        write_LV_begin_addr( "MultiPortFlashDownloadProject.ini", Application->ExeName, "rom_info_begin_addr" + IntToStr(i), "0x" + IntToHex((int)rom_info[i].begin_addr, 8) );
    }

    for(int i=0; i<lv->Items->Count; i++)
    {
        write_LV_end_addr( "MultiPortFlashDownloadProject.ini", Application->ExeName, "rom_info_end_addr" + IntToStr(i), "0x" + IntToHex((int)rom_info[i].end_addr, 8) );
    }

    for(int i=0; i<lv->Items->Count; i++)
    {
        write_LV_location( "MultiPortFlashDownloadProject.ini", Application->ExeName, "rom_info_end_addr" + IntToStr(i), rom_info[i].filepath );
    }
    #endif
}



//=============================================================================
void TMainForm::Display_ComEnabled( void )
{
    int i, j;

    AnsiString as_TheFirstComNo = INIFileH.read_TheFirstComPortNo( "MultiPortFlashDownloadProject.ini", Application->ExeName );
    m_TheFirstComNo = as_TheFirstComNo.ToInt();
    AnsiString as_ComportChecked = INIFileH.read_ComEnabled( "MultiPortFlashDownloadProject.ini", Application->ExeName );
    iCOMChecked = as_ComportChecked.ToInt();
   // AnsiString as_ComPortSetting = INIFileH.read_ComPortSetting( "MultiPortFlashDownloadProject.ini", Application->ExeName );
   // iCOM = as_ComPortSetting.ToInt();

    //if(  miComManual->Checked )
    {
        for (i=0; i<MAX_SUPPORT_PORT_NUM; i++)
        {
            cbCOMArray[i]->Caption = "COM" + IntToStr( m_TheFirstComNo + i);
        }

        for(i=0;i<MAX_SUPPORT_PORT_NUM;i++)
        {
            j= (iCOMChecked & (1<<i));
            if(j==0)
            {
                cbCOMArray[i]->Checked = false;
            }
            else
            {
                cbCOMArray[i]->Checked = true;
            }
        }
    }
   
}

//----------------------------------------------------------------------------
void TMainForm::Save_ComEnabled( void )
{
    INIFileH.write_ComEnabled( "MultiPortFlashDownloadProject.ini", Application->ExeName, "0x"+IntToHex(iCOMChecked,2));
}

//============================================================================
BBCHIP_TYPE TMainForm::Get_BBChipType( AnsiString as_BBChip )
{
    if( as_BBChip.AnsiCompareIC("6205") == 0 ) return MT6205;
    else if( as_BBChip.AnsiCompareIC("6205B") == 0 ) return MT6205B;
    else if( as_BBChip.AnsiCompareIC("6208") == 0 ) return MT6208;
    else if( as_BBChip.AnsiCompareIC("6217") == 0 ) return MT6217;
    else if( as_BBChip.AnsiCompareIC("6218") == 0 ) return MT6218;
    else if( as_BBChip.AnsiCompareIC("6218B") == 0 ) return MT6218B;
    else if( as_BBChip.AnsiCompareIC("6219") == 0 ) return MT6219;
    else return UNKNOWN_BBCHIP_TYPE;
}

//---------------------------------------------------------------------------
EXT_CLOCK TMainForm::Get_ExternalClockType( AnsiString as_ExtClock )
{
    if( as_ExtClock.AnsiCompareIC("13MHz") == 0 ) return EXT_13M;
    else if( as_ExtClock.AnsiCompareIC("39MHz") == 0 ) return EXT_39M;
    else if( as_ExtClock.AnsiCompareIC("52MHz") == 0 ) return EXT_52M;
    else return EXT_26M;
}

//=============================================================================
void TMainForm::Display_BasebandChip( void )
{

    as_Baseband_chip =  INIFileH.read_Baseband_chip( "MultiPortFlashDownloadProject.ini", Application->ExeName );
    Baseband_chip_type = Get_BBChipType(as_Baseband_chip);
    switch( Baseband_chip_type )
    {

        case MT6205:
        {
             miMT6205->Checked = true;
             miAutodetectBB->Checked = false;
             miMT6205B->Checked = false;
             miMT6208->Checked = false;
             miMT6217->Checked = false;
             miMT6218->Checked = false;
             miMT6218B->Checked = false;
             miMT6219->Checked = false;
        }
        break;

        case MT6205B:
        {
            miMT6205B->Checked = true;
            miAutodetectBB->Checked = false;
            miMT6205->Checked = false;
            miMT6208->Checked = false;
            miMT6217->Checked = false;
            miMT6218->Checked = false;
            miMT6218B->Checked = false;
            miMT6219->Checked = false;
        }
        break;

        case MT6208:
        {
            miMT6208->Checked = true;
            miAutodetectBB->Checked = false;
            miMT6205->Checked = false;
            miMT6205B->Checked = false;
            miMT6217->Checked = false;
            miMT6218->Checked = false;
            miMT6218B->Checked = false;
            miMT6219->Checked = false;
        }
        break;

        case MT6217:
        {
            miMT6217->Checked = true;
            miAutodetectBB->Checked = false;
            miMT6205->Checked = false;
            miMT6205B->Checked = false;
            miMT6208->Checked = false;
            miMT6218->Checked = false;
            miMT6218B->Checked = false;
            miMT6219->Checked = false;
        }
        break;

        case MT6218:
        {
            miMT6218->Checked = true;
            miAutodetectBB->Checked =false;
            miMT6205->Checked = false;
            miMT6205B->Checked = false;
            miMT6208->Checked = false;
            miMT6217->Checked = false;
            miMT6218B->Checked = false;
            miMT6219->Checked = false;
        }
        break;

        case MT6218B:
        {
            miMT6218B->Checked = true;
            miAutodetectBB->Checked =false;
            miMT6205->Checked = false;
            miMT6205B->Checked = false;
            miMT6208->Checked = false;
            miMT6217->Checked = false;
            miMT6218->Checked = false;
            miMT6219->Checked = false;
        }
        break;

        case MT6219:
        {
            miMT6219->Checked = true;
            miAutodetectBB->Checked =false;
            miMT6205->Checked = false;
            miMT6205B->Checked = false;
            miMT6208->Checked = false;
            miMT6217->Checked = false;
            miMT6218->Checked = false;
            miMT6218B->Checked = false;
        }
        break;

        case UNKNOWN_BBCHIP_TYPE: // auto detect
        default:
        {
             miAutodetectBB->Checked = true;
             miMT6205->Checked = false;
             miMT6205B->Checked = false;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -