EnumParamTranslator 연산자

Operator Library: Parameters

EnumParamTranslator 연산자는 하나 또는 여러 개의 다른 연산자의 매개변수에 대한 변환된 액세스(읽기 및 쓰기)를 허용합니다. 계산을 위해 수식을 정의합니다. 이 수식의 구문은 GenICam API 버전 2.0을 따릅니다.

EnumParamTranslator 연산자는 VA_ENUM 유형의 맵 매개변수를 생성합니다. 이 맵 매개변수의 이름은 Value입니다.

연산자는 매개변수 Value의 유형을 VA_ENUM으로 정의하지만, 쓰기 또는 읽기 연산 중에 액세스되는 매개변수의 데이터 유형을 제한하지는 않습니다. 예를 들어, 연산자에 정의된 수식에는 float 유형의 매개변수에 대한 액세스가 포함될 수 있습니다.

'조치' 읽기

ReadAction 매개변수에서는 변환 연산자의 Value 매개변수에 대한 읽기 액세스 시 어떤 동작이 수행될지 정의합니다. Value 매개변수는 단순히 값을 저장하는 것이 아닙니다. 대신, Value 매개변수의 값은 수식을 통해 계산됩니다. 이 수식은 ReadAction 매개변수에서 정의합니다. Value 매개변수에 대한 읽기 액세스가 발생하면, ReadAction에서 정의한 수식이 실행되고 그 결과가 값을 요청한 요소로 전달됩니다.

이 수식에는 설계 내 어디에서나 연산자 매개변수의 값을 포함할 수 있습니다. 이러한 값 중 하나가 변경되는 즉시, 변환 연산자의 매개변수 ‘Value’에 대한 계산 결과는 (이전에 ‘Value’ 매개변수가 가졌던 값과는 다른) 새로운 값으로 나오게 됩니다. 수식에는 매개변수의 값뿐만 아니라, 최소값, 최대값, 단계 크기 또는 열거형 항목의 수치와 같은 매개변수의 특정 속성도 포함될 수 있습니다.

작성 작업

WriteAction 매개변수에서는 변환 연산자의 Value 매개변수에 대한 쓰기 액세스 시 어떤 동작이 수행될지 정의합니다. 참조 연산자와는 달리, Value 매개변수의 값을 디자인 내의 다른 매개변수로 단순히 전달하지는 않습니다. 대신, 매개변수 Value의 값은 변환 연산자의 매개변수 WriteAction에서 정의한 일련의 쓰기 동작에 사용됩니다. 쓰기 동작은 하나 이상의 방정식으로 구성됩니다. 이 방정식들의 좌변을 통해 어떤 연산자의 어떤 매개변수가 계산 결과를 수신할지 정의합니다. 방정식을 두 개 이상 정의하는 경우, 세미콜론으로 방정식들을 구분하십시오. 매개변수 Value에 대한 쓰기 액세스가 발생하면, 매개변수 WriteAction에서 정의한 방정식의 우변에 있는 수식(들)이 실행되고, 그 결과가 방정식의 좌변에 지정된 매개변수(들)로 전달됩니다.

이 수식은 설계 내 어디에서나 연산자 매개변수의 값을 참조할 수 있습니다. 이러한 값 중 하나가 변경되는 즉시, ‘값’ 매개변수에 이전과 동일한 값을 다시 입력하면 계산 결과가 달라집니다. 수식에는 매개변수의 값뿐만 아니라, 최소값, 최대값, 단계 크기 또는 열거형 항목의 수치와 같은 매개변수의 특정 속성도 포함할 수 있습니다.

[팁] 번역 연산자 매개변수의 구문

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

[팁]

매개변수 경로

설계 내 어느 곳에서든 연산자 매개변수에 접근하려면, 수식 내에 해당 매개변수의 경로를 명시해야 합니다.

연산자의 매개변수에 접근하려면 다음 구문을 사용합니다:

"PathToModule": 여기에서는 매개변수에 접근하려는 연산자에 대한 상대 경로를 정의합니다. 이 경로는 번역 연산자 자체가 위치한 계층 수준을 기준으로 합니다. 또한 접근할 연산자의 이름도 정의합니다. 계층 구분자로 슬래시를 사용하십시오.

"모듈": 모듈의 이름.

번역 연산자 인스턴스 자체의 이름으로는 “this”를 사용합니다.

[중요] 모듈 간의 독립성을 유지하세요

