REM CRC: 0796FC1E6A776AF9156B257209C35258CE7C28B3EC20AEA2C632DB392A0E4BFD51BCA0B0BE9D29A6967C85454D48D34EF6A4CCB7873802B223E4F4A1008A35919CE852FCC2E76CD08880CFFD18B90BBB3A0DDF873040DD7BD8DA408700E5719BF06422213D4689B236704C7C6C9A47105E07F5A3DAE9F727EBE89217067498807D244771FDC991670F5FFC06582E728E4759676487E14245E7CE4E83DB1D25714B4A4F3814D91BF78F4943FF2251F1F8F8986F778F588E992C3050DA273BE4EED69D378A7502D658A41674B02394C7C399AE4FB97F2182026F5155CB06B551640B4EDED414B02673
REM REVISION: 9.0
REM GUID: 23F1E3A0-C4DC-4746-B4FD-05C4AFBA61E9
REM DATE: 15\10\2024
REM DIR: FCD\ESP\Batch\esp32_prog.bat

@SET BASE_DIR=%~1
@SET TARGET=%~2
@SET OUT_DIR=%~3
@SET PORT=%~4
@SET BAUD=%~5
@SET CONFIG=%~6
@SET CHIPTYPE=%~7

@ECHO OFF

@IF "%BASE_DIR:~-2%"=="\\" SET "BASE_DIR=%BASE_DIR:~0,-1%"

@SET DOS_BUILD_DIR=%BASE_DIR%mtx%CONFIG%

@REM Remove spaces from the path ...
@SET DOS_BUILD_DIR=%DOS_BUILD_DIR: =_%

@ECHO Programming: %TARGET% ...

@REM Detect new toolchain install
@IF EXIST %BASE_DIR%esp-tools\ (
@GOTO SETUPTOOLCHAIN
) ELSE (
@SET TOOLS_DIR=%BASE_DIR%
@GOTO SKIPSETUPTOOLCHAIN
)

:SETUPTOOLCHAIN

@SET IDF_TOOLS_PATH=%BASE_DIR%esp-tools\
@SET TOOLS_DIR=%BASE_DIR%frameworks\esp-idf-v5.3.1\
@SET IDF_PYTHON_DIR=%IDF_TOOLS_PATH%python_env\idf5.3_py3.11_env\Scripts\
@SET IDF_GIT_DIR=%IDF_TOOLS_PATH%tools\idf-git\2.44.0\bin
@SET PATH=%IDF_PYTHON_DIR%;%IDF_GIT_DIR%;%PATH%

:SKIPSETUPTOOLCHAIN

@PUSHD "%TOOLS_DIR%"
@FOR /F "tokens=*" %%g IN ('git describe') do @(SET IDFVERSION=%%g)
@ECHO IDF Version: %IDFVERSION% ...
@POPD

@REM Do the prog ...
@PUSHD "%DOS_BUILD_DIR%"
@CALL  "%TOOLS_DIR%export.bat"

@IF "%IDFVERSION:~1,1%"=="4" (GOTO BUILDV4) ELSE (GOTO BUILDV5)

:BUILDV4
@idf.py -p %PORT% -b %BAUD% flash
GOTO BUILDDONE

:BUILDV5
@idf.py --no-hints -p %PORT% -b %BAUD% flash
GOTO BUILDDONE

:BUILDDONE

@POPD

@IF %ERRORLEVEL% EQU 0 GOTO SUCCESS
@ECHO Programming Failed.
@EXIT 1

:SUCCESS
@EXIT 0

