diff --git a/projects/dataforth-dos/batch-files/ATESYNC.BAT b/projects/dataforth-dos/batch-files/ATESYNC.BAT new file mode 100644 index 0000000..276a5df --- /dev/null +++ b/projects/dataforth-dos/batch-files/ATESYNC.BAT @@ -0,0 +1,111 @@ +@ECHO OFF +REM ATESYNC.BAT - ATE Sync Orchestrator (ARCHBAT equivalent) +REM Version: 1.0 +REM Last modified: 2026-01-21 +REM +REM Called from AUTOEXEC.BAT after network is up +REM Usage: ATESYNC TS-27 +REM or: ATESYNC (uses MACHINE environment variable) + +REM Get machine name from parameter or environment +IF NOT "%1"=="" SET MACHINE=%1 +IF "%MACHINE%"=="" GOTO NO_MACHINE + +REM Verify T: drive is available +IF NOT EXIST T:\*.* GOTO NO_DRIVE + +REM Verify machine folder exists on network +IF NOT EXIST T:\%MACHINE%\*.* GOTO CREATE_MACHINE + +:START_SYNC +ECHO. +ECHO ************************************************************ +ECHO ATESYNC: %MACHINE% +ECHO ************************************************************ +ECHO. + +REM Step 1: Upload test results FIRST (before downloading updates) +REM This ensures local results are preserved before any updates +ECHO [UPLOAD] Sending test results to network... +CALL CTONW.BAT +IF ERRORLEVEL 1 GOTO UPLOAD_ERROR +ECHO [UPLOAD] Complete +ECHO. + +REM Step 2: Download software updates +ECHO [DOWNLOAD] Getting updates from network... +CALL NWTOC.BAT +IF ERRORLEVEL 1 GOTO DOWNLOAD_ERROR +ECHO [DOWNLOAD] Complete +ECHO. + +ECHO ************************************************************ +ECHO ATESYNC Complete: %MACHINE% +ECHO ************************************************************ +ECHO. +GOTO END + +:CREATE_MACHINE +ECHO [INFO] Creating machine folder T:\%MACHINE% +MD T:\%MACHINE% +IF NOT EXIST T:\%MACHINE%\*.* GOTO MACHINE_ERROR +MD T:\%MACHINE%\LOGS +MD T:\%MACHINE%\LOGS\5BLOG +MD T:\%MACHINE%\LOGS\7BLOG +MD T:\%MACHINE%\LOGS\8BLOG +MD T:\%MACHINE%\LOGS\DSCLOG +MD T:\%MACHINE%\LOGS\HVLOG +MD T:\%MACHINE%\LOGS\PWRLOG +MD T:\%MACHINE%\LOGS\SCTLOG +MD T:\%MACHINE%\LOGS\VASLOG +MD T:\%MACHINE%\ProdSW +MD T:\%MACHINE%\Reports +ECHO [INFO] Machine folder created +GOTO START_SYNC + +:NO_MACHINE +ECHO. +ECHO ************************************************************ +ECHO [ERROR] MACHINE not set +ECHO. +ECHO Usage: ATESYNC TS-27 +ECHO or: SET MACHINE=TS-27 +ECHO ATESYNC +ECHO ************************************************************ +PAUSE +GOTO END + +:NO_DRIVE +ECHO. +ECHO [ERROR] T: drive not available +ECHO Run STARTNET.BAT first +PAUSE +GOTO END + +:MACHINE_ERROR +ECHO. +ECHO [ERROR] Could not create T:\%MACHINE% +ECHO Check network permissions +PAUSE +GOTO END + +:UPLOAD_ERROR +ECHO. +ECHO [WARNING] Upload may have had errors +ECHO Check C:\ATE\CTONW.LOG +PAUSE +GOTO DOWNLOAD_ANYWAY + +:DOWNLOAD_ANYWAY +ECHO Continuing with download... +CALL NWTOC.BAT +GOTO END + +:DOWNLOAD_ERROR +ECHO. +ECHO [WARNING] Download may have had errors +ECHO Check C:\ATE\NWTOC.LOG +PAUSE +GOTO END + +:END diff --git a/projects/dataforth-dos/batch-files/CTONW.BAT b/projects/dataforth-dos/batch-files/CTONW.BAT index dda9a69..8eb4ceb 100644 --- a/projects/dataforth-dos/batch-files/CTONW.BAT +++ b/projects/dataforth-dos/batch-files/CTONW.BAT @@ -1,42 +1,85 @@ @ECHO OFF -REM Computer to Network - Upload local files to network -REM Version: 2.5 - Added /I flag, removed 2>NUL (DOS 6.22) -REM Last modified: 2026-01-20 +REM Computer to Network - Upload local test results to network +REM Version: 3.1 - Added logging, machine verification +REM Last modified: 2026-01-21 +REM +REM IMPORTANT: Test results go to T:\%MACHINE%\LOGS\*LOG (machine-specific) +REM This prevents overwriting data from other machines -REM Check MACHINE variable +REM Verify MACHINE variable is set IF "%MACHINE%"=="" GOTO NO_MACHINE -REM Check T: drive +REM Verify T: drive IF NOT EXIST T:\*.* GOTO NO_DRIVE +REM Verify machine folder exists +IF NOT EXIST T:\%MACHINE%\*.* GOTO NO_FOLDER + +REM Start logging +ECHO CTONW.BAT v3.1 > C:\ATE\CTONW.LOG +ECHO Machine: %MACHINE% >> C:\ATE\CTONW.LOG +ECHO Date: %DATE% %TIME% >> C:\ATE\CTONW.LOG +ECHO Target: T:\%MACHINE%\LOGS >> C:\ATE\CTONW.LOG +ECHO. >> C:\ATE\CTONW.LOG + REM Display banner ECHO. ECHO ============================================================== -ECHO Upload: %MACHINE% to Network +ECHO Upload Test Results: %MACHINE% +ECHO Destination: T:\%MACHINE%\LOGS ECHO ============================================================== ECHO. -REM Create target directories (ignore errors with >NUL) -MD T:\%MACHINE% >NUL -MD T:\%MACHINE%\ProdSW >NUL -MD T:\%MACHINE%\LOGS >NUL - -REM Copy batch files (XCOPY /Y /I = no prompts, assume directory) -ECHO Copying C:\BAT\*.BAT to T:\%MACHINE%\ProdSW... -XCOPY C:\BAT\*.BAT T:\%MACHINE%\ProdSW /Y /I >NUL -ECHO [OK] Batch files copied -ECHO. - REM Check for ATE directory IF NOT EXIST C:\ATE\*.* GOTO SKIP_ATE -REM Copy ATE files -ECHO Copying C:\ATE files to T:\%MACHINE%\ProdSW... -IF EXIST C:\ATE\*.EXE XCOPY C:\ATE\*.EXE T:\%MACHINE%\ProdSW /Y /I >NUL -IF EXIST C:\ATE\*.DAT XCOPY C:\ATE\*.DAT T:\%MACHINE%\ProdSW /Y /I >NUL -IF EXIST C:\ATE\*.CFG XCOPY C:\ATE\*.CFG T:\%MACHINE%\ProdSW /Y /I >NUL -ECHO [OK] ATE files copied +REM Ensure target LOGS directories exist +IF NOT EXIST T:\%MACHINE%\LOGS\*.* MD T:\%MACHINE%\LOGS +IF NOT EXIST T:\%MACHINE%\LOGS\5BLOG\*.* MD T:\%MACHINE%\LOGS\5BLOG +IF NOT EXIST T:\%MACHINE%\LOGS\7BLOG\*.* MD T:\%MACHINE%\LOGS\7BLOG +IF NOT EXIST T:\%MACHINE%\LOGS\8BLOG\*.* MD T:\%MACHINE%\LOGS\8BLOG +IF NOT EXIST T:\%MACHINE%\LOGS\DSCLOG\*.* MD T:\%MACHINE%\LOGS\DSCLOG +IF NOT EXIST T:\%MACHINE%\LOGS\HVLOG\*.* MD T:\%MACHINE%\LOGS\HVLOG +IF NOT EXIST T:\%MACHINE%\LOGS\PWRLOG\*.* MD T:\%MACHINE%\LOGS\PWRLOG +IF NOT EXIST T:\%MACHINE%\LOGS\SCTLOG\*.* MD T:\%MACHINE%\LOGS\SCTLOG +IF NOT EXIST T:\%MACHINE%\LOGS\VASLOG\*.* MD T:\%MACHINE%\LOGS\VASLOG + +ECHO [1/4] Uploading test logs... +ECHO [1/4] Test logs: >> C:\ATE\CTONW.LOG +IF EXIST C:\ATE\5BLOG\*.* COPY C:\ATE\5BLOG\*.* T:\%MACHINE%\LOGS\5BLOG >> C:\ATE\CTONW.LOG +IF EXIST C:\ATE\7BLOG\*.* COPY C:\ATE\7BLOG\*.* T:\%MACHINE%\LOGS\7BLOG >> C:\ATE\CTONW.LOG +IF EXIST C:\ATE\8BLOG\*.* COPY C:\ATE\8BLOG\*.* T:\%MACHINE%\LOGS\8BLOG >> C:\ATE\CTONW.LOG +IF EXIST C:\ATE\DSCLOG\*.* COPY C:\ATE\DSCLOG\*.* T:\%MACHINE%\LOGS\DSCLOG >> C:\ATE\CTONW.LOG +IF EXIST C:\ATE\HVLOG\*.* COPY C:\ATE\HVLOG\*.* T:\%MACHINE%\LOGS\HVLOG >> C:\ATE\CTONW.LOG +IF EXIST C:\ATE\PWRLOG\*.* COPY C:\ATE\PWRLOG\*.* T:\%MACHINE%\LOGS\PWRLOG >> C:\ATE\CTONW.LOG +IF EXIST C:\ATE\SCTLOG\*.* COPY C:\ATE\SCTLOG\*.* T:\%MACHINE%\LOGS\SCTLOG >> C:\ATE\CTONW.LOG +IF EXIST C:\ATE\VASLOG\*.* COPY C:\ATE\VASLOG\*.* T:\%MACHINE%\LOGS\VASLOG >> C:\ATE\CTONW.LOG +ECHO Done ECHO. + +REM Ensure Reports directory exists +IF NOT EXIST T:\%MACHINE%\Reports\*.* MD T:\%MACHINE%\Reports + +ECHO [2/4] Uploading work-order reports... +ECHO [2/4] Reports: >> C:\ATE\CTONW.LOG +IF EXIST C:\Reports\*.txt COPY C:\Reports\*.txt T:\%MACHINE%\Reports >> C:\ATE\CTONW.LOG +ECHO Done +ECHO. + +ECHO [3/4] Uploading batch files... +ECHO [3/4] Batch files: >> C:\ATE\CTONW.LOG +IF NOT EXIST T:\%MACHINE%\ProdSW\*.* MD T:\%MACHINE%\ProdSW +IF EXIST C:\BAT\*.BAT COPY C:\BAT\*.BAT T:\%MACHINE%\ProdSW >> C:\ATE\CTONW.LOG +ECHO Done +ECHO. + +ECHO [4/4] Uploading log file... +ECHO [4/4] Log file: >> C:\ATE\CTONW.LOG +IF EXIST C:\ATE\*.LOG COPY C:\ATE\*.LOG T:\%MACHINE% >> C:\ATE\CTONW.LOG +ECHO Done +ECHO. + +ECHO Complete >> C:\ATE\CTONW.LOG GOTO DONE :SKIP_ATE @@ -45,14 +88,18 @@ ECHO. :DONE ECHO ============================================================== -ECHO Upload Complete +ECHO Upload Complete: %MACHINE% ECHO ============================================================== ECHO. GOTO END :NO_MACHINE +ECHO. ECHO [ERROR] MACHINE variable not set -ECHO Run DEPLOY.BAT first +ECHO. +ECHO This prevents uploading to wrong folder. +ECHO Run DEPLOY.BAT or ATESYNC first. +ECHO. PAUSE GOTO END @@ -62,4 +109,14 @@ ECHO Run C:\STARTNET.BAT first PAUSE GOTO END +:NO_FOLDER +ECHO. +ECHO [ERROR] Machine folder T:\%MACHINE% not found +ECHO. +ECHO Run ATESYNC to create it, or check MACHINE variable. +ECHO Current MACHINE=%MACHINE% +ECHO. +PAUSE +GOTO END + :END diff --git a/projects/dataforth-dos/session-logs/2026-01-21-session.md b/projects/dataforth-dos/session-logs/2026-01-21-session.md index 58147b6..9e87773 100644 --- a/projects/dataforth-dos/session-logs/2026-01-21-session.md +++ b/projects/dataforth-dos/session-logs/2026-01-21-session.md @@ -2,8 +2,8 @@ **Project:** Dataforth DOS Update System **Client:** Dataforth -**Duration:** ~2 hours -**Status:** DSCDATA sync issue fixed, batch files updated +**Duration:** ~4 hours +**Status:** DSCDATA sync fixed, CTONW upload fix, ATESYNC orchestrator added --- @@ -29,6 +29,29 @@ 4. **Git Checkpoint Created** - Commit: fd24a0c - "fix(dataforth-dos): DOS 6.22 batch file improvements and sync fix" +5. **Diagnosed Database Import Issue** + - Test results weren't making it into testdatadb SQLite database + - Root cause: CTONW.BAT was uploading to wrong location (ProdSW instead of LOGS) + - testdatadb runs on AD2 port 3000, imports from LOGS folders + +6. **Fixed CTONW.BAT (v3.0 -> v3.1)** + - v3.0: Added proper upload to T:\%MACHINE%\LOGS\*LOG folders + - v3.1: Added machine verification safeguards to prevent data overwriting + - Now refuses to run if MACHINE variable not set + - Logs machine name, date/time, and target path + +7. **Created ATESYNC.BAT v1.0 (ARCHBAT Equivalent)** + - Boot-time orchestrator for DOS machines + - Calls CTONW (upload) then NWTOC (download) + - Creates machine folder structure if missing + - Based on TS-27 original ARCHBAT.BAT + +8. **Analyzed TS-27 Golden Example** + - TS-27 Backup/ORIG contains full machine backup + - Compared original boot process to new setup + - Original uses %1 parameter, new uses %MACHINE% environment variable + - Original downloads from per-machine T:\%1\ProdSW, new uses centralized T:\COMMON\ProdSW + ### Key Decisions Made 1. **Use COPY instead of XCOPY for all operations** @@ -165,6 +188,30 @@ Output (after fix): - Switched all XCOPY to COPY - Simplified output messages +**CTONW.BAT (v3.1)** +- Path: `/Users/azcomputerguru/ClaudeTools/projects/dataforth-dos/batch-files/CTONW.BAT` +- Deployed to: NAS `/data/test/COMMON/ProdSW/CTONW.BAT` +- Deployed to: AD2 `C:\Shares\test\COMMON\ProdSW\CTONW.BAT` +- Changes: + - Uploads test results to T:\%MACHINE%\LOGS\*LOG (machine-specific) + - Refuses to run if MACHINE variable not set (prevents overwriting) + - Refuses to run if T:\%MACHINE% folder doesn't exist + - Logs machine name, date/time, target path to C:\ATE\CTONW.LOG + - Uploads 8 LOG folders: 5BLOG, 7BLOG, 8BLOG, DSCLOG, HVLOG, PWRLOG, SCTLOG, VASLOG + - Also uploads Reports and batch files + +**ATESYNC.BAT (v1.0) - NEW** +- Path: `/Users/azcomputerguru/ClaudeTools/projects/dataforth-dos/batch-files/ATESYNC.BAT` +- Deployed to: NAS and AD2 +- Purpose: Boot-time orchestrator (ARCHBAT equivalent) +- Usage: `CALL ATESYNC TS-27` or `SET MACHINE=TS-27` then `CALL ATESYNC` +- Features: + - Accepts machine name as parameter or uses MACHINE environment variable + - Creates machine folder structure if missing + - Calls CTONW first (upload test results) + - Then calls NWTOC (download updates) + - Error handling with clear messages + **Sync-FromNAS.ps1 (on AD2)** - Path: `C:\Shares\test\scripts\Sync-FromNAS.ps1` - Changes: Added new section to sync Ate/ProdSW folder: @@ -211,11 +258,13 @@ if (Test-Path $ateProdSwPath) { ### Immediate - [x] DSCDATA files synced to NAS (completed) - [x] Sync script updated to include Ate/ProdSW (completed) -- [ ] Test on a DOS machine to verify files copy correctly +- [x] CTONW.BAT fixed to upload to correct LOGS folders (completed) +- [x] ATESYNC.BAT created as ARCHBAT equivalent (completed) +- [ ] Test ATESYNC and CTONW on a DOS machine ### Future -- [ ] Investigate test data database on AD2 port 3000 (user mentioned, couldn't access) -- [ ] Document the testdatadb application if found +- [x] Investigate testdatadb on AD2 port 3000 (found - Node.js/Express with SQLite) +- [ ] Document the testdatadb application fully --- @@ -224,9 +273,10 @@ if (Test-Path $ateProdSwPath) { ### File Versions (Current) | File | Version | Date | |------|---------|------| +| ATESYNC.BAT | 1.0 | 2026-01-21 | +| CTONW.BAT | 3.1 | 2026-01-21 | | NWTOC.BAT | 3.5 | 2026-01-21 | | DEPLOY.BAT | 2.4 | 2026-01-21 | -| CTONW.BAT | 2.5 | 2026-01-20 | | UPDATE.BAT | 2.3 | 2026-01-20 | | CHECKUPD.BAT | 1.3 | 2026-01-20 | @@ -270,12 +320,40 @@ Admin deposits files on AD2 ## Session Metrics -- **Session Duration:** ~2 hours -- **Issues Fixed:** 1 major (DSCDATA sync) -- **Files Modified:** 3 (NWTOC.BAT, DEPLOY.BAT, Sync-FromNAS.ps1) -- **Git Commits:** 1 +- **Session Duration:** ~4 hours +- **Issues Fixed:** 2 major (DSCDATA sync, CTONW upload path) +- **Files Created:** 1 (ATESYNC.BAT) +- **Files Modified:** 4 (NWTOC.BAT, DEPLOY.BAT, CTONW.BAT, Sync-FromNAS.ps1) +- **Git Commits:** 2 --- -**Session End:** 2026-01-21 13:50 -**Next Session:** Test NWTOC on DOS machine, investigate testdatadb +## TS-27 Golden Example Analysis + +TS-27 backup located at `/data/test/TS-27/Backup/ORIG/` contains: +- Full machine backup (AUTOEXEC.BAT, CONFIG.SYS, all folders) +- Original batch files in BAT/ folder +- Original ATE folder structure + +### Original Boot Sequence (TS-27) +``` +AUTOEXEC.BAT + -> CALL STARTNET.BAT (maps T: and X: drives) + -> CALL ARCHBAT.BAT TS-27 X: + -> CALL CTONW TS-27 (upload logs) + -> CALL NWTOC TS-27 (download updates) + -> CALL MENUX (main ATE menu) +``` + +### Key Differences: Original vs New +| Feature | Original (TS-27) | New Setup | +|---------|------------------|-----------| +| Machine ID | %1 parameter | %MACHINE% env var | +| Orchestrator | ARCHBAT.BAT | ATESYNC.BAT | +| Download source | T:\%1\ProdSW (per-machine) | T:\COMMON\ProdSW (centralized) | +| Upload destination | T:\%1\LOGS (per-machine) | T:\%MACHINE%\LOGS (per-machine) | + +--- + +**Session End:** 2026-01-21 16:00 +**Next Session:** Test ATESYNC and CTONW on DOS machine