본문 바로가기
앱인벤터/앱인벤터 컴포넌트

앱인벤터 블루투스서버 컴포넌트

by flycoding 2022. 6. 15.
반응형

앱인벤터 블루투스서버 컴포넌트

 

앱인벤터의 컴포넌트들을 이해와 실제 예제를 통해 실습을 통해 모바일 앱 개발에 활용도를 높이고자 한다

 

블루투스서버 컴포넌트는 블루투스를 사용하여 스마타폰과 다른 스마트폰이 연결하고 통신하는데 사용하는 컴포넌트이다. 블루투스서버 컴포넌트는 통신을 위해 Serial Port Profile(SPP)를 사용한다. 만약 저절전 블루투스를 사용하는데 관심이 있다면 BluetoothLE 확장을 참고하자.

 

블루투스서버 컴포넌트

팔레트의 연결 부분에서 블루투스서버 컴포넌트는 보이지 않는 컴포넌트로, 뷰어에 drag&drop하면 화면에는 아무것도 표시되지 않는다. 본문에서는 블루투스서버 컴포넌트를 사용하여 다른 스마트폰과 통신하는 앱을 만들어보자.

 

팔레트

블루투스서버 컴포넌트는 '연결'에 있다. 블루투스클라이언트  컴포넌트를 오른쪽 뷰어에 Drag&Drop하면 추가된다.

 

뷰어

컴포넌트들을 추가했을 때, 기본적으로 사각형이 뷰어 화면에 출력된다.

뷰어에는 보이는 않는 컴포넌트로 블루투스서버  컴포넌트 외에 아래 그림과 같은 화면으로 구성되어 있다.

 

앱인벤터 블루투스서버 컴포넌트 뷰어 화면

 

컴포넌트

 

블루투스서버 컴포넌트를 활용한 간단한 데이터 송수신 앱에서 활용되는 컴포넌트는 아래와 같다. 

- 블루투스서버 컴포넌트

  - 블루투스클라이언트와 연결하는 블루투스서버 컴포넌트

- 레이블 컴포넌트 4개 :

  - 레이블1 : "연결상태" 를 표시하는 레이블 

  - 레이블2 : "none" 블루투스 연결 상태를 표시하는 레이블

  - 레이블3 : "클라이언트 수신데이터" 를 표시하는 레이블

  - 레이블4 : "Messages..." 클라이언트로부터 수신되는 메시지를 표시하는 레이블

- 텍스트박스 컴포넌트 1개 :

  - 클라이언트로 문자열을 전송하기 위한 텍스트 입력 박스이다.

- 버튼 컴포넌트 3개

  - 버튼 1 : 연결수락 버튼 컴포넌트

  - 버튼 2 : 연결끊기 버튼 컴포넌트

  - 버튼 3 : 텍스트박스에 입력한 문자열을 클라이언트로 송신하기 위한 버튼 컴포넌트

- 시계 컴포넌트

  - 주기적으로 블루투스 연결 상태를 확인하기 위한 타이머

- 알림 컴포넌트

  - 블루투스 연결에 '경고창보이기' 알림을 표시하기 위해 알림 컴포넌트를 사용한다.

 

앱인벤터 블루투스서버 컴포넌트 데이터송수신 활용예제

 

블루투스서버 컴포넌트 속성값

블루투스서버 속성값은 문자인코딩, 구분바이트, 높은바이트우선여부, 보안 속성값이 있다.

문자인코딩(CharacterEncoding) 속성값은 블루투스 통신을 통해 텍스트를 발신, 송신할 때 사용하는 문자인코딩을 설정한다. 기본값은 UTF-8값이다.

구분바이트(DelimiterByte) 속성값은 '텍스트받기', '부호있는바이트받기', '부호없는바이트받기' 블럭을 호출할 때 바이트수(numberOfBytes) 인자값에 음수를 전달할 때 사용한다.

높은바이트우선순위(HighByteFirst) 속성값은 숫자를 송수신할 때 첫번째 부호 바이트를 먼저 보낼지 여부를 설정하는 값이다.

