본문 바로가기

LWM2M

Leshan LWM2M - Object xml 작성

Leshan을 실행해보았다면 이제 안에 들어갈 Object를 추가해야 한다.

Object를 추가하기 위해서는 xml 파일을 작성하여 넣어주고, 소스에서 불러와 사용한다.

예제로 작성된 xml 코드들이 demo 파일 안에 이미 들어있다.

파일의 위치는 leshan - leshan-client-demo - src - main - resources - models 이다.

OMA에서 제공하는 Object를 수정하고 싶다면 leshan-core 에 있는 Object를 수정하여야한다.

OMA규격 Object의 경로는 leshan - leshan-core - src - main - java - resources - models 이다.

OMA Object가 있는 xml 파일은 OMA 홈페이지에서 다운받을 수 있다.

OMA LWM2M Objec 파일을 제공하는 사이트는 다음과 같다.

www.openmobilealliance.org/wp/omna/lwm2m/lwm2mregistry.html

수정이 필요하면 수정하거나, 새로 xml 파일을 작성하여 쓸 수 있지만, LWM2M 표준으로 작성된 이 부분을 수정할 일은 드물다.

xml 파일에 대하여 몰라서 어려울 것 같지만, LWM2M에서 사용하는 xml 파일은 간단하게 구성된다.

일단 가장 만만한것은 3303번, 온도센서이니 3303을 먼저 분석하는게 좋다.

 

#3303 Temperature Object

Object description

3303.xml파일을 열어보면 xml과 LWM2M 선언이 처음에 시작한다.

굳이 이부분은 건들 필요가 없으므로 생략하고.

만약 우리가 새로 xml파일을 작성해야한다면 name부터 시작하면 된다.

Name는 Object의 이름이다.

Server에서 Object를 보여줄 때, 제목란에 보여지는 이름이다.

그 다음 Description은 Object에 대한 설명이 들어간다.

다음 ObjectID 이다.

ObjectID는 각 Object를 구분하는 번호이므로 중복되지 않도록 하여야 하는 중요한 부분이다.

나는 Object를 추가할 때 마다 xml파일명을 Object ID로 구성하여 찾기 편하게 하였다.

그 다음에는 Object에 대한 URN이 들어간다.

다음에는 MultipleInstances 인데, 이부분은 Object 에 대한 instance가 여러개인가, 하나인가를 결정하는 부분이다.

Single로 되어 있으면 하나의 Instance만 생성이 가능하고, Multiple로 되어 있으면 여러개의 Instance를 생성할 수 있다.

Mandatory는 이 Object가 필수적으로 선언되어야 하는지 나타내는 부분이다.

Mandatory로 되어 있으면 소스에서 구현할 때 필수적으로 들어가야 하고, Optional로 되어 있으면 넣지 않아도 된다.

 

#Resources

3303의 Resources

사실상 Object 파일에서 핵심적인 부분이다.

Object에 들어가는 Resource를 정의하는 부분이기 때문이다.

각 Resources는 ID로 서로를 구분한다.

Item ID 에 번호를 넣으면 Server에서 각 Resource ID별로 구분되어 나타난다.

Name은 Recource의 이름이다.

그 다음에는 Operations가 있는데, 이 항목은 Resource가 어떤 동작을 하느냐를 나타낸다.

Operations는 3가지 동작이 있다.

Read, Write, Execute 이다.

Read는 Resource에 들어있는 내용을 읽는 동작이다.

Write는 Resource에 필요한 정보를 작성하는 동작이다.

Execute는 특정 동작을 수행한다.

Read와 Write는 동시에 쓸 수 있지만, Execute는 단독으로만 사용된다.

그래서 Operations에서 쓸 수 있는 동작은 R, W, RW, E 를 사용할 수 있다.

Upgrade Object에서 선언되어 있는 RW 와 E

MultipleInstancesMandatory는 위의 Object에서 설명한것과 동일하다.

Type은 Resource가 가지고 있는 자료의 종류를 나타낸다.

Interger, String, Opaque, Time 등을 선언할 수 있다.

RangeEnumeration은 값의 범위를 나타낸다.

Units은 해당 Resource에서 사용하는 값의 단위를 나타낸다.

Description은 Resource에 대한 설명인데, 대충 써놔도 어디 나타나지 않기에 만약 xml을 다시 봤을 때, 알아보기 쉽게만 써두면 될 것 같다.

'LWM2M' 카테고리의 다른 글

Leshan LWM2M - CoAP Ping  (0) 2020.10.10
Leshan LWM2M - Object 생성  (0) 2020.08.21
Leshan LWM2M  (0) 2020.08.17