Operator LinkParamTranslator

Operator Library: Parameters

이 오퍼레이터는 연결된 링크의 Property에 대한 읽기 및 쓰기 액세스 권한을 제공합니다. 쓰기 액세스는 쓰기 작업을 통해 부가적인 Parameter 업데이트를 트리거할 수 있습니다.

이 오퍼레이터의 장점은 라이브러리 Parameters의 다른 오퍼레이터를 통해 링크 Property를 변경할 수 있다는 점입니다. 또한 링크 Property가 변경될 때 이 오퍼레이터를 사용하여 다른 모듈 Parameter를 변경할 수 있습니다. 이를 위해 쓰기 작업을 정의할 수 있습니다. 이 오퍼레이터를 사용하여 링크 Property를 고정하고 여러 링크 Property 간의 종속성을 강제할 수도 있습니다.

출력 O의 링크 형식은 입력 I의 형식을 엄격하게 따릅니다. 모듈 Parameter는 포트 I의 링크 Property 현재 상태를 반영합니다. 모듈 Parameter를 Read(기본값)에서 Write로 변경할 수 있습니다. Read 모드는 해당 링크 Property가 읽기 전용임을 의미합니다. 이 경우 오퍼레이터는 LinkProperties 오퍼레이터처럼 작동합니다. Parameter가 Write로 설정된 경우 이 Parameter를 설정할 수 있습니다. 이 경우 Parameter 값이 해당 링크 Property에 전달됩니다. 추가적인 영향으로 출력 포트 O의 해당 링크 Property를 더 이상 편집할 수 없으며, 이는 링크 Property를 선택적으로 고정(freezing)하는 데 유용합니다. 또한 입력 연결의 해당 링크 Property가 I 및 O의 Property에 더 이상 전달되지 않습니다. Write 모드에서는 연결된 입력 링크의 동일한 Property를 편집할 수 없는 경우에도 링크 Property Parameter를 편집할 수 있습니다. 이 경우 이전 연결된 모듈의 형식이 LinkParamTranslator 인스턴스의 형식과 일치하지 않음을 나타내는 오류가 입력 링크에 표시될 수 있습니다.

Parameter WriteAction에서는 링크 Property가 변경될 때 발생하는 동작을 정의합니다. Activate Parameter는 WriteAction에 정의된 쓰기 작업을 활성화합니다:

  • Activate가 No로 설정된 경우 액세스 플래그가 Write인 Parameter는 여전히 변경될 수 있지만 쓰기 작업은 실행되지 않습니다. 모든 링크 Property는 정적 Parameter이므로 가능한 쓰기 대상 역시 정적이어야 합니다.
  • 쓰기 대상이 자체 모듈의 Parameter인 경우, 지정된 모듈 Parameter의 모드는 Read 또는 Write일 수 있습니다.
  • Parameter의 모드가 Read인 경우, 링크 Property에 특정 규칙을 강제하기 위해 쓰기 작업을 사용할 수 있습니다.

쓰기 작업은 하나 또는 여러 개의 방정식으로 구성됩니다. 둘 이상의 방정식을 정의하는 경우 세미콜론으로 방정식을 구분하십시오. 이러한 방정식의 좌변에서는 계산 결과를 수신할 모듈과 해당 Parameter를 정의합니다. this 이 모듈의 Parameter를 참조할 때 표기법을 사용합니다. 수신 링크의 업데이트나 이 모듈의 Parameter에 대한 쓰기 액세스로 인해 링크 Property가 변경되는 즉시, Parameter WriteAction 에 정의한 방정식의 우변에 있는 공식이 실행되고 그 결과가 방정식의 좌변에 지정된 Parameter로 전달됩니다. 좌변과 마찬가지로 표기법을 사용하여 이 모듈의 Parameter를 참조할 수 있습니다. this.

예:

${this.MaxImgWidth} = (${this.MaxImgWidth} <= 1024) ? ${this.MaxImgWidth} : 1024;

공식은 디자인 내 어디에나 있는 정적 모듈 Parameter의 값을 참조할 수 있습니다. 공식에는 Parameter의 값뿐만 아니라 최소값, 최대값, 스텝 크기 또는 열거형 항목의 수치 값과 같은 Parameter의 특정 Property도 포함될 수 있습니다.

[팁]

공식 구문: 수학 연산

구문은 GenICam API 표준 버전 2.0을 준수합니다. 허용되는 공식 요소는 GenICam 표준에 정의된 공식 요소와 동일합니다:

기본 연산:
() 괄호
+ - * / 덧셈, 뺄셈, 곱셈, 나눗셈
% 나머지
** 전원
& | ^ ~ 비트 연산: and / or / xor / not
<> = > < <= >= 논리 관계: 같지 않음 / 같음 / 큼 / 작음 / 작거나 같음 / 크거나 같음
&& || 논리 and / 논리 or
<< >> 왼쪽 시프트 / 오른쪽 시프트

표 54. 기본 연산


조건 연산자