보안(Secure) 속성값은 보안 연결을 사용할지 여부를 설정하는 값이다.

 

앱인벤터 블루투스서버 컴포넌트 속성값

 

. 기타 속성값

가용(Available) : 블루투스가 기기 상에서 사용 가능하면 참값, 아니면 거짓값을 가진다.

사용가능(Enabled) : 블루투스가 사용가능하면 참값, 불가능하면 거짓값이다.

연결수락(IsAccepting) : 클라이언트 블루투스 기기에 연결 요청이 올 경우, 연결 수락할지에 대한 속성값이다. 연결수락을 하면 참값이고, 거절하면 거짓값이다. 

연결(IsConneted) : 클라이언트 블루투스 기기에 연결이 완료되었는지에 대한 속성값이다. 연결이 완료되면 참값이고, 연결이 되어있지 않으면 거짓값이다. 

 

블루투스서버 컴포넌트 이벤트 블럭들

블루투스서버 컴포넌트 이벤트 블럭에는 BluetoothError, 연결되었을때 이벤트 블럭이 있다.

 

. 블루투스서버 컴포넌트 BluetoothError 블럭

블루투스서버에서 연결시 오류가 발생했을 때 호출되는이벤트 블럭이다. 인자값으로 '함수이름'과 '메시지'가 반환된다.

 

앱인벤터 블루투스클라이언트 컴포넌트 BluetoothError 블럭

. 블루투스서버 컴포넌트 연결되었을때(ConnectionAccepted) 블럭

블루투스 연결을 수락이 되었을 때 호출되는 이벤트 블럭이다.

 

앱인벤터 블루투스서버 컴포넌트 연결되었을때 블럭

 

블루투스서버 컴포넌트 호출 블럭들

블루투스클라언트 컴포넌트에 호출 블럭은 접속승인하기, UUID로접속승인하기, 받을수있는바이트크기가져오기, 연결끊기, 부호있는1바이트숫자받기, 부호있는2바이트숫자받기, 부호있는4바이트숫자받기, 부호있는바이트받기, 텍스트받기, 부호없는1바이트숫자받기, 부호없는2바이트숫자받기, 부호없는4바이트숫자받기, 부호없는바이트받기, 1바이트숫자보내기, 2바이트숫자보내기, 4바이트숫자보내기,  바이트보내기, 텍스트보내기, 수신정지하기 등의 호출 블럭이 있다.

 

. 블루투스서버 컴포넌트 접속승인하기 블럭

Serial Port Profile(SPP)를 가지는 연결요청을 승인하는 블럭이다.

 

앱인벤터 블루투스서버 컴포넌트 접속승인하기 블럭

 

. 블루투스서버 컴포넌트 UUID로접속승인하기 블럭

특정UUID를 가지는 연결 요청을 승인하는 블럭이다.

 

UUID에 관련된 내용은 '앱인벤터 블루투스클라이언트 컴포넌트' 글을 참조하세요

앱인벤터 블루투스클라이언트 컴포넌트

 

앱인벤터 블루투스클라이언트 컴포넌트

앱인벤터 블루투스클라이언트 컴포넌트 앱인벤터의 컴포넌트들을 이해와 실제 예제를 통해 실습을 통해 모바일 앱 개발에 활용도를 높이고자 한다. 블루투스클라이언트 컴포넌트는 블루투스

flycoding.tistory.com

 

앱인벤터 블루투스서버 컴포넌트 UUID로접속승인하기 블럭

 

. 블루투스서버 컴포넌트 받을수있는바이트크기가져오기 블럭

입력스트림으로부터 수신할 수 있는 바이트의 크기를 가져오는 블럭이다.

앱인벤터 블루투스서버 컴포넌트 받을수있는바이트크기가져오기 블럭

 

. 블루투스서버 컴포넌트 연결끊기 블럭

연결된 블루투스 기기의 연결을 끊는 블럭이다.

 

앱인벤터 블루투스서버 컴포넌트 연결끊기 블럭

 

. 블루투스서버 컴포넌트 부호있는1바이트숫자받기 블럭

. 블루투스서버 컴포넌트 부호있는2바이트숫자받기 블럭

