bit가 눈 앞에서 왔다갔다

[webOS] IoTivity 개념, 동작성 테스트 | 191101 (5) 본문

프로젝트_ 교외/2019 컨트리뷰톤_ webOS

[webOS] IoTivity 개념, 동작성 테스트 | 191101 (5)

헬린인형 2019. 11. 2. 00:54

컨트리뷰톤은 종료되었지만 아직 발표 심사가 남아있습니다.

아쉬움에 저번에 멘토님께 동작하는 법 물어보기만하고 시간 상 해보지 못했던

IoTivity Sampler 동작성을 테스트해봤어요!

평소 IoT랑 임베디드에 관심있었던 제게 IoTivity Sampler를 테스트 해 볼 기회는 정말 좋은 기회인 것 같았어욯ㅎㅎ

 


 

앞선 포스팅에서 IoTivity는 IoT 개발을 위해 표준화된 framework이라고 말씀드렸습니다!

네트워크를 통해 검색된 제품을 특정 interface로 제어하는 기능을 제공하는 측을 Server,

검색해서 제공된 interface로 IoT 기기를 제어하는 소프트웨어를 만들면 Client입니다.

(IoT 제품 제어를 위한 interface를 외부에 노출시키는 Server 측 프로그래밍, IoT 제품을 제어하기 위한 server discovery 및 interface를 호출하는 Client 측 프로그래밍)

 

 

그래서 webOS에 있는 IoTivity Sampler의 UI도 Server Role과 Client Role로 나뉘어 있어요.

예..사진 대충 찍었어요...바빠서...

왼쪽 Server Role은 Server의 실행, 종료 기능만 나타냅니다.

(실제 Server에서 몇 개의 Interface를 노출하도록 sample로 작성되어있음)

오른쪽 Client Role은 Client의 기능의 예를 구현합니다.

 

 

본격적으로 동작성을 확인해볼게요.

 

 

1. Server Role에서 Change mode: RFNOP 선택

 

바빴어요.. 바빠서 대충 찍었어요...

우측 상단에 "File copy complete"와 같은 메시지가 떴습니다.

 

 

2. Start Server 선택

 

Resource, Type, Observable이 생겼습니다!

 

검색된 Server를 선택하면 아래에 Server에서 노출시키는 Interface 리스트가 나올텐데, 이 Interface를 통해 

1. Get 정보를 가져오거나 2. Post를 통해 Interface를 통한 값 전달(예를 들면 외부에서 제어값 전달)이 가능합니다.

 

 

3. Client Role에서 Change mode: RFNOP 선택

 

 

4. Discovery Resources 선택

이 경우, Server를 검색한 경우 표시가 됩니다. (반드시 왼쪽 Server를 Start시킨 경우여야 함)

 

5. 검색된 xxx::xxx::enp0s3(port:xxxx) 선택

잠시 기다리면 보시는 바와 같이 아래에 검색된 결과가 나옵니다.

(사진에서는 fe80::ba27:ebff:fe42:3741%wlan0 (port:55477)

 

6. 나열된 Interface list에서 (uri:xxxxx) 가장 하단 uri: /binaryswitch(if:oic.if.baseline,oic.if.a) 선택

 

 

 

7. Get Resource 선택

 

기다리면 Server의 Interface를 통해 가져온 Response결과를 보여줍니다.

Resource: binarySwitch의 Value의 기본 값이 False인데, 이 것을 한번 더 눌러서 True로 바꿔줍니다.

바꾸고 오른쪽 Role에서 Get을 누르면 response 안의 value값이 True가 됩니다.

 

 

8. Post Resource 선택

 

 

key에 value를, value에는 true를 입력해줍니다.

그리고 SEND!

Server Role의 하단 binarySwitch 부분 value값이 변경 됩니다.

 


좀 더 구체적으로 webOS의 어떤 프로세스가 Server의 기능을 제공하는지 확인해보려면,

webOS에 접속하는 ssh shell에서

Iotivity-sampler 앱에서 Stop Server를 눌러 서버기능 종료 후,

 

$ ls-monitor -l | grep iotivity.server

 

를 하면 서버가 안떠있습니다.

iotivity-sampler 앱에서 다시 Start Server로 서버기능을 실행한 후, 쉘에서 다시 저 명령어를 입력하면,

IoT 기능을 제공하는 webOS Service가 실행 중임을 확인 할 수 있습니다!

 

이름은 com.example.service.iotivity.server이고, nodejs로 작성되어있다고 합니다!

 

 

재밌닿ㅎㅎ

반응형
Comments