<condition> ? <true_expr> : <false_expr>

예:

${target.Value} = (${this.BitWidth} > 8) ? 2 : 1;

함수:
SGN(x) x의 부호를 반환합니다. 양수 인수에 대해서는 +1을 반환하고 음수 인수에 대해서는 -1을 반환합니다.
NEG(x) x의 부호를 바꿉니다.
ABS(x) x의 절대값을 반환합니다.
SQRT(x) x의 제곱근을 반환합니다.
TRUNC(x) x를 절사합니다. 즉, 크기가 x보다 크지 않으면서 x에 가장 가까운 정수 값을 반환합니다.
FLOOR(x) 내림하여 x보다 크지 않은 가장 큰 정수 값을 반환합니다.
CEIL(x) 올림하여 x보다 작지 않은 가장 작은 정수 값을 반환합니다.
ROUND(x,precision) precision으로 지정된 소수점 자리수만큼 x를 반올림하며, 중간값은 0에서 먼 방향으로 반올림됩니다.
SIN(x) 라디안 단위의 각도 x에 대한 사인 값을 반환합니다.
COS(x) 라디안 단위의 각도 x에 대한 코사인 값을 반환합니다.
TAN(x) 라디안 단위의 각도 x에 대한 탄젠트 값을 반환합니다.
ASIN(x) 라디안으로 표현된 x의 아크사인 주값을 반환합니다.
ACOS(x) 라디안으로 표현된 x의 아크코사인 주값을 반환합니다.
ATAN(x) 라디안으로 표현된 x의 아크탄젠트 주값을 반환합니다.
EXP(x) x의 자연 지수 함수 값을 반환합니다. 즉, e를 x제곱한 값($e^x$)입니다.
LN(x) x의 자연 로그를 반환합니다. 자연 로그는 밑이 e인 로그이며 자연 지수 함수(exp)의 역함수입니다.
LG(x) x의 상용 로그(밑이 10인 로그)를 반환합니다.
E() 오일러 상수 2.7182818284590451을 반환합니다.
PI() 원주율 상수 3.1415926535897931을 반환합니다.

표 55. 함수


예:

${target.Value} = NEG(${this.Parallelism})

[팁]

파라미터 경로

설계 내 모든 위치에서 오퍼레이터 파라미터에 액세스하려면 수식에서 해당 파라미터의 경로를 지정해야 합니다.

오퍼레이터의 파라미터에 액세스하려면 다음 구문을 사용합니다.

PathToModule: 여기서는 액세스하려는 파라미터를 가진 오퍼레이터의 상대 경로를 정의합니다. 경로는 translation 오퍼레이터 자체가 있는 계층 수준을 기준으로 합니다. 또한 액세스하는 오퍼레이터의 이름도 정의합니다. 계층 구분 기호로는 슬래시를 사용합니다.

Module: 모듈의 이름입니다.

translation 오퍼레이터 인스턴스 자체의 이름으로 다음 이름을 사용합니다. this.

[중요] 모듈을 독립적으로 유지하십시오.

번역 연산자가 위치한 계층 수준보다 더 높은 계층 수준을 향하는 경로는 정의할 수 없습니다. 이 규칙은 계층적 모듈이 자신이 인스턴스화된 환경에 대해 어떠한 정보도 알 수 없어야 한다는 논리를 따르며, 오직 이 경우에만 모듈을 자유롭게 재배치 및 복제 가능한 모듈로 사용할 수 있습니다.

[팁]

Parameter Property 액세스

수식에는 파라미터의 값뿐만 아니라 최소값, 최대값, 스텝 크기 같은 파라미터의 특정 Property도 포함할 수 있습니다.

  • ${PathToModule/Module.ParamName.From} 또는 ${PathToModule/Module.ParamName.Min}: 파라미터의 유효한 최소값 PathToModule/Module.ParamName.
  • ${PathToModule/Module.ParamName.To} 또는 ${ PathToModule/Module.ParamName.Max}: 파라미터의 유효한 최대값 PathToModule/Module.ParamName.
  • ${PathToModule/Module.ParamName.Inc}: 파라미터의 두 유효 값 사이의 증가분(스텝 크기) PathToModule/Module.ParamName.
  • ${PathToModule/Module.ParamName.Enum("EnumName")}: 열거형(enumeration) 이름의 정수 값 EnumName.

번역 수식에서는 전역 상수(global constant)를 참조할 수도 있습니다. 전역 상수는 번역 수식에서 다음을 사용하여 참조됩니다. :: 접두사를 사용하여 참조됩니다. 예: ${::DesignClock} 또는 ${::MyGlobalConst}.

[팁]

쓰기 액세스 방정식 구문

파라미터 WriteAction에서 쓰기 작업에 대한 방정식을 정의합니다. 구문은 다음과 같습니다.

여기에서 여러 대상 파라미터에 대한 여러 방정식을 정의할 수 있습니다. 개별 방정식 사이의 구분자로 세미콜론을 사용하십시오.

