NMEA型向け 信号定義サンプル

このサンプルでは、NMEA形式のデータを物理値に変換する信号定義を登録します。

以下のような、アドレスフィールドが GPRMC であるサンプルデータを例にします:

$GPRMC,085120.307,A,3541.1493,N,13945.3994,E,000.0,240.3,181211,,,A*6A

index

値の例

意味

0

085120.307

協定世界時(UTC)での時刻

1

A

ステータス (A = 有効)

2

3541.1493

緯度

3

N

北緯 or 南緯

4

13945.3994

経度

5

E

東経 or 西経

6

000.0

地表における移動の速度

7

240.3

地表における移動の真方位

8

181211

協定世界時(UTC)での日付

9

(blank)

磁北と真北の間の角度の差。000.0~359.9度

10

(blank)

磁北と真北の間の角度の差の方向

11

A

モード (A = Autonomous)

12

*6A

チェックサム

以下では、上記の形式のデータから緯度と経度を取得するための信号定義を登録します。

信号定義の概要

項目

設定内容

変換対象とする時系列データのタイプ

intdash.DataType.nmea

適用する変換

intdash.ConversionCSV

信号定義の登録

信号定義のアクセスオブジェクトを生成します。

import intdash

client = intdash.Client(
    url = "https://example.intdash.jp",
    edge_token = "your_token",
)

sig = client.signals

以下のように、信号定義をそれぞれ登録します。

緯度 ( index=2 )

s = sig.create(
    label="GNRMC_LAT",
    data_type=intdash.DataType.nmea,
    data_id='GNRMC',
    channel=1,
    conversion=intdash.ConversionCSV(
        delimiters=[','],
        index=2,
        value_type='str'
    ),
    display=intdash.Display(
        unit='',
        min=0,
        max=360,
        format='%s',
    ),
)

経度 ( index=4 )

s = sig.create(
    label="GNRMC_LNG",
    data_type=intdash.DataType.nmea,
    data_id='GNRMC',
    channel=1,
    conversion=intdash.ConversionCSV(
        delimiters=[','],
        index=4,
        value_type='str'
    ),
    display=intdash.Display(
        unit='',
        min=0,
        max=360,
        format='%s',
    ),
)