. 블루투스서버 컴포넌트 부호있는4바이트숫자받기 블럭

부호있는1바이트숫자를 수신하는 블럭이다.

부호있는2바이트숫자를 수신하는 블럭이다.

부호있는4바이트숫자를 수신하는 블럭이다.

앱인벤터 블루투스서버 컴포넌트 부호있는1바이트숫자받기 블럭

 

. 블루투스서버 컴포넌트 부호있는바이트받기 블럭

입력 스트림으로부터 부호있는 바이트를 '바이트수'만큼 받고 받은 바이트들을 리스토로 반환한다.

만일 '바이트수'가 음수이면, 이 메소드는 구분바이트가 수신될 때까지 바이트들을 받는다. 구분바이트 값은 반환되는 리스트에 포함된다.

 

앱인벤터 블루투스서버 컴포넌트 부호있는바이트받기 블럭

 

. 블루투스서버 컴포넌트 텍스트받기 블럭

입력 스트림으로부터 '바이트 수' 만큼 바이트를 받으며, 받은 바이트들을 텍스트로 변환한다.

만일 '바이트수'가 음수이면 구분바이트를 읽을 때까지 바이트들을 받는다.

 

앱인벤터 블루투스서버 컴포넌트 텍스트받기 블럭

 

. 블루투스서버 컴포넌트 부호없는1바이트숫자받기 블럭

. 블루투스서버 컴포넌트 부호없는2바이트숫자받기 블럭

. 블루투스서버 컴포넌트 부호없는4바이트숫자받기 블럭

부호없는 1바이트 숫자를 받는 블럭이다.

부호없는 2바이트 숫자를 받는 블럭이다.

부호없는 4바이트 숫자를 받는 블럭이다.

 

앱인벤터 블루투스서버 컴포넌트 부호없는1바이트숫자받기 블럭

 

. 블루투스서버 컴포넌트 부호없는바이트받기 블럭

입력 스트림으로부터 '바이트 수' 만큼 부호없는 바이트를 받으며, 받은 바이트들을 텍스트로 변환한다.

만일 '바이트수'가 음수이면 구분바이트를 읽을 때까지 바이트들을 받는다. 구분바이트는 반환되는 리스트에 포함된다.

 

앱인벤터 블루투스서버 컴포넌트 부호없는바이트받기 블럭

 

. 블루투스서버 컴포넌트 1바이트숫자보내기 블럭

. 블루투스서버 컴포넌트 2바이트숫자보내기 블럭

. 블루투스서버 컴포넌트 4바이트숫자보내기 블럭

주어진 숫자 문자열을 숫자로 디코드를 하고 출력 스트림에 1바이트씩 보낸다.

만일 숫자가 하나의 정수로 디코드가 되지 않거나 정수가 1바이트에 정확하게 일치하지 않는다면, 'Form's ErrorOccurred' 이벤트가 발생되고 , 이 메소드는 출력 스트림에 어떤 바이트도 보내지 않고 반환한다.

만일 숫자가 하나의 정수로 디코드가 되지 않거나 정수가 2바이트에 정확하게 일치하지 않는다면, 'Form's ErrorOccurred' 이벤트가 발생되고 , 이 메소드는 출력 스트림에 어떤 바이트도 보내지 않고 반환한다.

만일 숫자가 하나의 정수로 디코드가 되지 않거나 정수가 4바이트에 정확하게 일치하지 않는다면, 'Form's ErrorOccurred' 이벤트가 발생되고 , 이 메소드는 출력 스트림에 어떤 바이트도 보내지 않고 반환한다.

 

앱인벤터 블루투스서버 컴포넌트 1바이트숫자보내기 블럭

 

. 블루투스서버 컴포넌트 바이트보내기 블럭

주어진 리스트로부터 각 요소를 추출하고 이를 문자열로 변환한다. 문자열을 숫자로 디코드하고 출력 스트림에 1바이트씩 보낸다.

만일 요소가 하나의 정수로 디코드되지 않는다거나 정수가 1바이트에 정확하게 일치되지 않는다면, 'Form's ErrorOccurred' 이벤트가 발생되며, 이 메소드는 출력 스트림에 어떤 바이트로 보내지 않고 반환된다.

 

