public/Invoke-CTAutofocus.ps1
Function Invoke-CTAutoFocus { [cmdletBinding( DefaultParameterSetName='All', #SupportsShouldProcess = $true, ConfirmImpact='high' )] Param( [Parameter( Mandatory=$true, ParameterSetName='All' )] [String]$IP, [Parameter( Mandatory=$true, ParameterSetName='All' )] [pscredential]$Credential, [Parameter( Mandatory=$false, ParameterSetName='All' )] [String]$Channel ) DynamicParam { $DynamicParameters = @{ CameraType = @{ Mandatory = $true #Position = 1 ParameterSetName = "All" Enum = $Script:SupportedCameraModels } } return New-DynamicParameterSet -ParameterTable $DynamicParameters } Begin { Write-Debug "[Invoke-CTAutoFocus] Started" $CameraType = $PSBoundParameters.CameraType #Build Submission Object $obj = @{ IP = $IP Credential = $Credential } if($Channel) { $obj.Add('Channel',$Channel) } #Choose Camera Model Switch ($CameraType) { Hanwha { return Invoke-HanwhaAutofocus -Object $obj } } } } |