제어
제어는 알고리즘 블럭의 기본 실행 단위로 조건 영역과 동작 영역으로 구성됩니다. 조건 영역을 만족하면 동작 영역의 동작들이 순서대로 실행됩니다. 모든 동작이 실행 완료되면 다시 조건영역이 만족하는지 검사합니다.

조건영역에는 조건, 조건그룹이 위치할 수 있으며, 동작영역에는 동작, 동작그룹, 제어가 위치할 수 있습니다.

다단구조 (nested structure)를 지원하므로 복잡한 구조도 쉽게 작성할 수 있습니다.

하나의 로직에 여러 개의 제어가 존재하는 경우 제어는 순서대로 실행되며, 모든 제어가 실행 완료되었다면 다시 처음부터 실행됩니다.

추가
로직에 추가된 블록이 하나도 없다면 우측 상단의 [+추가] -> [제어]를 클릭하여 제어를 추가합니다.

로직에 이미 블록이 존재한다면 아래의 방법으로 제어 블록을 추가할 수 있습니다.
- 제어 또는 제어그룹 안에 추가


- 제어, 제어그룹 또는 동작 영역에 있는 블록의 위 또는 아래에 추가



[사용]
제어를 사용할지 여부를 설정합니다. 사용하지 않는 제어는 실행되지 않습니다.

[이름]
표시할 이름을 입력합니다. 임의의 이름을 사용할 수 있습니다.

[조건 연산자]
조건 영역에 여러 개의 조건 또는 조건그룹이 존재할 경우를 위한 연산자입니다. 조건 영역에 하나의 조건만 존재한다면 기본값으로 설정합니다.

- 모두 만족 : 조건 영역의 모든 조건 또는 조건그룹을 만족해야 동작이 실행됩니다.

- 적어도 하나 만족 : 조건 영역의 모든 조건 또는 조건 그룹 중 적어도 하나가 만족하면 동작이 실행됩니다.

[조건 옵션]
조건 영역에 적용할 옵션입니다.

- 없음 : 조건이 참이면 조건을 만족하고 거짓이면 만족하지 않습니다.
- 반전 : 조건이 참이면 조건을 만족하지 않고 거짓이면 만족합니다.
- 참이 되는 순간 : 조건이 거짓이었다가 참이 되는 순간 한번만 조건을 만족합니다. 예) 푸시버튼을 누르는 순간
- 거짓이 되는 순간 : 조건이 참이었다가 거짓이 되는 순간 한번만 조건을 만족합니다. 예) 푸시버튼을 누른 상태에서 떼는 순간
- 참이 유지되는 시간 : 설정한 유지 시간 동안 조건이 계속 참이면 조건을 한번만 만족합니다. 조건을 만족했거나 또는 유지 시간 동안 조건이 거짓이 되면 유지 시간이 0초로 초기화됩니다. 예) 푸시버튼을 3초 동안 계속 눌렀을때
- 참이 되는 횟수: 조건이 거짓이었다가 참이 되면 횟수가 1씩 증가합니다. 설정한 횟수에 도달하면 조건을 한번만 만족합니다. 조건을 만족했거나 또는 타임아웃 시간 이내에 조건을 만족하지 않으면 횟수는 0으로 초기화됩니다. 예) 푸시버튼을 3번 눌렀을 때
[유지 시간]
유지 시간을 입력합니다. [조건 옵션]이 “참이 유지되는 시간”인 경우에만 표시됩니다.

[횟수]
횟수를 입력합니다. [조건 옵션]이 “참이 되는 횟수”인 경우에만 표시됩니다.

[타임아웃 시간]
타임아웃 시간을 입력합니다. [조건 옵션]이 “참이 되는 횟수” 인 경우에만 표시됩니다.

[타임아웃 모드]
타임아웃 모드를 선택합니다. [조건 옵션]이 “참이 되는 횟수” 인 경우에만 표시됩니다.

- 간격 시간 : 조건이 참이 되는 순간들 사이의 간격이 타임아웃 시간 이내여야 합니다. 예) 푸시버튼을 1초보다 짧은 간격으로 3번 누르기
- 전체 시간 : 조건이 처음 참이 된 순간부터 정해진 횟수를 모두 만족하는 데까지 전체 시간이 타임아웃 시간 이내여야 합니다. 예) 푸시버튼을 처음 누른 순간부터 5초 이내에 총 3번 누르기 (처음 누른 것도 포함)
[우선 순위]
제어가 제어그룹에 포함되어 있고 제어그룹의 [우선 모드]가 “우선 순위”일때 적용할 우선 순위를 입력합니다. 해당 사항이 없으면 입력하지 않아도 됩니다.

[역순으로 실행]
자식 블록들의 실행 순서를 반대로 설정합니다. 값이 false이면 위에서 아래의 방향으로, 값이 true이면 아래에서 위의 방향으로 실행됩니다.

이동
제어를 클릭하고 원하는 위치로 드래그 앤 드랍합니다.

편집
[…] -> [편집]을 클릭하여 제어를 편집합니다.

복제
[…] -> [복제]를 클릭하여 제어를 복제합니다. 복제된 블록은 동일한 레벨의 가장 아래에 생성됩니다.

삭제
[…] -> [삭제]를 클릭하여 제어를 삭제합니다. 제어에 포함된 모든 블록도 삭제되며, 삭제된 블록은 복구할 수 없으므로 주의합니다.
