# Inspect GeViSoft SDK Methods using Reflection $ErrorActionPreference = "Stop" Write-Host "==========================================" -ForegroundColor Cyan Write-Host "GeViSoft SDK Method Inspector" -ForegroundColor Cyan Write-Host "==========================================" -ForegroundColor Cyan Write-Host "" # Load the assembly $dllPath = "C:\GEVISOFT\GeViProcAPINET_4_0.dll" $assembly = [System.Reflection.Assembly]::LoadFrom($dllPath) Write-Host "Loaded: $($assembly.FullName)" -ForegroundColor Gray Write-Host "" # Get all public types $types = $assembly.GetTypes() | Where-Object { $_.IsPublic } # Focus on GeViDatabase class $geviDB = $types | Where-Object { $_.Name -eq "GeViDatabase" } if ($geviDB) { Write-Host "==========================================" -ForegroundColor Cyan Write-Host "GeViDatabase Class Methods" -ForegroundColor Cyan Write-Host "==========================================" -ForegroundColor Cyan Write-Host "" # Get methods related to Setup, Alarm, Config, Enumerate Write-Host "Methods containing Setup/Alarm/Config/Enumerate:" -ForegroundColor Yellow Write-Host "" $relevantMethods = $geviDB.GetMethods() | Where-Object { $_.Name -match 'Setup|Alarm|Config|Enumerate|GetSetup|SetSetup' } | Sort-Object Name foreach ($method in $relevantMethods) { $params = $method.GetParameters() $paramStrings = @() foreach ($p in $params) { $paramStrings += "$($p.ParameterType.Name) $($p.Name)" } $paramStr = $paramStrings -join ", " Write-Host " $($method.ReturnType.Name) $($method.Name)($paramStr)" -ForegroundColor White } Write-Host "" Write-Host "Total relevant methods: $($relevantMethods.Count)" -ForegroundColor Gray Write-Host "" # Also look for any Alarm-related methods Write-Host "All methods with 'Alarm' in name:" -ForegroundColor Yellow Write-Host "" $alarmMethods = $geviDB.GetMethods() | Where-Object { $_.Name -match 'Alarm' } | Sort-Object Name foreach ($method in $alarmMethods) { $params = $method.GetParameters() $paramStrings = @() foreach ($p in $params) { $paramStrings += "$($p.ParameterType.Name) $($p.Name)" } $paramStr = $paramStrings -join ", " Write-Host " $($method.ReturnType.Name) $($method.Name)($paramStr)" -ForegroundColor White } Write-Host "" Write-Host "Total alarm methods: $($alarmMethods.Count)" -ForegroundColor Gray Write-Host "" } # Look for other relevant types Write-Host "==========================================" -ForegroundColor Cyan Write-Host "Other Setup/Alarm Related Types" -ForegroundColor Cyan Write-Host "==========================================" -ForegroundColor Cyan Write-Host "" $setupTypes = $types | Where-Object { $_.Name -match 'Setup|Alarm|Config|ActionMapping' } | Sort-Object Name foreach ($type in $setupTypes) { Write-Host "- $($type.FullName)" -ForegroundColor White if ($type.IsClass -and !$type.IsAbstract) { $methods = $type.GetMethods() | Where-Object { !$_.IsSpecialName } | Select-Object -First 5 foreach ($m in $methods) { Write-Host " $($m.Name)()" -ForegroundColor Gray } } } Write-Host "" Write-Host "==========================================" -ForegroundColor Cyan Write-Host "Inspection Complete" -ForegroundColor Cyan Write-Host "==========================================" -ForegroundColor Cyan