enuSpace professional 2016 기준
enuSpace 편집기 스크립트 사용자 함수 호출 (lua script)
스크립트 내에서의 다른 함수 실행
같은 객체 내의 함수 실행
각 객체는 다른 여러 개의 함수를 포함할 수 있으며 예시로 사용된 것처럼 직접 함수 이름을 호출할 수 있다.
다음 그림에서 GetColor함수는 같은 사각형 객체 내에 있으며 onmousedown함수에서 사용된 예이다.
이웃 객체 내의 함수 실행
각 객체에 함수는 이웃하는 다른 객체의 함수를 호출할 수 있다.
다음 그림에서 GetColor함수는 같은 사각형 객체 내에 있으며 onmousedown함수에서 사용된 예이다.
다음 그림은 "빨강"이라는 텍스트 객체에 SetFontSize함수를 이용하여 fonts-size를 바꾸는 함수를 만들고 이웃한 객체인 사각형 객체의 마우스다운 이벤트 함수를 이용하여 실행하는 함수 예시이다. 사각형 객체는 마우스를 클릭하여 index 값을 바꾸고 인덱스 값에 따라 이웃한 객체인 ID_TestRed 객체의 font-size를 바꾼다.
Lua Script 함수 실행
각 객체는 자식객체의 함수, 상위객체의 함수 페이지 함수, 전역 함수, 인터페이스 함수, 루아스크립트 함수 등을 실행할 수 있는데 실행되는 순서는 다음과 같다.
- 같은 객체 내의 함수
- 자식 객체의 함수
- 이웃 객체의 함수
- 상위 객체의 함수
- 페이지 함수
- 전역함수
- 인터페이스 함수
- .루아스크립트 함수
우선 순위는 같은 객체 내의 함수가 가장 높고 루아스크립트 함수가 가장 낮다. 자식 객체의 함수를 실행하기 위해서는 자식객체 id.함수 이름으로 실행해야 하며 자식객체에서 찾지 못하면 이웃 객체에서 찾는데 이웃객체에도 없으면 차례로 우선순위가 높은 순으로 찾는다. 따라서 우선 순위가 낮은 함수를 사용하려면 같은 이름의 함수는 우선 순위가 낮은 함수를 찾을 때까지 존재하지 않아야 한다. mean 함수는 테이블을 인수로 받아 테이블 내의 모든 값을 더해서 테이블의 필드 개수로 나누어 평균값을 구한 후 그 값을 반환한다. 다음 그림은 mean 전역함수를 선언한 예시이다.
다음 그림은 전역함수 mean 함수를 이용해서 onmousedown에 의해 바뀌는 index 값을 각 테이블의 필드 값에 더하고 테이블의 평균값을 구하는 전역함수 mean을 이용해서 평균값을 구해서 텍스트 객체(ID_TextRed)의 text 에 문자열을 할당하는 onmousedown함수 예제와 그 실행된 상태를 표시하는 예시이다.
다른 함수를 실행함으로써 바뀐 값을 그 후에 사용하는 방법
다른 함수를 실행함으로써 전역 변수나 다른 기타의 변수가 바뀐 상태의 것을 현재의 스크립트 함수에서 다시 사용하고자 할 때 값을 다시 가져오는 GetValue(변수이름) 을 사용하여야 하며 그냥 사용할 시는 변경된 값이 적용되지 않는다.
다음 그림은 스크립트 내에서 index의 값을 사용하는 예시를 보여준다. IncreaseIndex함수는 index값을 1씩 증가시키므로 IncreaseIndex함수가 실행된 후에는 index 값이 1이 증가되어 있으나 스크립트 내에서는 아직 이전 값을 가지고 있다. 변경된 값을 가져오기 위해서 GetValue(index)를 사용하여 현재의 값을 가지고 와서 사용한다.
'enuSpace Reference > enuSpace & lua script' 카테고리의 다른 글
lua script와 enuSpace를 이용한 로직(logic) 심볼 만들기 (0) | 2016.05.31 |
---|---|
enuSpace HMI 편집기를 이용한 동적 디스플레이 기능 (0) | 2016.01.14 |
enuSpace 그래픽 편집기와 루아 스크립트 (0) | 2016.01.13 |
lua script의 기본 문법 (0) | 2016.01.11 |
enuSpace 와 lua script language (0) | 2016.01.11 |