this 번역 연산자 인스턴스 자체를 나타냅니다.

이 문서를 통해 해당 라이브러리에 대한 전반적인 소개를 확인할 수 있습니다. Parameters in Library Parameters.

I/O Properties

Property Value
Operator Type O
Input Link I, 이미지 데이터 입력
Output Link O, 이미지 데이터 출력

Supported Link Format

Link Parameter Input Link I Output Link O
Bit Width [1, 64]1 다음과 같이 I
Arithmetic {부호 없음, 부호 있음} 다음과 같이 I
Parallelism 임의 다음과 같이 I
Kernel Columns 임의 다음과 같이 I
Kernel Rows 임의 다음과 같이 I
Img Protocol {VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D, VALT_SIGNAL} 다음과 같이 I
Color Format 임의 다음과 같이 I
Color Flavor 임의 다음과 같이 I
Max. Img Width 임의 다음과 같이 I
Max. Img Height 임의 다음과 같이 I

1

입력 Bit Width의 범위는 [1, 64]입니다. 부호 있는(signed) 입력의 경우 범위는 [2, 64]입니다. 부호 없는(unsigned) 컬러 입력의 경우 범위는 [3, 63]이며, 부호 있는 컬러의 경우 범위는 [6, 63]입니다.

Parameters

Status
Type 정적 읽기(GUI에는 쓰기로 표시되지만) 파라미터
Default 없음
Range OK 또는 오류 메시지가 발생합니다.

오류 상태를 표시합니다. 매개변수 Activate가 Yes로 설정된 경우, 다른 모듈 매개변수들이 검증됩니다. 이 매개변수는 해당 검증 결과, 즉 OK 또는 오류 메시지를 표시합니다.

이 파라미터는 최종 애플릿의 일부가 아닙니다.

Protocol
Type static write parameter
Default VALT_IMAGE2D
Range {VALT_IMAGE2D,VALT_LINE1D,VALT_PIXEL0D,VALT_SIGNAL}

링크 Property Protocol에 대한 액세스를 허용합니다. 가능한 값은 VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D, VALT_SIGNAL입니다.

ColorFormat
Type static write parameter
Default VAF_GRAY
Range {VAF_GRAY,VAF_COLOR,VAF_NONE,VAF_UNDEFINED}

링크 Property ColorFormat에 대한 액세스를 허용합니다. 가능한 값은 VAF_GRAY, VAF_COLOR, VAF_NONE, VAF_UNDEFINED입니다.

ColorFlavor
Type static write parameter
Default FL_NONE
Range {FL_NONE,FL_RGB,FL_HSI,FL_YUV,FL_LAB,FL_XYZ,FL_HSL,FL_HSV,FL_YCrCb}

링크 Property ColorFlavor에 대한 액세스를 허용합니다. 가능한 값은 FL_NONE, FL_RGB, FL_HSI, FL_YUV, FL_LAB, FL_XYZ, FL_HSL, FL_HSV, FL_YCrCb입니다.

Arithmetic
Type static write parameter
Default UNSIGNED
Range {SIGNED, UNSIGNED}

링크 Property Arithmetic에 대한 액세스를 허용합니다. 가능한 값은 SIGNED 및 UNSIGNED입니다.

BitWidth
Type static write parameter
Default 1
Range

링크 Property BitWidth에 대한 액세스를 허용합니다.

Parallelism
Type static write parameter
Default 1
Range

링크 Property Parallelism에 대한 액세스를 허용합니다.

KernelRows
Type static write parameter
Default 1
Range

링크 Property KernelRows에 대한 액세스를 허용합니다.

KernelColumns
Type static write parameter
Default 1
Range

링크 Property KernelColumns에 대한 액세스를 허용합니다.

MaxImgWidth
Type static write parameter
Default 1024
Range

link Property MaxImgWidth에 대한 액세스를 허용합니다.

MaxImgHeight
Type static write parameter
Default 1024
Range

link Property MaxImgHeight에 대한 액세스를 허용합니다.

WriteAction
Type static write parameter
Default
Range

link Property 파라미터에 대한 쓰기 액세스 시 변환을 위한 수식 정의입니다.

이 파라미터에는 자동 완성 기능과 구문 강조(syntax highlighting)를 사용할 수 있습니다. 자동 완성을 사용하려면 Module Properties 대화 상자에서 이 파라미터의 Parameter Values 필드를 클릭하고 “${”를 입력하세요. 자동 완성 기능에 대한 자세한 지침은 'Autocompletion and Syntax Highlighting for Translator and Reference Operators'에서 확인할 수 있습니다.

Activate
Type dynamic write parameter
Default No
Range {No, Yes}

Yes = WriteAction의 쓰기 방정식을 통한 참조된 파라미터 액세스가 활성화됩니다.

No = 쓰기 방정식을 통한 참조된 파라미터 액세스가 비활성화되며 파라미터 Status가 비활성화됩니다.

사용 예제

LinkParamTranslator 오퍼레이터의 사용법은 다음 예시와 같습니다.