블록 코딩
블록 코딩은 수학 계산, 날짜·시간 연산, 텍스트 처리, 단위 변환 등을 블록 조합으로 구현하는 도구입니다.
일반
로직의 모든 값 입력 항목에서 블록 코딩을 사용할 수 있습니다. 값 입력 항목의 우측 버튼을 클릭하면 네 가지 입력 방식을 선택할 수 있습니다.
- 직접 입력: 값을 그대로 입력합니다.
- 변수의 값: 다른 변수의 현재 값을 사용합니다.
- 블록 편집기: 블록을 조합하여 계산한 결과를 사용합니다.
- Lua 스크립트: Lua 코드를 작성하여
return값을 사용합니다.
네 방식 모두 해당 입력 항목의 타입과 일치하는 값을 반환해야 합니다. 타입이 일치하지 않으면 실행 시 오류가 발생합니다.
블록 편집기
블록 편집기를 선택하고 블록 편집을 클릭하면 편집기가 열립니다. 편집기는 기능별 블록을 카테고리로 구분한 툴박스와 블록을 연결하여 구성하는 워크스페이스로 이루어져 있습니다.
블록 사용 규칙
- 반환 블록은 워크스페이스에 미리 놓여 있으며, 계산 결과를 블록 편집기 밖으로 내보내는 유일한 경로입니다. 반환 블록에 연결한 값의 타입은 해당 값 입력 항목의 타입과 일치해야 합니다.
- 대부분의 블록은 입력 또는 출력을 가지며(둘 다 없는 블록도 있습니다), 출력이 있는 블록은 드래그하여 다른 블록의 입력에 연결합니다.
- 입력과 출력에는 데이터 타입이 있으며 같은 타입끼리만 연결됩니다. 데이터 타입의 종류는 변수 타입과 동일합니다.
- 블록 위에 마우스를 올리면 설명이 툴팁으로 표시되고, 우클릭하면 사용 가능한 명령이 표시됩니다.
- 입력 개수가 정해지지 않은 블록(조건, 텍스트 합치기, 리스트 만들기, 지역 함수의 매개변수 등)은 블록의 톱니바퀴 버튼으로 항목을 추가·삭제하거나 순서를 변경합니다.
- 이미 블록이 연결된 입력에 새 블록을 연결하면 기존 블록은 밖으로 분리됩니다.
- 쉐도우 블록은 편의를 위해 미리 채워진 블록으로, 다른 블록으로 대체하면 자동으로 삭제됩니다.
- 완성된 블록은 모두 연결된 상태여야 하며, 비어 있는 입력이나 출력이 있으면 실행 시 오류가 발생합니다.
- 여러 블록을 상하로 연결하면 위에서부터 순차적으로 실행되며, 조건문과 반복문으로 복잡한 계산도 구성할 수 있습니다.
- 반복 중단 블록은 반복 블록 안에서만, 지역 함수의 다음을 반환 블록은 지역 함수 안에서만 사용할 수 있습니다.
블록
툴박스는 18개의 기능 카테고리로 구성됩니다. 편집기 상단의 검색창에 이름이나 설명을 입력하면 해당하는 블록만 추려서 표시하며, 각 블록의 상세 설명은 블록 위에 마우스를 올려 툴팁으로 확인할 수 있습니다.
| 카테고리 | 포함 블록 |
|---|---|
| 변수 | 프로젝트 변수를 읽고 쓰는 블록입니다. |
| 논리 | 조건문(if), 비교 연산, 불리언 연산입니다. |
| 반복 | 횟수, 조건, 증감, 리스트 반복과 반복 중단입니다. |
| 수학 | 사칙연산과 수학 함수입니다. |
| 날짜/시간 | 날짜·시간 계산과 변환입니다. |
| 텍스트 | 문자열 조작입니다. |
| 바이트 배열 | 이진 데이터 조작입니다. |
| 리스트 | 리스트 생성, 조회, 조작입니다. |
| 타입 변환 | 변수 타입 간 변환입니다. |
| 단위 변환 | 길이, 압력, 에너지, 속도, 온도, 천문 거리, 각도, 좌표(도·분·초), 방위 변환입니다. |
| 자연/과학 | 태양과 달의 출몰 시각·방위·고도, 습공기 특성, 표준 대기압 계산입니다. |
| 비트/바이트 | 비트 연산입니다. |
| 복소수/벡터 | 복소수와 벡터 연산입니다. |
| JSON | JSON 파싱과 생성입니다. |
| XML | XML 파싱과 생성입니다. |
| 색상 | 색상 값 조작과 변환입니다. |
| 지역 변수 | 해당 블록 편집기 안에서만 사용하는 임시 변수입니다. |
| 지역 함수 | 해당 블록 편집기 안에서 정의하여 호출하는 함수입니다. |
지역 변수와 지역 함수
지역 변수는 해당 블록 편집기 안에서만 사용하는 변수로, 계산 중간값의 임시 저장에 사용합니다. 프로젝트 변수와는 별개이므로 다른 로직이나 대시보드에서는 보이지 않습니다. 변수 만들기, 값 쓰기, 값 읽기, 숫자 더하기 블록을 제공하며, 반복 카테고리의 증감 반복과 리스트 반복은 인덱스와 항목을 지역 변수에 저장하는 방식으로 동작합니다.
지역 함수는 같은 계산을 여러 곳에서 반복해야 할 때 사용합니다. 반환값이 없는 함수와 반환값이 있는 함수 두 가지를 정의할 수 있고, 블록의 톱니바퀴 버튼으로 입력 매개변수를 추가합니다. 정의한 함수는 같은 편집기 안의 다른 블록에서 호출 블록으로 실행하며, 호출 블록도 반환값 유무에 따라 두 가지입니다. 함수 도중에 값을 돌려주려면 다음을 반환 블록을 사용합니다.