ethercat-linux/scripts/tc-deploy.ps1

65 lines
2.1 KiB
PowerShell
Raw Normal View History

#Requires -Version 5.1
<#
.SYNOPSIS
Full EL6695 deploy pipeline: configure PDO activate verify.
.DESCRIPTION
Orchestrates the complete workflow:
1. tc-configure-pdo.ps1 inject 1024-byte PDOs (if -SkipConfigure)
2. tc-activate.ps1 activate + restart TwinCAT
3. tc-verify.ps1 dump and verify EL6695 XML
4. Print next steps EEPROM store + J1900 consumer test
.PARAMETER SkipConfigure
Skip step 1 (PDO already configured in tsproj).
.PARAMETER Visible
Show TwinCAT XAE windows (for debugging).
.EXAMPLE
.\tc-deploy.ps1
.\tc-deploy.ps1 -SkipConfigure # PDO already set, just activate
.\tc-deploy.ps1 -Visible
#>
[CmdletBinding()]
param(
[switch]$SkipConfigure,
[switch]$Visible
)
. "$PSScriptRoot\tc-common.ps1"
New-Log $script:DefaultLogDir
$LogFile = Join-Path $script:DefaultLogDir "deploy.log"
Write-Log "========== EL6695 Deploy Pipeline ==========" $LogFile
# Step 1: Configure PDO
if (-not $SkipConfigure) {
Write-Log "[1/3] Configure PDO..." $LogFile
& "$PSScriptRoot\tc-configure-pdo.ps1" -Activate:$false
if ($LASTEXITCODE -ne 0) { Write-Log "Configure PDO failed" $LogFile; exit 1 }
} else {
Write-Log "[1/3] Skip PDO configure (already set)" $LogFile
}
# Step 2: Activate
Write-Log "[2/3] Activate configuration..." $LogFile
$activateArgs = @()
if ($Visible) { $activateArgs += "-Visible" }
& "$PSScriptRoot\tc-activate.ps1" @activateArgs
if ($LASTEXITCODE -ne 0) { Write-Log "Activate failed" $LogFile; exit 1 }
# Step 3: Verify
Write-Log "[3/3] Verify configuration..." $LogFile
$verifyArgs = @()
if ($Visible) { $verifyArgs += "-Visible" }
& "$PSScriptRoot\tc-verify.ps1" @verifyArgs
# Next steps
Write-Log "" $LogFile
Write-Log "========== Deploy complete ==========" $LogFile
Write-Log "Next steps for EEPROM persistence:" $LogFile
Write-Log " 1. From J1900: write 0x1010:01 = 0x73617665 (Store)" $LogFile
Write-Log " 2. From J1900: write 0xF008 = 0x33336695 (Soft Reset)" $LogFile
Write-Log " 3. From J1900: ./el6695_rt --consumer --mode verify" $LogFile