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

📄 multiportflashdownloadtool.cpp_bak

📁 多串口下载手机软件的软件
💻 CPP_BAK
📖 第 1 页 / 共 5 页
字号:
    {
        DL_Rom_SetEnableAttr(g_DL_HANDLE, lvChanged.iChangedIndex, 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( ))
    {
        if(ret=DL_Rom_LoadByFilepath(g_DL_HANDLE, p_lv->Selected->Index, OpenROMDialog->FileName.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( "\"" + OpenROMDialog->FileName + "\" is too large and causes region overlap!");
                return;
            }
            else
            {
                ShowMessage(" Load file \"" + OpenROMDialog->FileName + "\" fail!");
                return;
            }
        }

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

        if(b_AutoLoadResByScat)
        {
            DL_AutoLoadByScatRegionName(g_DL_HANDLE, OpenROMDialog->FileName.c_str(), RESOURCE_BIN|JUMPTABLE_BIN);
        }

        RedrawLVCheckBox();

    }


}
//---------------------------------------------------------------------------

void __fastcall TMainForm::lvChanging(TObject *Sender, TListItem *Item,
      TItemChange Change, bool &AllowChange)
{
    lvChanged.bPreCheckBoxState = Item->Checked;
    lvChanged.iChangedIndex = NO_CHANGE;
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::lvChange(TObject *Sender, TListItem *Item,
      TItemChange Change)
{
    if( (Change == ctState) && (Item->Checked != lvChanged.bPreCheckBoxState) )
    {
        lvChanged.iChangedIndex = Item->Index;
        return;
    }

    lvChanged.iChangedIndex = NO_CHANGE; 
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::mOpenDAFileClick(TObject *Sender)
{
    FileOpenDownloadAgentExecute();        
}
//---------------------------------------------------------------------------


void __fastcall TMainForm::Openlinkmapfile1Click(TObject *Sender)
{
    FileOpenScatExecute();      
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::About1Click(TObject *Sender)
{
   // Form_About->Show();    
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::FormCreate(TObject *Sender)
{
   int i;
   int j=0;
   int iLastDel = 0;
   TIniFile *ini;
   AnsiString as_ComportEnabled;



   hPostMsgDestHandle = this->Handle;
   WindowProc = SubClassWndProc;

   // ENABLE DEBUG
   Brom_DebugOn();

   bFormatNeeded = false;
   DL_Create(&g_DL_HANDLE);         
   DA_Create(&g_DA_HANDLE);
  //READ INI

   #ifdef SERVICE_CENTER
   MainForm->Caption = (AnsiString) "Multi-port download tool (Service center)";
   rbAuto->Enabled = false;
   rbManual->Enabled = false;
   #endif

   #ifndef SERVICE_CENTER
   cbType->Items->Add( "Download ROM and FAT" );
   #endif


   cbType->Items->Add( "Download ROM");
   #ifndef SERVICE_CENTER
   cbType->Items->Add( "Download ROM and Format");
   cbType->Items->Add( "Format");
   #endif
   ReadFileSetting();








  // INIT HANDLE
  DA_SetStartAddr(g_DA_HANDLE,0x40000800);
  //Load DA.Bin
  if(asDAFileName.AnsiCompareIC("") != 0)
  {
        OpenReadDA_File(asDAFileName);
        iLastDel = asDAFileName.LastDelimiter("\\:");
        if ( asDAFileName.LastDelimiter("\\:") > 0)
        {
            asDA_Path = asDAFileName.SubString(1, iLastDel-1 );
        }
  }
  //Load scat.txt
  if(asScatFileName.AnsiCompareIC("") != 0)
  {
        OpenReadScat_File(asScatFileName);
        iLastDel = asDAFileName.LastDelimiter("\\:");
        if ( asDAFileName.LastDelimiter("\\:") > 0)
        {
            asScat_Path = asScatFileName.SubString(1, iLastDel-1 );
        }
  }
  //Load xxx.Bin(Load)
  //if(asROMFileName.AnsiCompareIC("") != 0)
 // {
 //       OpenReadROM_File(asROMFileName);
 //       iLastDel = asROMFileName.LastDelimiter("\\:");
 //       if ( asROMFileName.LastDelimiter("\\:") > 0)
 //       {
 //           asROM_Path = asROMFileName.SubString(1, iLastDel-1 );
 //       }
 // }

   //Load xxx.Bin(FAT)
  //if(asFATFileName.AnsiCompareIC("") != 0)
 // {
  //      OpenReadFAT_File(asFATFileName);
  //      iLastDel = asFATFileName.LastDelimiter("\\:");
  //      if ( asFATFileName.LastDelimiter("\\:") > 0)
  //      {
  //          asFAT_Path = asFATFileName.SubString(1, iLastDel-1 );
  //      }
  //}

  // show comport check box enabled or not
   cbCOMArray[0]  = cbCOM1;
   cbCOMArray[1]  = cbCOM2;
   cbCOMArray[2]  = cbCOM3;
   cbCOMArray[3]  = cbCOM4;
   cbCOMArray[4]  = cbCOM5;
   cbCOMArray[5]  = cbCOM6;
   cbCOMArray[6]  = cbCOM7;
   cbCOMArray[7]  = cbCOM8;
   cbCOMArray[8]  = cbCOM9;
   cbCOMArray[9]  = cbCOM10;
   cbCOMArray[10] = cbCOM11;
   cbCOMArray[11] = cbCOM12;
   cbCOMArray[12] = cbCOM13;
   cbCOMArray[13] = cbCOM14;
   cbCOMArray[14] = cbCOM15;
   cbCOMArray[15] = cbCOM16;

   COMPercentageArray[0]  = COM1Percentage;
   COMPercentageArray[1]  = COM2Percentage;
   COMPercentageArray[2]  = COM3Percentage;
   COMPercentageArray[3]  = COM4Percentage;
   COMPercentageArray[4]  = COM5Percentage;
   COMPercentageArray[5]  = COM6Percentage;
   COMPercentageArray[6]  = COM7Percentage;
   COMPercentageArray[7]  = COM8Percentage;
   COMPercentageArray[8]  = COM9Percentage;
   COMPercentageArray[9]  = COM10Percentage;
   COMPercentageArray[10] = COM11Percentage;
   COMPercentageArray[11] = COM12Percentage;
   COMPercentageArray[12] = COM13Percentage;
   COMPercentageArray[13] = COM14Percentage;
   COMPercentageArray[14] = COM15Percentage;
   COMPercentageArray[15] = COM16Percentage;

   cbAutoPollingArray[0]  = cbAutoPolling1;
   cbAutoPollingArray[1]  = cbAutoPolling2;
   cbAutoPollingArray[2]  = cbAutoPolling3;
   cbAutoPollingArray[3]  = cbAutoPolling4;
   cbAutoPollingArray[4]  = cbAutoPolling5;
   cbAutoPollingArray[5]  = cbAutoPolling6;
   cbAutoPollingArray[6]  = cbAutoPolling7;
   cbAutoPollingArray[7]  = cbAutoPolling8;
   cbAutoPollingArray[8]  = cbAutoPolling9;
   cbAutoPollingArray[9]  = cbAutoPolling10;
   cbAutoPollingArray[10] = cbAutoPolling11;
   cbAutoPollingArray[11] = cbAutoPolling12;
   cbAutoPollingArray[12] = cbAutoPolling13;
   cbAutoPollingArray[13] = cbAutoPolling14;
   cbAutoPollingArray[14] = cbAutoPolling15;
   cbAutoPollingArray[15] = cbAutoPolling16;

   shpCOMArray[0]  = shpCOM1;
   shpCOMArray[1]  = shpCOM2;
   shpCOMArray[2]  = shpCOM3;
   shpCOMArray[3]  = shpCOM4;
   shpCOMArray[4]  = shpCOM5;
   shpCOMArray[5]  = shpCOM6;
   shpCOMArray[6]  = shpCOM7;
   shpCOMArray[7]  = shpCOM8;
   shpCOMArray[8]  = shpCOM9;
   shpCOMArray[9]  = shpCOM10;
   shpCOMArray[10] = shpCOM11;
   shpCOMArray[11] = shpCOM12;
   shpCOMArray[12] = shpCOM13;
   shpCOMArray[13] = shpCOM14;
   shpCOMArray[14] = shpCOM15;
   shpCOMArray[15] = shpCOM16;

   pbCOMArray[0]  = pbCOM1;
   pbCOMArray[1]  = pbCOM2;
   pbCOMArray[2]  = pbCOM3;
   pbCOMArray[3]  = pbCOM4;
   pbCOMArray[4]  = pbCOM5;
   pbCOMArray[5]  = pbCOM6;
   pbCOMArray[6]  = pbCOM7;
   pbCOMArray[7]  = pbCOM8;
   pbCOMArray[8]  = pbCOM9;
   pbCOMArray[9]  = pbCOM10;
   pbCOMArray[10] = pbCOM11;
   pbCOMArray[11] = pbCOM12;
   pbCOMArray[12] = pbCOM13;
   pbCOMArray[13] = pbCOM14;
   pbCOMArray[14] = pbCOM15;
   pbCOMArray[15] = pbCOM16;

   TimerCOMArray[0]  = TimerCOM1;
   TimerCOMArray[1]  = TimerCOM2;
   TimerCOMArray[2]  = TimerCOM3;
   TimerCOMArray[3]  = TimerCOM4;
   TimerCOMArray[4]  = TimerCOM5;
   TimerCOMArray[5]  = TimerCOM6;
   TimerCOMArray[6]  = TimerCOM7;
   TimerCOMArray[7]  = TimerCOM8;
   TimerCOMArray[8]  = TimerCOM9;
   TimerCOMArray[9]  = TimerCOM10;
   TimerCOMArray[10] = TimerCOM11;
   TimerCOMArray[11] = TimerCOM12;
   TimerCOMArray[12] = TimerCOM13;
   TimerCOMArray[13] = TimerCOM14;
   TimerCOMArray[14] = TimerCOM15;
   TimerCOMArray[15] = TimerCOM16;

   btnCOMStartArray[0]  = btnCOM1Start;
   btnCOMStartArray[1]  = btnCOM2Start;
   btnCOMStartArray[2]  = btnCOM3Start;
   btnCOMStartArray[3]  = btnCOM4Start;
   btnCOMStartArray[4]  = btnCOM5Start;
   btnCOMStartArray[5]  = btnCOM6Start;
   btnCOMStartArray[6]  = btnCOM7Start;
   btnCOMStartArray[7]  = btnCOM8Start;
   btnCOMStartArray[8]  = btnCOM9Start;
   btnCOMStartArray[9]  = btnCOM10Start;
   btnCOMStartArray[10] = btnCOM11Start;
   btnCOMStartArray[11] = btnCOM12Start;
   btnCOMStartArray[12] = btnCOM13Start;
   btnCOMStartArray[13] = btnCOM14Start;
   btnCOMStartArray[14] = btnCOM15Start;
   btnCOMStartArray[15] = btnCOM16Start;

   btnCOMStopArray[0]  = btnCOM1Stop;
   btnCOMStopArray[1]  = btnCOM2Stop;
   btnCOMStopArray[2]  = btnCOM3Stop;
   btnCOMStopArray[3]  = btnCOM4Stop;
   btnCOMStopArray[4]  = btnCOM5Stop;
   btnCOMStopArray[5]  = btnCOM6Stop;
   btnCOMStopArray[6]  = btnCOM7Stop;
   btnCOMStopArray[7]  = btnCOM8Stop;
   btnCOMStopArray[8]  = btnCOM9Stop;
   btnCOMStopArray[9]  = btnCOM10Stop;
   btnCOMStopArray[10] = btnCOM11Stop;
   btnCOMStopArray[11] = btnCOM12Stop;
   btnCOMStopArray[12] = btnCOM13Stop;
   btnCOMStopArray[13] = btnCOM14Stop;
   btnCOMStopArray[14] = btnCOM15Stop;
   btnCOMStopArray[15] = btnCOM16Stop;

    for(i=0; i<MAX_SUPPORT_PORT_NUM;i++)
    {
        DownloadStatus[i] = DOWNLOAD_STATUS_NOTRUNNING;
    }

    for(i=0; i<MAX_SUPPORT_PORT_NUM;i++)
    {
        isStopTrigger[i] = false;
    }

    // initalization
    isFATFileLoaded = false;
     i_FlashToolFunction = FLASHTOOL_DOWNLOAD;

   // multibin
    lvChanged.iChangedIndex = NO_CHANGE;
    b_CheckTgtResLayout = true;
    b_AutoLoadResByScat = true;
    b_CompareResProjectId = true;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormShow(TObject *Sender)
{
    AnsiString as_AutoLoadResByScat;

    MainForm->Left = 13;
    MainForm->Top = 9;

   // mutlibin
 //  as_AutoLoadResByScat = INIFileH.read_AutoLoadResByScat( "MultiPortFlashDownloadProject.ini", Application->ExeName );
 //  if( as_AutoLoadResByScat.AnsiCompareIC("false") == 0 )
 ////  {
 //      b_AutoLoadResByScat = false;
 //  }
 //  else
 //  {
 //      b_AutoLoadResByScat = true;
 //  }

   Display_BasebandChip();
   Display_ExternalClock();
   Display_CheckECOVersion();
   Display_CheckTargetResourceLayout();
   Display_AutoLoadResByScat();
   Display_CompareResProjectId();
   Display_Baudrate();
   Display_Type();
   Display_ComEnabled();
   Display_AutoPollingEnabled();
   
   Display_FormatFatRange();
   Display_LVSetting();

   // access
   Display_DataSource();
   Display_DBLogOption();
   
   as_Format_FAT_begin_address = INIFileH.read_Format_FAT_Begin_Address( "MultiPortFlashDownloadProject.ini", Application->ExeName );
   as_Format_FAT_length = INIFileH.read_Format_FAT_length( "MultiPortFlashDownloadProject.ini", Application->ExeName );
   get_PullDownGPIO17();

}
//---------------------------------------------------------------------------


void __fastcall TMainForm::OpenDownloadAgentFile1Click(TObject *Sender)
{
    FileOpenDownloadAgentExecute();
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::OpenScatterFile1Click(TObject *Sender)
{
    FileOpenScatExecute(); 
}

//---------------------------------------------------------------------------
//=============================================================================
void TMainForm::ReadFileSetting( void )

⌨️ 快捷键说明

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