LwM2M Registry に多くのリソースが定義されていますが、独自に定義できます。これをカスタムオブジェクトと呼びます。 カスタムオブジェクトは XML、JSON で定義します。
カスタムオブジェクトは以下の手順で行います。カスタムオブジェクトを定義する場合、これに対応したクライアントエージェントの実装も必要です。
- モデル定義 XML を作成する
- クライアントエージェントを実装する
- 実装クラスの作成
main
関数でのモデル定義 XML と実装クラスの読み込み
- Inventory にモデル定義 XML を適用する
ステップ 1: モデル定義 XML を作成する
以下は ObjectID 30000
を XML で定義した例です。
<?xml version="1.0" encoding="UTF-8"?>
<LWM2M xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://openmobilealliance.org/tech/profiles/LWM2M.xsd">
<Object ObjectType="MODefinition">
<Name>Custom Model</Name>
<Description1>Custom model</Description1>
<ObjectID>30000</ObjectID>
<ObjectURN>urn:oma:lwm2m:oma:30000</ObjectURN>
<MultipleInstances>Single</MultipleInstances>
<Mandatory>Optional</Mandatory>
<Resources>
<Item ID="0">
<Name>CurrentX</Name>
<Operations>R</Operations>
<MultipleInstances>Single</MultipleInstances>
<Mandatory>Mandatory</Mandatory>
<Type>Float</Type>
<RangeEnumeration />
<Units>m</Units>
<Description>Current location in X.</Description>
</Item>
<Item ID="1">
<Name>TargetX</Name>
<Operations>RW</Operations>
<MultipleInstances>Single</MultipleInstances>
<Mandatory>Mandatory</Mandatory>
<Type>Float</Type>
<RangeEnumeration />
<Units>m</Units>
<Description>Target location in X.</Description>
</Item>
<Item ID="2">
<Name>Execute Command</Name>
<Operations>E</Operations>
<MultipleInstances>Single</MultipleInstances>
<Mandatory>Mandatory</Mandatory>
<Type />
<RangeEnumeration />
<Units />
<Description>Execute command.</Description>
</Item>
</Resources>
<Description2 />
</Object>
</LWM2M>
ステップ 2: クライアントエージェントを実装する
「実装クラスの作成」および「main
関数でのモデル定義 XML と実装クラスの読み込み」は、クライアントエージェントに実装します。
SORACOM Inventory Agent for Java の Readme を参考に実装してください。
ステップ 3: Inventory にモデル定義 XML を適用する
ユーザーコンソール にログインします。
→ → の順にクリックします。
をクリックします。
ステップ 1: モデル定義 XML を作成する で作成したデバイスオブジェクトモデルを入力します。
XML 形式または JSON 形式で入力できます。
をクリックします。
カスタムオブジェクトが定義されます。
ユーザーコンソールで Inventory デバイスの情報を参照する と、カスタムオブジェクト、リソース名を表示できます。