# パルアプリ

## センサーデータの簡易的な読み方

下記のデータ羅列は、: に始まり改行コードまでの１６進数データをテキストで表現したものです。

```
:80000000CF7F7382019E3B0180050F003400038135001205040406000000113008020B8611300102042E000000018015044006FFF00010FC1815044106FFF00018FC1815044206FFF00010FC0015044306FFF80000FC1015044406FFF00010FC1815044506FFE00018FBF815044606FFE80000FC0015044706FFE80010FBF815044806FFE80010FC0815044906FFE80010FC080C0E[CR][LF]
```

{% hint style="info" %}
データの詳細情報は[こちら](https://wings.twelite.info/how-to-use/parent-mode/receive-message/app_pal/app_pal-detail)をご参照ください。
{% endhint %}

上記が逐次解釈する書式ですので、厳密に解釈するのが煩雑です。

そのため、以下に使用するセンサーパルごとのデータのある場所とその抽出例のコードを示します。\
その際、: を 0 文字目とします。

### データの位置の表記法

以下の説明では、データの位置を示す際、Pythonのリストの指定の表記ような以下の書式でご案内します。

```
[データの開始位置:データの開始位置+文字数]
```

例えば、15文字目から4文字を指定する場合は、以下のように表記します。

```
[15:15+4]
```

### 開閉センサーパル

開閉センサーパルからのデータを受信すると以下のような出力メッセージがシリアル出力されます。

```
:80000000A8001C82012B1E01808103113008020D0C1130010203E40000000101EC6E[CR][LF]
```

磁気センサーのデータは63文字目から2文字分です。\
磁気センサーは下表の値を出力します。

<table><thead><tr><th width="150">磁気センサーデータ</th><th>意味</th></tr></thead><tbody><tr><td>磁気センサーのデータ</td><td>意味</td></tr><tr><td>00</td><td>磁石が遠ざかった。</td></tr><tr><td>01</td><td>磁石のN極が近づいた。</td></tr><tr><td>02</td><td>磁石のS極が近づいた。</td></tr><tr><td>80</td><td>磁石が近くにない。(タイマーによる定期送信)</td></tr><tr><td>81</td><td>磁石のN極が近くにある。(タイマーによる定期送信)</td></tr><tr><td>82</td><td>磁石がS極が近くにある。(タイマーによる定期送信)</td></tr></tbody></table>

例えば、磁石が近くにない状態から、磁石(N極)が一定期間センサーの近くにある場合、以下のように磁気センサーの値が変化します。

```
80 -- 80 -- 80 -- 01(※) -- 81 -- 81 --
```

※ 多くの場合は磁石のN極を検出したときに01になりますが、設置環境によっては、出力値が一定期間安定せず、02や稀に00が出力される場合があります。

また、磁石が近くにあるかだけ知りたい場合は、64文字目だけ確認し、0だったら磁石が近くにない、1または2の時は磁石が近くにあると判定します。

#### センサーのデータの抽出例

以下は磁気センサーの状態を抜き出すためのPythonの対話モードでの実行例です。\
以下の例では、63文字目と64文字目を抜き出して数値に変換し、上表に従って磁気センサーが検出している状態に変換し、標準出力しております。

```python
>>> t = ':80000000A8001C82012B1E01808103113008020D0C1130010203E40000000101EC6E'
>>> v = int(t[63:63+2], 16) # 63文字目から2文字取り出し、整数値に変換
>>> periodic = True if (v & 0x80) else False # 定期送信パケットかどうか調べる(Trueだったら定期送信)
>>> status = 'S' if (v & 0x4F) == 2 else 'N' if (v & 0x4F) == 1 else 'Open' # 磁気センサーの状態を取得する。
>>> print('Magnet: %s, %s' % (periodic, status))
Magnet: False, N
```

#### アドレスなどのセンサー以外のデータ

出力メッセージは、磁気センサーのデータ以外に以下の情報が含まれております。

```
データ位置  データ例   意味
[1:1+8]    80000000  中継機のシリアルID
[9:9+2]    A8        LQI 
[11:11+4]  001C      続き番号 
[15:15+8]  82012B1E  送信元のシリアルID
[23:23+2]  01        送信元の論理デバイスID
[25:25+2]  80        センサー種別(80で固定)
[27:27+2]  81        PAL基板バージョンとPAL基板ID(開閉センサーパルは81)
```

#### 開閉センサーパルのデータの判別方法

親機・中継機アプリはTWELITE PALからだけではなく、様々なアプリのデータを受信することができるので、出力されたデータがどのアプリのデータか区別する必要があります。\
\
開閉センサーパルの出力メッセージは、改行コード抜きで69文字(改行コードありでは71文字)で、ほかのセンサーパルのデータとは文字数が違うため、文字数で見分けると簡単です。\
ただし、シリアル通信アプリなどのように受信メッセージの文字数が決まっていないものもありますので、文字数だけでは見分けられない場合があります。

より厳密に区別するには、文字数と以下の項目を確認してください。

* 1文字目が8であること
* 15文字目が8であること
* 25、26文字目が '80' であること
* 27、28文字目が '81' であること

### 環境センサーパル

環境センサーパルからのデータを受信すると以下のような出力メッセージがシリアル出力されます。

```
:8000000084811F810EFF6D04808205113008020AEB11300102035A0501000209E3010200020E3A02030004000001BE6C00[CR][LF]
```

温度などのセンサーデータは63文字目から94文字目までに含まれております。\
各データの位置やデータ形式は以下の通りです。

```
データ位置 意味
[63:63+4] 温度(符号付整数、単位は℃の100倍(23.56℃→2356))
[75:75+4] 湿度(符号無整数、単位は%の100倍(25.99%→2599))
[87:87+8] 照度(符号無整数、単位はLux)
```

以下は、環境センサーパルのデータを取得するためのPythonの対話モードでの実行例です。\
出力メッセージから、温度、湿度、照度の文字列を取り出し、数値に変換します。その際、そのままだと符号無の数値ですので、温度は符号付の数値に変換します。\
そのあと、センサーのデータを出力しますが、温度と湿度データは100倍されたデータですので、出力時に100で割った値を出力しています。

```python
>>> t = ':8000000084811F810EFF6D04808205113008020AEB11300102035A0501000209E3010200020E3A02030004000001BE6C00'
>>> temp = int(t[63:63+4], 16) # 63文字目から4文字取り出し、整数値に変換
>>> temp = (-65536 + temp) if temp >= 32768 else temp # 符号付き16ビット整数の対応 
>>> hum = int(t[75:75+4], 16)
>>> illum = int(t[87:87+8], 16)
>>> print('temperature: %f' % ( temp/100.0 ))
temperature: 25.310000
>>> print('humidity: %f' % ( hum/100.0 ))
humidity: 36.420000
>>> print('illuminance: %d' % illum)
illuminance: 446
```

#### アドレスなどのセンサー以外のデータ

出力メッセージは、温湿度、照度センサーのデータ以外に以下の情報が含まれております。

```
データ位置  データ例   意味
[1:1+8]    80000000  中継機のシリアルID
[9:9+2]    84        LQI 
[11:11+4]  8114      続き番号 
[15:15+8]  810EFF6D  送信元のシリアルID
[23:23+2]  04        送信元の論理デバイスID
[25:25+2]  80        センサー種別(80で固定)
[27:27+2]  82        PAL基板バージョンとPAL基板ID(開閉センサーパルは81)
```

#### 環境センサーパルのデータの判別方法

親機・中継機アプリはTWELITE PALからだけではなく、様々なアプリのデータを受信することができるので、出力メッセージがどのアプリの出力か区別する必要があります。\
\
環境センサーパルの出力メッセージは、改行コード抜きで99文字(改行コードありでは101文字)で、ほかのセンサーパルなどのデータとは文字数が違うため、文字数で見分けると簡単です。\
ただし、シリアル通信アプリなどのように受信メッセージの文字数が決まっていないものもありますので、文字数だけでは見分けられない場合があります。

より厳密に区別するには、文字数と以下の項目を確認してください。

* 1文字目が8であること
* 15文字目が8であること
* 25、26文字目が '80' であること
* 27、28文字目が '82' であること

### 動作センサーパル

動作センサーパルからのデータを受信すると以下のような出力メッセージがシリアル出力されます。

```
:80000000BA002382011CEF01808312113008020D0211300102055C1504400600100010045015044106000800100430150442060000001004381504430600080018043015044406000000180458150445060000002004381504460600080018042815044706FFE80010042015044806FFF00010043815044906FFE80018043015044A06FFF80018044015044B06FFF80018041815044C0600000010042015044D0600000028045015044E0600000008043815044F0600000018043828A5[CR][LF]
```

加速度データは63文字目から時系列順でX、Y、Zに並んだ加速度が16個分格納されます。\
加速度は、符号付整数で単位はmg(1重力加速度(g)の1/1000)です。\
＊データが12文字、ヘッダが8文字で、20文字ごとにデータが並びます。

```
データ位置    データ例      意味
[63:63+12]   001000100450 データ１ 0010(X軸)/0010(Y軸)/0450(Z軸)
[83:83+12]   000800100430 データ２ 0008(X軸)/0010(Y軸)/0430(Z軸)
[103:103+12] 000000100438 ...
[123:123+12] 000800180430
[143:143+12] 000000180458
[163:163+12] 000000200438
[183:183+12] 000800180428
[203:203+12] FFE800100420
[223:223+12] FFF000100438
[243:243+12] FFE800180430 
[263:263+12] FFF800180440
[283:283+12] FFF800180418
[303:303+12] 000000100420
[323:323+12] 000000280450
[343:343+12] 000000080438
[363:363+12] 000000180438 データ16
```

以下は、1サンプル目の加速度を取得するためのPythonの対話モードでの実行例です。\
出力メッセージから、1サンプル目の加速度の文字列を取り出し、数値に変換します。その際、そのままだと符号無の数値ですので、符号付の数値に変換します。\
変換後、加速度データを出力します。

```python
>>> t = ':80000000BA002382011CEF01808312113008020D0211300102055C1504400600100010045015044106000800100430150442060000001004381504430600080018043015044406000000180458150445060000002004381504460600080018042815044706FFE80010042015044806FFF00010043815044906FFE80018043015044A06FFF80018044015044B06FFF80018041815044C0600000010042015044D0600000028045015044E0600000008043815044F0600000018043828A5'
>>> x = int(t[63:63+4], 16) # 63文字目から4文字取り出し、整数値に変換(X軸)
>>> x = (-65536 + x) if x >= 32768 else x # 符号付き16ビット整数の対応 
>>> y = int(t[67:67+4], 16) # 67文字目から4文字取り出し、整数値に変換(Y軸)
>>> y = (-65536 + y) if y >= 32768 else y # 符号付き16ビット整数の対応 
>>> z = int(t[71:71+4], 16) # 63文字目から4文字取り出し、整数値に変換(Z軸)
>>> z = (-65536 + z) if z >= 32768 else z # 符号付き16ビット整数の対応 
>>> print('x:%d, y:%d, z:%d' % ( x, y, z ))
x:16, y:16, z:1104
```

#### アドレスなどのセンサー以外のデータ

出力メッセージは、加速度センサーのデータ以外に以下の情報が含まれております。

```
データ位置  データ例   意味
[1:1+8]    80000000  中継機のシリアルID
[9:9+2]    BA        LQI 
[11:11+4]  0023      続き番号 
[15:15+8]  82011CEF  送信元のシリアルID
[23:23+2]  01        送信元の論理デバイスID
[25:25+2]  80        センサー種別(80で固定)
[27:27+2]  83        PAL基板バージョンとPAL基板ID(開閉センサーパルは81)
```

#### 動作センサーパルのデータの判別方法

親機・中継機アプリはTWELITE PALからだけではなく、様々なアプリのデータを受信することができるので、出力メッセージがどのアプリのデータか区別する必要があります。\
\
動作センサーパルの出力メッセージは、改行コード抜きで379文字(改行コードありでは381文字)で、ほかのセンサーパルなどのデータとは文字数が違うため、文字数で見分けると簡単です。\
ただし、シリアル通信アプリなどのように出力メッセージの文字数が決まっていないものもありますので、文字数だけでは見分けられない場合があります。

より厳密に区別するには、文字数と以下の項目を確認してください。

* 1文字目が8であること
* 15文字目が8であること
* 25、26文字目が '80' であること
* 27、28文字目が '83' であること

## 出力例

以下は、パルごとのデータの出力例です。

### 開閉センサーパル

```
:80000000A8001C82012B1E01808103113008020D0C1130010203E40000000101EC6E
 ^^^^^^^1^2^^^3^^^^^^^4^5^6^7^8​^9^a^b^c^^^d^e^f^g^h^^^i^j^k^l^m^n^o^p
 0                   10                  20                  30      
```

<table data-header-hidden><thead><tr><th width="150">番号</th><th width="150">バイト数</th><th width="150">意味</th><th width="150">データ例</th><th width="150">内容</th><th>備考</th></tr></thead><tbody><tr><td>番号</td><td>バイト数</td><td>意味</td><td>データ例</td><td>内容</td><td>備考</td></tr><tr><td>1</td><td>4</td><td>中継機のシリアルID</td><td>80000000</td><td>中継無し</td><td></td></tr><tr><td>2</td><td>1</td><td>LQI</td><td>A8</td><td>168</td><td></td></tr><tr><td>3</td><td>2</td><td>続き番号</td><td>001C</td><td>28</td><td></td></tr><tr><td>4</td><td>4</td><td>送信元のシリアルID</td><td>82012B1E</td><td>送信元のシリアルIDは2012B1E</td><td></td></tr><tr><td>5</td><td>1</td><td>送信元の論理デバイスID</td><td>01</td><td>送信元の論理デバイスIDは01</td><td></td></tr><tr><td>6</td><td>1</td><td>センサー種別</td><td>80</td><td></td><td></td></tr><tr><td>7</td><td>1</td><td>PAL基板バージョンとPAL基板ID</td><td>81</td><td>開閉センサーパル Ver.1</td><td></td></tr><tr><td>8</td><td>1</td><td>センサーデータの数</td><td>03</td><td>3つ</td><td></td></tr><tr><td>9</td><td>1</td><td>各種情報ビット値</td><td>11</td><td>拡張バイトあり<br>符号なしShort型</td><td></td></tr><tr><td>a</td><td>1</td><td>データソース</td><td>30</td><td>ADC</td><td></td></tr><tr><td>b</td><td>1</td><td>拡張バイト</td><td>08</td><td>電源電圧</td><td></td></tr><tr><td>c</td><td>1</td><td>データ長</td><td>02</td><td>2バイト</td><td></td></tr><tr><td>d</td><td>2</td><td>データ</td><td>0D0C</td><td>3340ｍV</td><td></td></tr><tr><td>e</td><td>1</td><td>各種情報ビット値</td><td>11</td><td>拡張バイトあり<br>符号なしShort型</td><td></td></tr><tr><td>f</td><td>1</td><td>データソース</td><td>30</td><td>ADC</td><td></td></tr><tr><td>g</td><td>1</td><td>拡張バイト</td><td>01</td><td>ADC1</td><td></td></tr><tr><td>h</td><td>1</td><td>データ長</td><td>02</td><td>2バイト</td><td></td></tr><tr><td>i</td><td>2</td><td>データ</td><td>03E4</td><td>996mV</td><td></td></tr><tr><td>j</td><td>1</td><td>各種情報ビット値</td><td>00</td><td><p>拡張バイトなし</p><p>符号なしChar型</p></td><td></td></tr><tr><td>k</td><td>1</td><td>データソース</td><td>00</td><td>磁気</td><td></td></tr><tr><td>l</td><td>1</td><td>拡張バイト</td><td>00</td><td>0</td><td></td></tr><tr><td>m</td><td>1</td><td>データ長</td><td>01</td><td>1バイト</td><td></td></tr><tr><td>n</td><td>1</td><td>データ</td><td>01</td><td>磁石(N極)が近づいた</td><td>00: 磁石が離れた。<br>01: N極が近づいた<br>02: S局が近づいた<br>80: 変化なし(磁石なし)<br>81: 変化なし(N極が近くにある)<br>82: 変化なし(S極が近くにある)</td></tr><tr><td>o</td><td>1</td><td>チェックサム1</td><td>EC</td><td></td><td></td></tr><tr><td>p</td><td>1</td><td>チェックサム2</td><td>6E</td><td></td><td></td></tr></tbody></table>

### 環境センサーパル <a href="#sensparu" id="sensparu"></a>

```
​:8000000084811F810EFF6D04808205113008020AEB11300102035A0501000209E3010200020E3A02030004000001BE6C00
 ​^^^^^^^1^2^^^3^^^^^^^4^5^6^7^8^9^a^b^c^^^d^e^f^g^h^^^i^j^k^l^m^^^n^o^p^q^r^^^s^t^u^v^w^^^^^^^x^y^z
 0                   10                  20                  30                  40                
```

<table data-header-hidden><thead><tr><th width="150">番号</th><th width="150">バイト数</th><th width="150">意味</th><th width="150">データ例</th><th>内容</th><th>備考</th></tr></thead><tbody><tr><td>番号</td><td>バイト数</td><td>意味</td><td>データ例</td><td>内容</td><td>備考</td></tr><tr><td>1</td><td>4</td><td>中継機のシリアルID</td><td>80000000</td><td>中継無し</td><td></td></tr><tr><td>2</td><td>1</td><td>LQI</td><td>84</td><td>132</td><td></td></tr><tr><td>3</td><td>2</td><td>続き番号</td><td>811F</td><td>33055</td><td></td></tr><tr><td>4</td><td>4</td><td>送信元のシリアルID</td><td>810EFF6D</td><td>送信元のシリアルIDは810EFF6D</td><td></td></tr><tr><td>5</td><td>1</td><td>送信元の論理デバイスID</td><td>04</td><td>送信元の論理デバイスIDは04</td><td></td></tr><tr><td>6</td><td>1</td><td>センサー種別</td><td>80</td><td></td><td></td></tr><tr><td>7</td><td>1</td><td>PAL基板バージョンとPAL基板ID</td><td>82</td><td>環境センサーパル Ver.1</td><td></td></tr><tr><td>8</td><td>1</td><td>センサーデータの数</td><td>05</td><td>5つ</td><td></td></tr><tr><td>9</td><td>1</td><td>各種情報ビット値</td><td>11</td><td>拡張バイトあり<br>符号なしShort型</td><td></td></tr><tr><td>a</td><td>1</td><td>データソース</td><td>30</td><td>ADC</td><td></td></tr><tr><td>b</td><td>1</td><td>拡張バイト</td><td>08</td><td>電源電圧</td><td></td></tr><tr><td>c</td><td>1</td><td>データ長</td><td>02</td><td>2バイト</td><td></td></tr><tr><td>d</td><td>2</td><td>データ</td><td>0AEB</td><td>2795mV</td><td></td></tr><tr><td>e</td><td>1</td><td>各種情報ビット値</td><td>11</td><td>拡張バイトあり<br>符号なしShort型</td><td></td></tr><tr><td>f</td><td>1</td><td>データソース</td><td>30</td><td>ADC</td><td></td></tr><tr><td>g</td><td>1</td><td>拡張バイト</td><td>01</td><td>ADC1</td><td></td></tr><tr><td>h</td><td>1</td><td>データ長</td><td>02</td><td>2バイト</td><td></td></tr><tr><td>i</td><td>2</td><td>データ</td><td>035A</td><td>858mV</td><td></td></tr><tr><td>j</td><td>1</td><td>各種情報ビット値</td><td>05</td><td><p>拡張バイトなし</p><p>符号ありShort</p></td><td></td></tr><tr><td>k</td><td>1</td><td>データソース</td><td>01</td><td>温度</td><td></td></tr><tr><td>l</td><td>1</td><td>拡張バイト</td><td>00</td><td>0</td><td></td></tr><tr><td>m</td><td>1</td><td>データ長</td><td>02</td><td>2バイト</td><td></td></tr><tr><td>n</td><td>2</td><td>データ</td><td>09E3</td><td>25.31℃</td><td></td></tr><tr><td>o</td><td>1</td><td>各種情報ビット値</td><td>01</td><td><p>拡張バイトなし</p><p>符号なしShort</p></td><td></td></tr><tr><td>p</td><td>1</td><td>データソース</td><td>02</td><td>湿度</td><td></td></tr><tr><td>q</td><td>1</td><td>拡張バイト</td><td>00</td><td>0</td><td></td></tr><tr><td>r</td><td>1</td><td>データ長</td><td>02</td><td>2バイト</td><td></td></tr><tr><td>s</td><td>2</td><td>データ</td><td>0E3A</td><td>36.42%</td><td></td></tr><tr><td>t</td><td>1</td><td>各種情報ビット値</td><td>02</td><td><p>拡張バイトなし</p><p>符号ありLong</p></td><td></td></tr><tr><td>u</td><td>1</td><td>データソース</td><td>03</td><td>照度</td><td></td></tr><tr><td>v</td><td>1</td><td>拡張バイト</td><td>00</td><td>0</td><td></td></tr><tr><td>w</td><td>1</td><td>データ長</td><td>04</td><td>4バイト</td><td></td></tr><tr><td>x</td><td>4</td><td>データ</td><td>000001BE</td><td>446 lux</td><td></td></tr><tr><td>y</td><td>1</td><td>チェックサム1</td><td>6C</td><td></td><td></td></tr><tr><td>z</td><td>1</td><td>チェックサム2</td><td>00</td><td></td><td></td></tr></tbody></table>

### 動作センサーパル <a href="#sensparu" id="sensparu"></a>

#### 出力例 <a href="#chu-li-li" id="chu-li-li"></a>

```
:80000000BA002382011CEF01808312113008020D0211300102055C1504400600100010045015044106000800100430150442060000001004381504430600080018043015044406000000180458150445060000002004381504460600080018042815044706FFE80010042015044806FFF00010043815044906FFE80018043015044A06FFF80018044015044B06FFF80018041815044C0600000010042015044D0600000028045015044E0600000008043815044F0600000018043828A5
 ​^^^^^^^1^2^^^3^^^^^^^4^5^6^7^8^9^a^b^c^^^d^e^f^g^h^^^i^j^k^l^m^^^^^^^^^^^n^o^p^q^r^^^^^^^^^^^s  ...                                                                                                                                                                                                                                                               ^t^u^v^w^^^^^^^^^^^x^y^z
 0                   10                  20                  30                  40                  50                  60                  70                  80                  90                  100                 110                 120                 130                 140                 150                 160                 170                 180               
```

<table data-header-hidden><thead><tr><th width="150">番号</th><th width="150">バイト数</th><th width="150">意味</th><th width="155">データ例</th><th width="150">内容</th><th>備考</th></tr></thead><tbody><tr><td>番号</td><td>バイト数</td><td>意味</td><td>データ例</td><td>内容</td><td>備考</td></tr><tr><td>1</td><td>4</td><td>中継機のシリアルID</td><td>80000000</td><td>中継無し</td><td></td></tr><tr><td>2</td><td>1</td><td>LQI</td><td>BA</td><td>186</td><td></td></tr><tr><td>3</td><td>2</td><td>続き番号</td><td>0023</td><td>35</td><td></td></tr><tr><td>4</td><td>4</td><td>送信元のシリアルID</td><td>82011CEF</td><td>送信元のシリアルIDは82011CEF</td><td></td></tr><tr><td>5</td><td>1</td><td>送信元の論理デバイスID</td><td>01</td><td>送信元の論理デバイスIDは01</td><td></td></tr><tr><td>6</td><td>1</td><td>センサー種別</td><td>80</td><td></td><td></td></tr><tr><td>7</td><td>1</td><td>PAL基板バージョンとPAL基板ID</td><td>83</td><td>動作センサーパル Ver.1</td><td></td></tr><tr><td>8</td><td>1</td><td>センサーデータの数</td><td>12</td><td>18</td><td></td></tr><tr><td>9</td><td>1</td><td>各種情報ビット値</td><td>11</td><td>拡張バイトあり<br>符号なしShort型</td><td></td></tr><tr><td>a</td><td>1</td><td>データソース</td><td>30</td><td>ADC</td><td></td></tr><tr><td>b</td><td>1</td><td>拡張バイト</td><td>08</td><td>電源電圧</td><td></td></tr><tr><td>c</td><td>1</td><td>データ長</td><td>02</td><td>2バイト</td><td></td></tr><tr><td>d</td><td>2</td><td>データ</td><td>0D02</td><td>3330mV</td><td></td></tr><tr><td>e</td><td>1</td><td>各種情報ビット値</td><td>11</td><td>拡張バイトあり<br>符号なしShort型</td><td></td></tr><tr><td>f</td><td>1</td><td>データソース</td><td>30</td><td>ADC</td><td></td></tr><tr><td>g</td><td>1</td><td>拡張バイト</td><td>01</td><td>ADC1</td><td></td></tr><tr><td>h</td><td>1</td><td>データ長</td><td>02</td><td>2バイト</td><td></td></tr><tr><td>i</td><td>2</td><td>データ</td><td>055C</td><td>1372mV</td><td></td></tr><tr><td>j</td><td>1</td><td>各種情報ビット値</td><td>15</td><td><p>拡張バイトあり</p><p>符号ありShort</p></td><td></td></tr><tr><td>k</td><td>1</td><td>データソース</td><td>04</td><td>加速度</td><td></td></tr><tr><td>l</td><td>1</td><td>拡張バイト</td><td>40</td><td><p>サンプリング周波数 : 100Hz</p><p>0サンプル目</p></td><td></td></tr><tr><td>m</td><td>1</td><td>データ長</td><td>06</td><td>6バイト</td><td></td></tr><tr><td>n</td><td>2</td><td>データ</td><td>001000100450</td><td><p>X : 16mg</p><p>Y : 16mg</p><p>Z : 1104mg</p></td><td></td></tr><tr><td>o</td><td>1</td><td>各種情報ビット値</td><td>15</td><td><p>拡張バイトあり</p><p>符号ありShort</p></td><td></td></tr><tr><td>p</td><td>1</td><td>データソース</td><td>04</td><td>加速度</td><td></td></tr><tr><td>q</td><td>1</td><td>拡張バイト</td><td>41</td><td><p>サンプリング周波数 : 100Hz</p><p>1サンプル目</p></td><td></td></tr><tr><td>r</td><td>1</td><td>データ長</td><td>06</td><td>2バイト</td><td></td></tr><tr><td>s</td><td>2</td><td>データ</td><td>000800100430</td><td><p>X : 8mg</p><p>Y : 16mg</p><p>Z : 1072mg</p></td><td></td></tr><tr><td></td><td></td><td></td><td>...</td><td></td><td></td></tr><tr><td>t</td><td>1</td><td>各種情報ビット値</td><td>15</td><td><p>拡張バイトあり</p><p>符号ありShort</p></td><td></td></tr><tr><td>u</td><td>1</td><td>データソース</td><td>04</td><td>加速度</td><td></td></tr><tr><td>v</td><td>1</td><td>拡張バイト</td><td>4F</td><td><p>サンプリング周波数 : 100Hz</p><p>15サンプル目</p></td><td></td></tr><tr><td>w</td><td>1</td><td>データ長</td><td>06</td><td>6バイト</td><td></td></tr><tr><td>x</td><td>4</td><td>データ</td><td>000000180438</td><td><p>X : 0mg</p><p>Y : 24mg</p><p>Z : 1080mg</p></td><td></td></tr><tr><td>y</td><td>1</td><td>チェックサム1</td><td>28</td><td></td><td></td></tr><tr><td>z</td><td>1</td><td>チェックサム2</td><td>A5</td><td></td><td></td></tr></tbody></table>

### 通知パル

```
:80000000C9BBC082014C3501808403113008020D0C1130010203F9120504041000000097C6
 ^^^^^^^1^2^^^3^^^^^^^4^5^6^7^8^9^a^b^c^^^d^e^f^g^h^^^i^j^k^l^m^n^^^^^o^p^q
 0                   10                  20                  30            
```

<table data-header-hidden><thead><tr><th width="150">番号</th><th width="150">バイト数</th><th width="150">意味</th><th width="150">データ例</th><th>データ例の内容</th><th>備考</th></tr></thead><tbody><tr><td>番号</td><td>バイト数</td><td>意味</td><td>データ例</td><td>データ例の内容</td><td>備考</td></tr><tr><td>1</td><td>4</td><td>中継機のシリアルID</td><td>80000000</td><td>中継無し</td><td></td></tr><tr><td>2</td><td>1</td><td>LQI</td><td>CQ</td><td>186</td><td></td></tr><tr><td>3</td><td>2</td><td>続き番号</td><td>BBC0</td><td>48064</td><td></td></tr><tr><td>4</td><td>4</td><td>送信元のシリアルID</td><td>82014C35</td><td>送信元のシリアルIDは82014C35</td><td></td></tr><tr><td>5</td><td>1</td><td>送信元の論理デバイスID</td><td>01</td><td>送信元の論理デバイスIDは01</td><td></td></tr><tr><td>6</td><td>1</td><td>センサー種別</td><td>80</td><td></td><td></td></tr><tr><td>7</td><td>1</td><td>PAL基板バージョンとPAL基板ID</td><td>84</td><td>通知パル Ver.1</td><td></td></tr><tr><td>8</td><td>1</td><td>センサーデータの数</td><td>03</td><td>3</td><td></td></tr><tr><td>9</td><td>1</td><td>各種情報ビット値</td><td>11</td><td>拡張バイトあり 符号なしShort型</td><td></td></tr><tr><td>a</td><td>1</td><td>データソース</td><td>30</td><td>ADC</td><td></td></tr><tr><td>b</td><td>1</td><td>拡張バイト</td><td>08</td><td>電源電圧</td><td></td></tr><tr><td>c</td><td>1</td><td>データ長</td><td>02</td><td>2バイト</td><td></td></tr><tr><td>d</td><td>2</td><td>データ</td><td>0D0C</td><td>3340mV</td><td></td></tr><tr><td>e</td><td>1</td><td>各種情報ビット値</td><td>11</td><td>拡張バイトあり 符号なしShort型</td><td></td></tr><tr><td>f</td><td>1</td><td>データソース</td><td>30</td><td>ADC</td><td></td></tr><tr><td>g</td><td>1</td><td>拡張バイト</td><td>01</td><td>ADC1</td><td></td></tr><tr><td>h</td><td>1</td><td>データ長</td><td>02</td><td>2バイト</td><td></td></tr><tr><td>i</td><td>2</td><td>データ</td><td>03F9</td><td>1017mV</td><td></td></tr><tr><td>j</td><td>1</td><td>各種情報ビット値</td><td>12</td><td>拡張バイトあり符号なしLong</td><td></td></tr><tr><td>k</td><td>1</td><td>データソース</td><td>05</td><td>イベント</td><td></td></tr><tr><td>l</td><td>1</td><td>拡張バイト</td><td>04</td><td>加速度によるイベント</td><td></td></tr><tr><td>m</td><td>1</td><td>データ長</td><td>04</td><td>4バイト</td><td></td></tr><tr><td>n</td><td>1</td><td>データ1</td><td>10</td><td>イベント0x10(16)が発生</td><td>加速度の場合<br>0x01(1)～0x06(6)：さいころ<br>0x08(8)：シェイク<br>0x10(16)：タップ</td></tr><tr><td>o</td><td>3</td><td>データ2</td><td>000000</td><td>0</td><td>将来の拡張用。現在は未使用</td></tr><tr><td>p</td><td>1</td><td>チェックサム1</td><td>28</td><td></td><td></td></tr><tr><td>q</td><td>1</td><td>チェックサム2</td><td>A5</td><td></td><td></td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wings.twelite.info/how-to-use/parent-mode/receive-message/app_pal.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