앱인벤터 블루투스서버 컴포넌트 바이트보내기 블럭

 

. 블루투스서버 컴포넌트 텍스트보내기 블럭

주어진 텍스트를 바이트로 변환하여 출력 스트림에 변환한 바이트를 보낸다.

 

앱인벤터 블루투스서버 컴포넌트 텍스트보내기 블럭

 

. 블루투스서버 컴포넌트 수신정지하기 블럭

수신되는 연결을 정지시키는 블럭이다.

 

앱인벤터 블루투스서버 컴포넌트 수신정지하기 블럭

 

블루투스서버 컴포넌트 가져오기/지정하기 블럭들

블루투스클라어인트 컴포넌트 중 가져오기/지정하기 블럭은 사용가능, 문자인코딩, 구분바이트, 활성화, 높은바이트우선여부, 수용여부, 연결여부, 보안 등의 블럭이 있다.

 

. 블루투스서버 컴포넌트 사용가능 블럭

블루투스가 해당 기기에 사용가능한지를 가져오는 블럭이다.

 

앱인벤터 블루투스서버 컴포넌트 사용가능 블럭

 

. 블루투스서버 컴포넌트 문자인코딩 블럭

텍스트를 송수신할 때 사용하는 문자인코딩을 지정하거나 가져오는 블럭이다.

 

앱인벤터 블루투스서버 컴포넌트 문자인코딩 블럭

 

. 블루투스서버  컴포넌트 구분바이트 블럭

텍스트를 수신할 때 '바이트수' 인자값에 대해 음수를 전달할 때, 문자열과 다음 문자열을 구분하기 위해 '구분문자열'을 지정하거나 가져오는 블럭이다.

 

앱인벤터 블루투스서버 컴포넌트 구분바이트 블럭

 

. 블루투스서버 컴포넌트 활성화 블럭

블루투스가 활성화되어 있는지 여부를 가져오는 블럭이다.

 

앱인벤터 블루투스서버 컴포넌트 활성화 블럭

 

. 블루투스서버 컴포넌트 높은바이트우선여부 블럭

'높은바이트우선순위' 속성값을 지정하거나 가져오는 블럭이다.

'높은바이트우선순위' 속성값에 대해서는 위에 설명한 부분을 참조하세요.

 

앱인벤터 블루투스서버 컴포넌트 높은바이트우선여부 블럭

 

. 블루투스서버 컴포넌트 수용여부 블럭

수신되는 연결을 수락할지 여부의 속성값을 가져오는 블럭이다. 참값이면 클라이언트의 연결을 수용하며, 거짓값이면 연결을 불허한다.

 

앱인벤터 블루투스서버 컴포넌트 수용여부 블럭

 

. 블루투스서버 컴포넌트 연결여부 블럭

블루투스 연결이 되어있는지 여부를 가져오는 블럭이다. 참값이면 연결이 되어 있는것이고, 거짓이면 연결이 되어 있지 않는 것이다.

 

앱인벤터 블루투스서버 컴포넌트 연결여부 블럭

 

. 블루투스서버 컴포넌트 보안 블럭

블루투스 연결을 할 때, 보안연결할지 여부를 지정하거나, 설정된 값을 가져오는 블럭이다.

 

앱인벤터 블루투스서버 컴포넌트 보안 블럭

 

이상으로 앱인벤터 블루투스서버 컴포넌트 블럭에 대해 간략히 살펴보았다. 좀더 자세히 확인하기 싶으면, 블루투스서버 컴포넌트를 활용하여 간단하게 다른 기기에 연결하고 텍스트를 전송하는 앱을 블럭들을 하나씩 사용해보면서 블럭의 활용 용도 등을 파악하면 좋을 것 같다. 눈으로 보는 것보다 직접 해보는게 여러모로 코딩하는데 이해하고 코딩 실력이 향상되는데 도움이 된다.

 

Just Do it!!!

Just Drag&Drop!!!

 

MagneticFieldSens

 

반응형

댓글