It is not allowed to define a path towards a hierarchical level higher than the hierarchical level the translation operator is located. This rule follows the logic that a hierarchical module is not allowed to know anything about the environment it is instantiated in, because only in this case it can be used as a freely relocatable and replicable module.

[팁]

매개변수 속성에 대한 액세스

이 수식에는 매개변수의 값뿐만 아니라, 최소값, 최대값, 단계 크기 등과 같은 매개변수의 특정 속성도 포함될 수 있습니다:

  • ${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")}: 열거형 이름의 정수 값 EnumName.

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

[팁]

쓰기 접근 방정식의 구문

WriteAction 매개변수에서 정의하는 쓰기 작업에 대한 방정식입니다. 구문은 다음과 같습니다:

여기에서는 여러 대상 매개변수에 대해 여러 방정식을 정의할 수 있습니다. 개별 방정식 사이에는 세미콜론을 구분 기호로 사용하십시오.

"this"는 번역 연산자 인스턴스 자체를 가리킵니다.

WriteAction 방정식의 예시:

예:

[팁]

읽기 접근 방정식의 구문

The equation for the read action you define in parameter ReadAction. The equation always starts with "${this.Value}=" . It has the following syntax:

ReadAction 방정식의 예시:

매개변수 “Range”에서 열거형을 정의하는 구문

Use the following Syntax: "<String1>"=0;"<String2>"=1; "<String3>"=2;

예:

지도 매개변수 참조

디자인 계층 구조 내에서 맵 매개변수 ‘Value’가 표시되고 접근 가능한 대상을 정의할 수 있습니다. 이 대상은 ‘DisplayHierarchy’와 ‘DisplayName’이라는 두 가지 매개변수로 정의됩니다. ‘DisplayHierarchy’에서는 번역 작업자 자체가 위치한 동일한 프로세스 내의 계층적 상자를 지정합니다. DisplayName 매개변수에서는 대상 매개변수의 이름을 설정합니다. DisplayHierarchy와 DisplayName이 모두 설정된 경우, DisplayName으로 정의된 매개변수는 DisplayHierarchy가 지정한 계층적 상자 내에서 사용할 수 있게 됩니다. DisplayName이 비어 있으면 매개변수가 생성되지 않습니다. DisplayName이 설정되었으나 DisplayHierarchy가 비어 있는 경우, DisplayName으로 정의된 매개변수는 상위 계층 구조(즉, 변환 연산자 자체가 위치한 계층적 상자)에 추가됩니다.

이를 통해 (디자인의) 원하는 모든 계층 수준에서 맵 매개변수 ‘Value’에 접근할 수 있습니다. 이는 특히 보호된 계층적 상자를 다룰 때 유용합니다. 보호된 계층적 상자 자체의 속성 바로 아래에서 이 매개변수를 사용할 수 있도록 설정할 수 있습니다.

매핑된 매개변수는 그 자체를 참조할 수 있습니다. 따라서 번역 연산자 내에서 매개변수 Value의 내용을 참조하거나, 매개변수 DisplayName 및 DisplayHierarchy 매개변수에서 정의한 매개변수를 참조할 수 있습니다. 이는 보호된 계층적 상자가 다른 보호된 계층적 상자로 구성되어 있을 때 특히 중요합니다.

이 오퍼레이터는 디자인의 데이터 흐름 구조를 방해하지 않으므로 입력과 출력이 없습니다.

라이브러리 파라미터에 대한 일반적인 소개는 Library Parameters에서 확인할 수 있습니다.

I/O Properties

Property Value
Operator Type None (입력 또는 출력이 없는 경우)

지원되는 Link Format

None

Parameters

Status
Type 정적 읽기(GUI에는 쓰기로 표시됨) 파라미터
Default 없음
Range OK 또는 오류 메시지

오류 상태를 표시합니다. Activate 매개변수가 Yes로 설정된 경우, 다른 연산자 설정이 확인됩니다. 이 매개변수는 해당 확인 결과를 표시하며, 즉, OK 또는 오류 메시지 중 하나가 표시됩니다.

이 파라미터는 최종 앱릿에 포함되지 않습니다.

DisplayName
Type 정적 쓰기 파라미터
Default 없음
Range 임의의 문자열

디자인의 다른 지점에서 매개변수 ‘Value’에대한 접근 권한을 부여하거나 이매개변수에서 다른 지점으로의 접근 권한을 부여하려면, 새로운 매개변수를 정의해야 합니다. 여기에서 이 새로운 매개변수의 이름을 지정하십시오.

이 필드가 비어 있으면 새로운 매개변수가 생성되지 않습니다.

DisplayHierarchy
Type 정적 쓰기 파라미터
Default 없음
Range 임의의 문자열

파라미터 DisplayName에서 정의한 새 맵 파라미터를 연결할 계층적 상자(Hierarchical Box)를 여기에 지정합니다.

이 매개변수의 경우 자동 완성 기능과 구문 강조 표시 기능을 사용할 수 있습니다. 자동 완성을 사용하려면, 모듈 속성 대화 상자에서 이 매개변수의 ‘매개변수 값’ 필드 내부를 클릭한 다음 TAB 키를 누르십시오. 자동 완성 기능에 대한 더 자세한 지침은 '번역자 및 참조 연산자에 대한 자동 완성 및 구문 강조 표시'에서 확인할 수 있습니다 .

새 파라미터 DisplayName을 정의했으나 파라미터 DisplayHierarchy를 비워둔 경우: 새 파라미터는 참조 연산자 인스턴스를 포함하는 계층적 상자에 추가됩니다. (참조 연산자 인스턴스가 최상위(프로세스) 수준에 있는 경우에는 이 작업이 불가능합니다.)

[참고] 표시 대상 경로 설정 구문

새 파라미터가 디자인의 다른 위치에 표시되도록 하려면, 파라미터 DisplayHierarchy에 새 파라미터를 포함할 계층적 상자의 경로를 지정해야 합니다.

구문은 다음과 같습니다:

<Path> is the relative path from process level to the hierarchical level of the design where the <Hierarchical Box> is located that is to receive the new parameter. Thus, parameter DisplayHierarchy can only address hierarchical boxes within the same process. Use a slash as separator between different hierarchical levels.

<HierarchicalBox> is the name of the hierarchical box that is to receive the new map parameter.

예: Level0/Level1

Value
Type static, dynamic, write, read 파라미터
Default Default
Range

읽기 및 쓰기 액세스를 위해 지정된 방정식을 통해 다른 매개변수에 액세스하기 위한 매개변수.

설명
Type 정적 쓰기 파라미터
Default -
Range 임의의 텍스트

여기에 ‘Value’ 매개변수에 대한 설명을 입력하세요.

Range
Type 정적 쓰기 파라미터
Default "Default"=0;
Range

이름-값 쌍의 정의.

WriteAction
Type 정적 쓰기 파라미터
Default
Range

매개변수 Value에 대한 쓰기 액세스 시 평행 이동 방정식의 정의.

이 매개변수의 경우 자동 완성 기능과 구문 강조 표시 기능을 사용할 수 있습니다. 자동 완성 기능을 사용하려면, 모듈 속성 대화 상자에서 이 매개변수의 ‘매개변수 값’ 필드 내부를 클릭한 후 “${”를 입력하십시오 . 자동 완성 기능에 대한 더 자세한 지침은 ‘번역자 및 참조 연산자에 대한 자동 완성 및 구문 강조 표시’에서 확인할 수 있습니다 .

ReadAction
Type 정적 쓰기 파라미터
Default
Range

매개변수 Value에 대한 읽기 액세스 시 평행 이동 방정식의 정의.

이 방정식은 항상 "${this.Value}="로 시작합니다.

이 매개변수의 경우 자동 완성 기능과 구문 강조 표시 기능을 사용할 수 있습니다. 자동 완성 기능을 사용하려면, 모듈 속성 대화 상자에서 이 매개변수의 ‘매개변수 값’ 필드 내부를 클릭한 후 “${”를 입력하십시오 . 자동 완성 기능에 대한 더 자세한 지침은 ‘번역자 및 참조 연산자에 대한 자동 완성 및 구문 강조 표시’에서 확인할 수 있습니다 .

Activate
Type dynamic write 파라미터
Default 아니요
Range {No,Yes}

예 = 참조된 매개변수에 대한 접근(읽기 및 쓰기 방정식을 통해)이 활성화됩니다.

No = 참조된 매개변수에 대한 접근(읽기 및 쓰기 방정식을 통한)이 비활성화되며, 매개변수 Status도 비활성화됩니다. DisplayName 및 DisplayHierarchy 매개변수는 아무런 영향을 미치지 않습니다.

사용 예

다음 예제에서는 EnumParamTranslator 연산자의 사용법을 보여줍니다.

  • '하드웨어 테스트'

    DMA, RAM, GPIO, 트리거 및 LED에 대한 하드웨어 자가 진단 예시.

  • '매개변수 변환'

    예제 - 매개변수 조작을 위해 매개변수 변환 연산자를 사용하는 방법을 보여줍니다.