본문 바로가기

LWM2M

Leshan LWM2M

회사에서 임베디드 장치에 여러가지 LWM2M 소스를 포팅했었다.

실제로 0부터 구현하진 않았고, 보통 Open Source나 기존에 구현된 코드들을 사용하였다.

그 중, 가장 많이 만졌었던 소스는 Leshan 이라는 LWM2M source이다.

 

 

Leshan은 JAVA로 구현된 LWM2M Server, Client 이다.

Californium CoAP 을 사용하였고, Scandium DTLS를 가지고 있다.

원래 나의 주 언어는 C/C++ 이지만, 최근에는 회사의 어플리케이션을 모듈화하기 위하여 Linux에 JAVA를 이용하기로 하였다.

거기에 서버와 통신을 위한 프로토콜을 넣기 위하여 LWM2M을 사용하였다.

C/C++을 사용하였다면 Wakaama나 awa를 사용하였을것이다.

 

#기본 준비물

다른 팀원들은 Visual studio code 를 사용하거나 그랬었는데, 나는 Eclipse를 사용하였다.

예나 지금이나 JAVA개발 하면 IDE가 이것밖에 생각이 안난다.

거기에 추가로 Maven이 필요하다.

그러니, 기본적으로 설치해야 하는 것들은

  • Eclipse
  • JDK
  • Maven

이다.

여기서 JDK는 oracle 것이 아닌 Open JDK를 사용하였다.

 

#세팅

eclipse, JDK, Maven 설치는 검색하면 많이 나온다.

그러니 Leshan 을 구동하는 방법에 대하여 중점적으로 설명하겠다.

Leshan github에서 소스를 가져온다.

나는 Git bash를 사용하여 가져왔다.

eclipse에서 File - Open Projects from File system 을 눌러 코드를 가져온다.

Directory를 눌러 clone받은 소스의 폴더를 연다.

Leshan 소스는 내부에 여러개의 파일로 구성되어 있기 때문에 메인 폴더인 Leshan에서 불러오면 전부 불러와진다.

Finish를 눌러 완료한다.

leshan [leshan master]에서 우클릭을 하여 Run as - Maven install 을 하면 자동으로 컴파일을 해준다.

그러면 leshan demo에 실행파일이 생성이 된다.

성공하면 다음과 같은 SUCCESS 메세지들이 뜬다.
target에 jar 파일들이 생성되어 있다.

이제 정상적으로 돌아가는지 확인을 해보자.

leshan-server-demo 와 leshan-client-demo를 각각 우클릭하여 Run as - java Application을 누르면 각 어플리케이션이 실행된다.

정상적으로 실행되었으면 다음과 같이 나온다.

좌) Server 우) Client

실행이 정상적으로 됐으면 이제 UI를 통하여 동작을 확인해보자.

인터넷 창에 127.0.0.1:8080 으로 접속하면 server demo의 UI를 볼 수 있다.

Client가 접속되어 있으면 화면에 나타나고, 클릭하여 Client에 있는 Object 들을 확인할 수 있다.

만약 Connected Clients: 0 으로 나와있으면 client가 정상동작하지 않는 것이다.

임의로 Endpoint 명을 바꾸었다.
Client에 있는 Object
endpoint는 LeshanClientDemo.java 에서 바꿀 수 있다.

여기까지 됐으면 Leshan의 기본 동작 확인이 완료되었다.

이제 xml파일을 추가하고, java파일을 추가하여 새로운 Object를 넣으면 된다.

'LWM2M' 카테고리의 다른 글

Leshan LWM2M - CoAP Ping  (0) 2020.10.10
Leshan LWM2M - Object 생성  (0) 2020.08.21
Leshan LWM2M - Object xml 작성  (0) 2020.08.19