V016002-702

CANTOOL-A シリーズ

CANTOOL A1［SDK-Manual］
Rev. 01.06 2022-08-31

製品名
CANTOOL A1

型番

対応全体バージョン

CTA101A-D0E0T

Ver01.05.00

CTA101A-D0E0

Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

改定履歴Revision

日付

変更内容

01.00

2018-01-29

初版(対応全体バージョン:Ver01.02)

01.01

2018-03-26

対応全体バージョン:Ver01.03

01.02

2018-07-02

対応全体バージョン:Ver01.03.02
・不具合対応01.03

2018-08-01

対応全体バージョン:Ver01.03.04
・API 追加
Rmt_SendMultiPacketData()
Rmt_GetMultiPacketStatus()

01.04

2018-12-10

対応全体バージョン:Ver01.03.10
・API 追加
Rmt_StartAppFunction2()

01.05

2020-01-20

対応全体バージョン:Ver01.04.00
・API 追加
Rmt_SendMultiPacketData2()
Rmt_ResponseMultiPacketData()
Rmt_GetResponseMultiPacketDataStatus()
Rmt_LoadMasterSetting2
Rmt_SendCyclicData()
・API 機能拡張

Rmt_SendMultiPacketData()
Rmt_GetMultiPacketStatus()
01.06

2022-08-31

対応全体バージョン Ver01.05.00
・API 追加
Rmt_DynamicPeriodicFrameControl()
Rmt_SendCyclicData2()
Rmt_SendMultiPacketData3()
Rmt_ResponseMultiPacketData3()
・API 仕様変更
Rmt_SendCyclicData()
外部仕様参照(2/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

商標
Microsoft、Windows、Visual Studio、Visual Basic、Visual C#、Visual C++は、米国 Microsoft Corporation（あるいは米国マイクロソフト・コーポレーション）の米国およびその他の国における登録商標です。（Windows の正式名称は Microsoft
Windows Operating System です）
その他、記載されている会社名、製品名は、各社の商標または登録商標です。

(3/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

目次
1. 概要............................................................................................................................................ 5
1.1

システム概要 ......................................................................................................................................................... 5

1.2

稼働条件 .............................................................................................................................................................. 6

1.3

付属資料 .............................................................................................................................................................. 6

2. SDK について .............................................................................................................................. 7
2.1

SDK の構成 .......................................................................................................................................................... 7

2.2

SDK で扱うインターフェース情報ついて.................................................................................................................... 8

2.2.1 インターフェース構成について .......................................................................................................................................... 8
2.2.2 SDK で使用するインターフェース設定情報....................................................................................................................... 11

3. SDK 使用方法 .......................................................................................................................... 13
3.1

SDK 使用準備 .................................................................................................................................................... 13

3.2

定義方法 ............................................................................................................................................................ 14

3.2.1 DLL の参照設定 ................................................................................................................................................................. 14
3.2.2 Visual Studio でのインクルード設定 ...................................................................................................................................... 17

3.3

使用手順 ............................................................................................................................................................ 19

3.3.1 ユーザーアプリ処理フロー例 ........................................................................................................................................... 19
3.3.2 内部情報取得 .................................................................................................................................................................... 22
3.3.3 データ送受信方法 ............................................................................................................................................................. 23

3.4

注意事項 ............................................................................................................................................................ 25

3.4.1 Excel VBA 版 ..................................................................................................................................................................... 25

4. ライブラリインターフェース仕様..................................................................................................... 27
4.1

ライブラリインターフェース一覧.............................................................................................................................. 27

4.2

ライブラリインターフェース詳細.............................................................................................................................. 29(4/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

1. 概要CANTOOL A1 の SDK(Software Development Kit:ソフトウェア開発キット) は CANTOOL A1 が提供する機能です。
SDK は User Application(ユーザープログラム)から CANTOOL A1 の CAN、AD/DA、GPIO などを制御するためのソフトウェア開発キットです。
本 SDK 使用することで CANTOOL A1 が持つ CAN、LIN、AD/DA、GPIO などをユーザープログラムから制御することができます。

本書では、以降 CANTOOL A1 を"CANTOOL" と称します。
SDK は、C++版と C#版の DLL を提供しています。

本書は、「V016002-700_CANTOOL_A1-Manual」を参照し CANTOOL の基本的な利用方法をご理解されている方向けの記載となっています。

1.1 システム概要
CANTOOL および SDK のソフトウェア構成を以下に示します。
PC(Windows)

User Application
APP
Remote DLL

Remote I/F
CANTOOL PANEL

USB DriverUSB
CANTOOL A1(HW)

CAN/FD

LIN

AD/DA

GPIO

UART

LED

SW

To Target ECU、Etc

図 1-1 CANTOOL ソフトウェア構成図(5/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

表 1-1 ソフトウェア構成要素一覧
名称

説明

User Application

ユーザーにて作成されるアプリケーションです。ここでは DLL を含んだ環境を指します。
ユーザーアプリは、Visual Studio もしくは EXCEL VBA から使用されることを想定しています。

APP

ユーザーにて作成されるアプリケーション部分です。

Remote DLLCANTOOL を制御するための API が含まれた DLL です。(SDK)
VisualStudio2017 で作成されており、C++版。C#版の DLL を提供します。

CANTOOL PANELCANTOOL 基本ソフトウェアです。

Remote I/F

Remote Dll とのインターフェースです。CANTOOL PANEL に含まれます。

USB Driver

CANTOOL のハードウェアにアクセスするための USB ドライバです。

1.2 稼働条件

対象オペレーティングシステム
本 SDK は、以下の Microsoft Windows オペレーティングシステムに対応しています。
・Windows 8.1 32bit/64bit
・Windows 10 32bit/64bit

対象．NET Framework
本 SDK は、以下の Microsoft .NET Framework に対応しています。
・.NET Framework 4.6.2

動作確認済み開発環境
本 SDK は、以下の開発環境を使用した動作を確認済みです。
・Microsoft Visual Studio 2017
・Microsoft EXCEL 2013

1.3 付属資料①ライブラリインターフェース仕様
V016002-702_CANTOOL_A1_SDK-ReferenceManual-API(6/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

2. SDK について

2.1 SDK の構成
SDK には、以下のものが含まれています。
なお、最新データについては、取扱説明書の「製品サポートページ」の章を参照して、入手してください。

SDK-root|- Manual

SDK マニュアル (本書)|- Library

ライブラリ

|-

|-

RemoteDLL.dll

C++/C#|-|-

RemoteDLL.lib

C++/C#用 LIB|-|-

RemoteDLLCs.dll

C#用 DLL|-|-

RemoteDLLvba.dll

EXECEL VBA 用 DLL|- Header

ヘッダーファイル

|-C++/C#用|-RemoteDLL.h|- Sample

各種サンプルプログラム|-

CANTOOL A1_SDK_sample-list.pdf

各サンプルプログラムの概要を記載|-

readme_001X_sample.pdf

サンプル 1 の説明

|-

:

|-

001P_sample

サンプル 1 (C++)＊１|-

001S_sample

サンプル 1 (C#)＊１|-001E_sample

サンプル 1 (EXCEL)＊１:＊１:サンプルプログラム名について
XXXY_ZZZXXX:サンプル番号 001~
Y

:開発環境

P＝C++用、 S＝C#用、 E＝EXCEL VBA

ZZZ:サンプルプログラム名＊Library、Heder のファイルは、実行環境に合わせてコピーして使用してください。

(7/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

2.2 SDK で扱うインターフェース情報ついて
2.2.1 インターフェース構成について
CANTOOL のインターフェースには、「車載ネットワーク」、「汎用入出力」の２つがあります。

2.2.1.1.

車載ネットワーク

Bus|-Node|-|-Frame|-||-Signal|-||-Signal

|-

|

|- :

|-

|-Frame|-||-Signal

|-

|

|- :

|-

|-Frame||:|-Node|:

図 2-1 インターフェース(車載ネットワーク)構成ツリー(8/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

車載ネットワークのインターフェースは、Bus, Node, Frame, Signal の階層構造となっています。以下に各要素について示します。

表 2-1 インターフェース(車載ネットワーク)構成要素一覧
項目

説明

Bus

物理的なインターフェースを Bus(バス)と呼びます。
車載ネットワークには以下のバスが存在します。
Bus 名

説明

CAN0

Control Area Network のインタフェース

CAN1

CAN および、CAN FD(CAN with Flexible Data-Rate)に対応

CAN2
CAN3
LIN

Node

LIN インタフェース

ECU 機器などの単位で Fame をグルーピングしたもの。
各 Bus 単位で作成でき、1 つの Bus 内で複数の Node を定義可能です。
なお、１つの Bus 内では、同一 Node 名は使用できません。(異なる Bus の場合は可能です)

Frame

CAN/LIN のフレームのこと。
送信、受信含めて定義します。
各 Bus 単位で作成でき、1 つの Bus 内で複数の Frame を定義可能です。
なお、１つの Bus 内では、同一 Frame 名は使用できません。(異なる Bus の場合は可能です)

SignalCAN/LIN のフレーム内信号のこと。
各 Frame 単位で作成できます。
なお、1 つの Frame 内では、同一 Signal 名は使用できません。(異なる Frame の場合は可能です)(9/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

2.2.1.2. 汎用入出力

Bus|-Port|-Port:|

図 2-2 インターフェース(汎用入出力)構成ツリー
汎用入出力のインターフェースは、Bus, Port の階層構造となっています。以下に各要素について示します。

表 2-2 インターフェース(汎用入出力)構成要素一覧
項目

説明

Bus

物理的なインターフェースを Bus(バス)と呼びます。
汎用入出力には以下のバスが存在します。
Bus 名

説明

AD0

Analog/Digital Conversion インターフェース

AD1
DA0

Digital /Analog Conversion インターフェース

DA1

Port

GPI

General Purpose Input インターフェース

GPO

General Purpose Output インターフェース

汎用入出力の Bus 内のポートのこと。
(GPI、GPO のみ)(10/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

2.2.2 SDK で使用するインターフェース設定情報
SDK 使用時は、「2.2.1 インターフェース構成について」をベースに、データを扱いやすくするために、各項目にユニークな ID を割り当てています。

2.2.2.1. 車載ネットワーク
車載ネットワークの各項目(Bus, Node, Frame, Signal )にそれぞれユニークな ID を割り当てています。
割り当てられた ID をそれぞれ BusID, NodeID, FrameID, SignalID と呼びます。
また、各 ID をまとめてリストにしたものをそれぞれ BusList, NodeList, FrameList, SignalList と呼びます。リスト内には当該階層
以下の ID 情報を含んでいます。
ID とリストの構造の関係を以下に示します。

図 2-3 SDK 使用時のインターフェース(車載ネットワーク)構成

表 2-3 SDK 使用時のインターフェース(車載ネットワーク)構成情報一覧
項目
BusListNodeList

FrameList

説明
BusID

Bus を一意に特定するための ID

Bus Name

Bus 名称

NodeIdBusID に紐づく Node 情報

NodeID

Node を一意に特定するための ID

Node Name

Node 名称

FrameID

NodeID に紐づく Frame 情報

FrameID

Frame を一意に特定するための ID

Frame Name

Frame 名称

XID

SignalList

SID

標準 CAN ID

EID

拡張 ID

SignalID

FrameID に紐づく Signal 情報

SignalID

Signal を一意に特定するための ID

Signal Name

Signal 名称(11/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

2.2.2.2. 汎用入出力
汎用入出力のインターフェースは固定です。
以下に、汎用入出力の構成を示します。

表 2-4 SDK 使用時のインターフェース(汎用入出力)構成情報一覧
BusID

Port

説明

AD0

-

AD は 2 つの Bus で構成される-

DA は 2 つの Bus で構成される

GPI

0~3

GPI は 1 つの Bus 内に 4 ポートある

GPO

0~3

GPO は 1 つの Bus 内に 4 ポートある

AD1
DA0
DA1

表 2-5 SDK 使用時のインターフェース(汎用入出力)構成情報一覧
項目

説明

BusID

Bus を一意に特定するための ID

PortBus 内の Port 番号(GPI、GPO のみ)(12/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

3. SDK 使用方法

3.1 SDK 使用準備
① PC アプリ（CANTOOL PANEL）のセットアップ
セットアップ方法については、取扱説明書の「ソフトウェアセットアップ」の章を参照してください。
② 環境変数の設定
SDK から PC アプリ(CANTOOL PANEL)に接続するために、環境変数の設定が必要です。以下の手順に沿って環境変数を設定してください。なお、本手順は、SDK を使用する PC 毎に必要です。
PC アプリ(CANTOOL-PANEL.exe が格納されている)フォルダ内にある「CANTOOL_A1_Setup.bat」を 管理者権限で実行してください。

(13/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

3.2 定義方法
3.2.1 DLL の参照設定
3.2.1.1. C++版
(1)Visual Studio のソリューションエクスプローラーにて、ユーザーアプリのプロジェクトを右クリック → [プロパティ] → [VC++ディレクトリ] → [ライブラリディレクトリ] を開いてください。
ライブラリディレクトリに、RemoteDLL.dll が格納されているディレクトリを指定してください。

図 3-1 DLL の参照設定(C++版)(14/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

3.2.1.2. C#版(1)Visual Studio のソリューションエクスプローラーにて、ユーザーアプリプロジェクトの「参照」を右クリック → [参照の追加] → (参照マネージャーウィ
ンドウ右下の)[参照] を開いてください。
参照するファイルの選択にて、RemoteDLLCs.dll を設定してください。なお、RemoteDLL.dll も RemoteDLLCs.dll と同じ場所に格納してください。(RemoteDLLCs.dll から RemoteDLL.dll を参照して使用しているため)

図
3-2 DLL の参照設定(C#版)(15/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

3.2.1.3. EXCEL VBA 版

EXCEL VBA からの参照は、VBA の標準モジュールに、以下のような記述を行ってください。

使用する API の定義

標準モジュール

図 3-3 DLL の参照設定(EXCEL VBA 版)
Declare Function Rmt_Start Lib "C:\001E_sample\001E_sample\RemoteDLLvba.dll" (ByVal size As Long, ByVal project_path
As String, ByRef startUp As Boolean, ByVal StartWithMainPanel As Boolean) As Integer
Declare Function Rmt_GetStatus Lib "C:\001E_sample\001E_sample\RemoteDLLvba.dll" (ByVal size As Long, ByRef status As
summary_t_rmt) As Integer
Declare Function Rmt_TimeSyncronizeRequest Lib "C:\001E_sample\001E_sample\RemoteDLLvba.dll" () As Integer
Declare Function Rmt_LoadMasterSetting Lib "C:\001E_sample\001E_sample\RemoteDLLvba.dll" () As Integer
Declare Function Rmt_StartAppFunction Lib "C:\001E_sample\001E_sample\RemoteDLLvba.dll" (ByVal DispId As Byte) As
Integer
Declare Function Rmt_SendAnyCANFrame Lib "C:\001E_sample\001E_sample\RemoteDLLvba.dll" (ByVal BusId As Integer,
ByVal SidOnly As Boolean, ByVal Sid As Integer, ByVal Eid As Long, ByVal isCANFD As Boolean, ByVal bitRateSwitch As
Boolean, ByVal dataLength As Long, ByRef data As Byte) As Integer::

図 3-4 使用する API の定義拡大(EXCEL VBA 版)(16/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

3.2.2 Visual Studio でのインクルード設定
3.2.2.1. C++版
Visual Studio のソリューションエクスプローラーにて、ユーザーアプリのプロジェクトを右クリック→[プロパティ] → [構成プロパティ] → [VC++ディレク
トリ] を開いてください。
(1)インクルードディレクトリに、インクルードファイル(RemoteDLL.h)が含まれているフォルダ(例では C:\CANTOOL\sdk)を指定してください。

図 3-5 インクルード設定 (C++版)-1(17/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

(2)Visual Studio のソリューションエクスプローラーにて、ユーザーアプリのプロジェクトを右クリック → [プロパティ] → [構成プロパティ] → [リンカ]→ [入力] を開いてください。
追加の依存ファイルにて、RemoteDLL.lib を設定してください。

図 3-6 インクルード設定(C++版)-2

3.2.2.2. C#版

C#ではインクルード設定は必要ありません。（DLL の参照設定だけで使用可能です）

3.2.2.3. EXCEL VAB 版

EXCEL VBA ではインクルード設定は必要ありません。（DLL の参照設定だけで使用可能です）(18/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

3.3 使用手順
3.3.1

ユーザーアプリ処理フロー例

ユーザーアプリでの処理フローの例を以下に示します。
(1)メイン処理(2)受信処理
起動

Start

Start
⑬最新情報取得(Rmt_GetDataNewerList)①SDK 使用開始通知処理(Rmt_Start)
更新②ステータス確認(Rmt_GetStatus)⑭全ログ取得(Rmt_GetDataALL)
更新③本体接続状態⑮受信データを確認して、処理
を行う

未接続

接続中

初期処理
・④時刻同期(Rmt_TimeSyncronizeRequest)
・⑤受信スレッド起動
・⑥コールバック登録(Rmt_RegisterNotificationXXX)・⑦Bus/Node/Frame/Signal 一覧情報作成

参照/更新

登録

⑧設定を本体に反映(Rmt_LoadMasterSetting)
未⑨反映完了待ち

Start
参照

データ
(変数等)
更新

完了
⑩既存画面の起動(Rmt_StartAppFunction)⑯コールバック処理

End
参照/更新

⑪メイン処理(データ送受信等)
終了?

(3)コールバック処理
コールバックイベント発生

設定完了通知(Rmt_RegisterNotificationEndMasterSetti
ng で設定した関数)が来たことを確認する

No

Yes⑫SDK 使用終了処理(Rmt_End)End

図 3-7 処理フロー例(19/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

処理フロー例では、大きく３つの処理に分割しています。
(1) メイン処理
初期化処理及び、送受信処理(受信自体は(2)受信処理で実施し取得したデータを参照する)を行う。
(2) 受信処理
受信を行い、必要なデータを格納する。受信したデータは(1)メイン処理にて参照する。
受信処理のみを独立することで、メイン処理を停滞させないようにする。
また、全ログを取得する場合は、定期的にデータを取得する必要がある(一定量で上書きされて消えるため)ためメイン処理とは別のスレッドで処理したほうがよい。
(3) コールバック処理
状態変更時などイベント発生時に必要な処理を行う。

処理フロー例の各処理についての補足説明を以下に示します。

表 3-1 処理説明
処理 No

処理内容

説明

①

SDK 使用開始通知処理(Rmt_Start)

ユーザーアプリから SDK を開始する際に最初にコールします。なお、終了時は、⑫SDK 使用終了通知を必ず実行してください。
本処理実行時に、PC アプリ（CANTOOL PANEL）を CANTOOL のプロジェクトファイルを指定して起動します。PC アプリがすでに起動している場合には、新たに起動しません。(読み込み済
みのプロジェクトファイルが使用されます)★なお、プロジェクトファイルについては、事前に PC アプリを使用して作成しておく必要があります。

②

ス テ ー タ ス 確 認(Rmt_GetStatus)

PC と CANTOOL 本体が接続しているかを確認するためのコマンドを実行します。
＊CANTOOL 本体が接続されていないと実行できないコマンドがあるため、最初に接続状態を確認します。

③

本体接続状態④

時

刻'③ステータス確認の結果に含まれる CANTOOL 本体との接続状態を確認します。
同期

CANTOOL 本体に PC の時刻を設定します。

(Rmt_TimeSyncronizeRequest)⑤

受信スレッド起動

CANTOOL 本体からの受信データは、専用受信スレッドを使用して定期的に取得してください。
特に、全ログ(時系列のログ)を取得する場合は、常時ログが発生するため取得しないと欠落することがあります。

⑥

コールバック登録

状態の変更通知を受け取るためのコールバック関数を登録します。

(Rmt_RegisterNotifica

ステータスが変更となった場合などに通知されます。

tionXXX)⑦

Bus/Node/Frame/Sig

プロジェクトファイルに設定されている各種情報を取得します。各 Bus,Node、Frame、Signal

nal 一覧情報作成にはユニークな ID が振られるため、最初に一覧を作成することで以降の処理を行いやすくなりま
す。

⑧

⑨

設定を本体に反映(Rmt_LoadMasterSett
ing)
反映完了待ちプロジェクトファイルを、CANTOOL 本体に反映します。

‘⑧の処理が完了するまでに少々時間がかかりますので、完了したことを通知するコールバック関(20/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

処理 No

処理内容

説明
数処理が呼び出されるまで待ちます。コールバック関数にて反映完了待ちのフラグを ON するなどして、本処理に結果を通知してください。

⑩⑪⑫

既 存 画 面 の 起 動(Rmt_StartAppFunction)

PC アプリ(CANTOOL PANEL)の画面を呼び出します。

メイン処理(データ送受
信等)

GUI を作成してデータを見える化するなど、ユーザーの処理を行います。

SDK 使 用 終 了 処 理(Rmt_End)

ユーザーアプリから SDK の使用を終了することを通知します。PC アプリを終了することも可能でステータスモニタ画面など、既存の画面を活用することでログ確認画面をユーザーにて別途作成する必要はありません。
データ送信は、Rmt_SendXXX の API を使用することで簡単に行うことが可能です。
す。(複数のユーザアプリが起動している場合には、すべてのユーザーアプリの終了を待ってから PC
アプリが終了します)⑬⑭

最 新 情 報 取 得(Rmt_GetDataNewerList)
全 ロ グ 取 得
(Rmt_GetDataALL)

各データの最新値を取得します。現在の値を元に処理を行う場合には本処理を使用します。

全ログを取得します。時系列に発生する事象を見ながら処理する場合には本処理を使用します。受信スレッドを効率的に実行する場合には、取得したデータは FIFO 経由でメイン処理に送り、メイン処理側でデータ処理することをお勧めします。

⑮

受信データを確認して、 簡単な処理は、受信スレッドにて実行します。
処理を行う

⑯

コールバック処理

登録しておいたコールバック処理を実行します。
コールバックを登録した関数毎に、処理内容が異なります。
・Rmt_RegisterNotificationStatusChange
Rmt_GetStatus を実行して、最新のステータスを取得してください。
・Rmt_RegisterNotificationUserSW
・Rmt_RegisterNotificationEndedRecordingLog
・Rmt_RegisterNotificationEndMasterSetting
コールバック関数の引数で状態を取得できます。

(21/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

3.3.2 内部情報取得
各内部情報は、以下 API を利用して、取得できます。
表 3-2 内部情報取得方法
分類

内部情報

取得方法

Bus

BusListRmt_GetBusList

BusID

定義値(RMT_BUS_ID_XXX)を使用

定義については、「RemoteDLL.h」参照

NodeList

Rmt_GetNodeList

BusID は、定義を使用

Node

備考

BusID を使用して取得する

Frame

NodeID

NodeList から取得する

FrameList

Rmt_GetFrameList

NodeID は、Rmt_GetNodeList で取NodeID を使用して取得する得した NodeList から取得する

Rmt_ConvertXID2FrameID

BusID は、定義を使用

FrameIDBusID, XID(SID, EID)を使用して取得する
FrameList から取得するSignalSignalList

Rmt_GetSignalList

FrameID は、Rmt_GetFrameList でFrameID を使用して取得する取得した FrameList から取得する

Rmt_ConvertSignalListFromFrame

同上

FrameID を使用して取得する
SignalID

Rmt_ConvertXID2SignalID

BusID は、定義を使用

BusID, XID(SID, EID), SignalName を使用して取得する
SignalList から取得する(22/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

3.3.3 データ送受信方法
各バスにおける、データの送受信方法を説明します。
内部情報の取得方法については、「3.3.2 内部情報取得」をご参照ください。

3.3.3.1. CAN / LIN
3.3.3.1.1. Frame 送信(1)FrameID を利用して送信する場合
1．FrameID を取得する。
2．Rmt_SendFrameData にて、FrameID と CAN の情報(サイズ)を指定して、データを送信する。
(2)任意のデータを送信する場合
1．Rmt_SendAnyCANFrame にて、BusID と CAN の情報(XID, サイズ)を指定して、任意の Frame データを送信する。

3.3.3.1.2. Frame 受信(1)特定の Frame の最新値を取得する場合
1．FrameID を取得する。
2．Rmt_GetFrameData にて、FrameID と CAN の情報(サイズ)を指定して、データの最新値を取得する。
(2)受信した全 Frame の最新値を取得する場合
1．Rmt_GetDataNewerList にて、送受信した Frame データの最新値を取得する。
(3)受信したすべての Frame を取得する場合
1．Rmt_GetDataALL にて、送受信した Frame データのすべての値を取得する。
※受信したデータは一旦 PC アプリ(CANTOOL PANEL)側で保持されるため、定期的に取得処理が必要です。

3.3.3.1.3. Signal 送信(1)SignalID を利用して送信する場合
1．SignalID を取得する。
2．Rmt_SendSignalData にて、SignalID と CAN の情報(サイズ)を指定して、データを送信する。
※Signal 送信では、指定した Signal データのみを書き換えて送信されます。指定外のデータは前回送信時の情報が使用されます。

3.3.3.1.4. Signal 受信(1) 特定の Signal の最新値を取得する場合
1．SignalID を取得する。
(23/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

2．Rmt_GetSignalData にて、SignalID と CAN の情報(サイズ)を指定して、データの最新値を取得する。
(2)Frame 受信後のデータを利用する場合
1．FrameID を取得する。
2．Rmt_ConvertSignalListFromFrame にて、FrameID とと CAN の情報(サイズ)を指定して、SignalList を取得する。
3．SignalList から、SignalName を指定して、データの最新値を取得する。

3.3.3.2. AD / DA
3.3.3.2.1. AD 受信
１．Rmt_GetAdData にて、Bus 番号を指定して、データの最新値を取得する。

3.3.3.2.2. DA 送信
１．Rmt_SendDaData にて、Bus 番号を指定して、データを送信する。

3.3.3.3. GPI / GPO
3.3.3.3.1. GPI 受信
１．Rmt_GetGpiData にて、ポートを指定して、データの最新値を取得する。

3.3.3.3.2. GPO 受信
１．Rmt_SendGpoData にて、ポートを指定して、データを送信する。

(24/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

3.4 注意事項
各 DLL 使用時の注意点を記載します。

3.4.1 Excel VBA 版
3.4.1.1. 構造体(ユーザー定義型)について
・構造体のメンバーは、VBA ではユーザー定義型とし、メンバーは全て BYTE 型で定義してください。
・RemoteDLL(C++版)の構造体は 4 バイトアライメントされているので、VBA 側は 4 バイトアライメントに合わせてください。
(例)■RemoteDLL(C++版)での構造体定義
typedef struct {char

AAA[9];BYTE

BBB[4];DWORD

CC[2];BYTE

DDD;

ULONGLONG EEE;
} structName;■VBA でのユーザー定義型定義
Public Type structName
AAA(1 To 9) As Byte
Dummy1(1 To 3) As Byte

4 バイトアライメントのため、
ダミーデータで埋める

BBB(1 To 4) As Byte
CCC(1 To 2) As Byte
DDD As Byte
Dummy2 As Byte
EEE(1 To 8) As Byte
End Type(25/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

3.4.1.2. API コール時の引数指定について
C++での変数型と VBA での変数型の対応は、以下の通りです。
値渡しをする際は、VBA にて ByVal キーワードを指定し、参照渡しの際は ByRef キーワードを指定してください。
API(C++版)での変数型

Excel VBA での変数型

説明

BOOL

Long

VBA で True を設定しても、API では FALSE とみなされるため、(TRUE の場合 1、VBA 側では Long 型に True(1)または False(0)を設定してください。

FALSE の場合 0 を指定)
WORD

Integer

2 バイト

DWORD

Long

4 バイト

int

Long

4 バイト

ULONGLONG

ユーザー定義型

VBA では 8 バイトの整数型を扱うことができません。

BYTE 型配列[8] またはBYTE 側配列または LONG 型配列にて、8 バイト分のデータを確保してLONG 型配列[2]

ください。

char*

String

文字列型

構造体

ユーザー定義型「3.4.1.1 構造体(ユーザー定義型)について」参照(メンバーはすべて BYTE 型または
BYTE 配列で扱う)(例)■RemoteDLL(C++版)での定義
int Rmt_Start(DWORD size, char* project_path, BOOL* Startup, BOOL StartWithMainPanel = FALSE)■Excel VBA での定義
Declare Function Rmt_Start Lib "C:\001E_sample\001E_sample\RemoteDLLvba.dll" (ByVal size As Long, ByVal
project_path As String, ByRef startUp As Long, ByVal StartWithMainPanel As Long) As Integer(26/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

4. ライブラリインターフェース仕様
4.1 ライブラリインターフェース一覧
SDK が提供する API の一覧を以下に示します。各 API の詳細は本冊子の末尾を参照してください。
※グレーアウトされているものは、将来対応予定です。

表 4-1 ライブラリインターフェース一覧
カテゴリ

説明

名称

スタート

SDK 使用開始通知処理

Rmt_Start

エンド

SDK 使用終了処理

Rmt_Endステータス

各種状態を取得する。

Rmt_GetStatus

指定の LED を制御する。

Rmt_SetLED

状態変更時に通知される。GetStatus で取得すること。

Rmt_RegisterNotificationStatusChange

対応する車載ネットワークバス情報を取得する。

Rmt_GetBusList

各バスに設定されているノード情報を取得する。

Rmt_GetNodeList

各ノードに設定されているフレーム情報を取得する。

Rmt_GetFrameList

各フレームに設定されているシグナル情報を取得する。

Rmt_GetSignalList

指定された CAN バスのバス設定を取得する。

Rmt_GetBusConfigCan

LIN のバス設定を取得する。

Rmt_GetBusConfigLin指定された AD ポートのバス設定を取得する。

Rmt_GetBusConfigAd指定された DA ポートのバス設定を取得する。

Rmt_GetBusConfigDa

指定された GPI ポートのバス設定を取得する。

Rmt_GetBusConfigGpi指定された GPO ポートのバス設定を取得する。

Rmt_GetBusConfigGpo指定された Node の設定を取得する。

Rmt_GetNodeConfig

指定された Frame の設定を取得する。

Rmt_GetFrameConfig

指定された Signal の設定を取得する。

Rmt_GetSignalConfig

Frame に割り当てられている Signal のリストを取得する

Rmt_ConvertSignalListFromFrameBusID と XID から FrameID を取得する。

Rmt_ConvertXID2FrameID

BusID と XID と SignalSymbol から SignalID を取得する。

Rmt_ConvertXID2SignalID

本体の UART の設定の変更を行う。

Rmt_SetUartSetting

本体の UART の設定を取得する。

Rmt_GetUartSetting

指定したフレーム ID のデータサイズ(バイト)を取得する。

Rmt_GetFrameSize

指定したシグナル ID のデータサイズ(バイト)を取得する。

Rmt_GetSignalSize

定周期送信 Frame の有効無効を動的に切り替えする。

Rmt_DynamicPeriodicFrameControl

ユーザースイッチ操作時に通知される。

Rmt_RegisterNotificationUserSW

Config 変更時に通知される。

Rmt_RegisterNotificationConfigChange

ステータスモニタ用ログをクリア時に通知される

Rmt_RegisterNotificationStatusMonitor

コントロール

DataClear(27/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

カテゴリ
データ送信

説明

名称

指定フレームのデータを送信する。周期送信の値に反映される。

Rmt_SendFrameData

指定シグナルのデータを送信する。周期送信の値に反映される。

Rmt_SendSignalData

指定ポートの DA の値を変更する。

Rmt_SendDaData

指定ポートの GPO の値を変更する。

Rmt_SendGpoData

UART へのデータを送信する。

Rmt_SendUartData

任意の CAN Frame データを送信する。

Rmt_SendAnyCANFrame

送信データを Frame サイズに分割し、指定周期で送信を行う。

Rmt_SendCyclicData

送信データを Frame サイズに分割し、指定周期で送信を行う。(複数

Rmt_SendCyclicData2

Frame 制御)
MultiPacket データを送信する

Rmt_SendMultiPacketData

MultiPacket データを送信する(N_TAtype あり)

Rmt_SendMultiPacketData2

MultiPacket データを送信する(N_TAtype、CAN Frame データ空

Rmt_SendMultiPacketData3

欄部のパディング指定)
MultiPacket への応答内容設定

Rmt_ResponseMultiPacketData

MultiPacket への応答内容設定(N_TAtype、CAN Frame データ

Rmt_ResponseMultiPacketData3

空欄部のパディング指定)
データ受信

指定フレームの最新データを取得する。

Rmt_GetFrameData

指定シグナルの最新データを取得する。

Rmt_GetSignalData

指定ポートの AD の値を取得する。

Rmt_GetAdData

指定ポートの GPI の値を取得する。

Rmt_GetGpiData

最新データを取得する。

Rmt_GetDataNewerList

車載ネットワーク、GPIO、AD/DA を含む。
送受信したデータを全て取得する。前回取得以降のデータが取得可

Rmt_GetDataALL能。車載ネットワーク、GPIO、AD/DA を含む。
MultiPacket 状態を取得する

Rmt_GetMultiPacketStatus

MulitPacket 応答状態を取得する

Rmt_GetResponseMultiPacketDataStatus

PC ロギング

再生

UART の受信データが通知される

Rmt_RegisterNotificationGetUartData

PC でのロギングを開始する。

Rmt_StartRecordingLog

PC でのロギングを停止する。

Rmt_EndRecordingLog

StartRecordingLog()、EndRecordingLog()の応答として、ログ

Rmt_RegisterNotificationEndedRecordi

記録の実行終了を通知する。

ngLog

指定した再生ファイルを実行する。

Rmt_StartPlayingFile

再生ファイルの実行を終了する。

Rmt_EndPlayingFile

ロギング時、ロストの発生状態を通知する。

Rmt_RegisterNotificationLostStatus

Rmt_StartPlayingFile()、Rmt_EndPlayingFile()の応答として、

Rmt_RegisterNotificationEndedPlayingF

再生ファイルの実行終了を通知する。(PC による再生)ile

再生ファイルの再生位置を通知する。

Rmt_RegisterNotificationPlayingFilePro
gress

プロジェクトプロジェクト設定を本体に反映する

Rmt_LoadMasterSetting

指定のインターフェース設定ファイルを、CANTOOL 本体に反映する

Rmt_LoadMasterSetting2(28/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

カテゴリ

時間

説明

名称

本体へのプロジェクト設定完了を通知する。

Rmt_RegisterNotificationEndMasterSett(Rmt_LoadMasterSetting の完了通知)

ing

PC の時刻を CANTOOL 本体に設定する

Rmt_TimeSyncronizeRequest

Rmt_GetXXData で取得した時間(シリアル値)を

Rmt_GetDateTimeText

年 / 月/ 日 時 : 分 :秒. ミ リ秒 .マ イク ロ秒. ナノ 秒 (”YYYY/MM/DD
HH:MM:SS.mmm.uuu.n”)の形式に変換する。
アプリケーショ

既存アプリの各画面を起動する。

Rmt_StartAppFunction

ンコントロー

既存アプリの各画面を起動する。(オプション追加)

Rmt_StartAppFunction2ル

4.2 ライブラリインターフェース詳細「V016002-702_CANTOOL_A1_SDK-ReferenceManual-API」をご参照ください。

(29/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

(30/30)
Copyright (C) 2017 ITEC HANKYU HANSHIN CO., LTD. All Rights Reserved.

ライブラリインターフェース仕様(※)各エラーや定義、構造体については、RemoteDLLのヘッダーファイル(RemoteDLL.h)
種別
Connection

定義
Rmt_Start

概要
ユーザーアプリを
CANTOOL-PANELに接続する。
CANTOOL-PANEL未起動時には、CANTOOL-PANELを起動するを参照してください。

引数①DWORD size [I] プロジェクトファイルパスのサイズ(バイト)②char* project_path [I] プロジェクトファイ
ルパス(フルパス指定)③BOOL* Startup [O] CANTOOL-PANEL起動状態④(省略可)BOOL StartWithMainPanel [I]
CANTOOL-PANELメインパネル表示/非表示

設定可能範囲①最大255。
②・フルパス、UTF-8で指定する。フォルダ区切り文
字は「\\」。
・プロジェクトファイルパスのサイズが0で、プロ
ジェクトファイルパスがNULLの場合には、プロジェ
クトファイルの選択画面が表示された状態で
CANTOOL-PANELが起動する。
③TURE：起動済み,FALSE:未起動④・TRUE:メインパネル表示あり／FALSE：メインパ
ネル表示なし(Default:FALSE)

取得内容(戻り値)
RET_OK:正常、負数:エラー
エラーは[エラー一覧]シー
トを参照。

Rev. 01.06
最終更新日： 2022/08/31
説明・本APIによりCANTOOL-PANELにユーザーアプリを接続する。接続することでSDKのAPIが利用できるようになる。複数のユーザーアプリ(最大5個)を接続することが可能。
・引数③に実行時点のCANTOOL-PANELの起動状態(起動済み/未起動)を格納して返す。
・CANTOOL-PANEL未起動時は、「CANTOOL_PANEL_PATH」のシステム変数にて指定されているCANTOOL-PANELを起動し、PANEL起動成功が返る。
・CANTOOL-PANEL起動済時は、起動処理は行わな
い。
・CANTOOL-PANEL起動成功時は、引数①、②で指定したプロジェクトファイルが読み込まれる。起動済
時は、すでに読み込んでいるプロジェクトファイルを使用する。
・引数②で指定したパスが読み込めなければ処理失敗となる。
・引数④により、CANTOOL-PANEL表示/非表示を指定する。省略時は非表示で起動する。PANEL起動済時
は指定は無効となり、その時のCANTOOL-PANEL表示
状態を維持する。
・本APIコール後、CANTOOL-PANELの起動処理が実施されるため、次のAPIコールはインターバルを設けて実施すること。(推奨インターバル：5秒)

Rmt_End

ユーザーアプリを①(省略可)BOOL Shutdown[I] CANTOOLCANTOOL-PANELから切断 CANTOOL-PANEL終了 する/しないする。

①TRUE：終了する
FALSE：終了しない(Default:FALSE)

RET_OK:正常、負数:エラー
エラーは[エラー一覧]シー
トを参照。

・本APIによりCANTOOL-PANELからユーザーアプリを切断する。切断することでCANTOOL-PANELがユー
ザーアプリの情報を破棄する。
・引数①に「TRUE」を設定すると、CANTOOL-PANEL
自身が終了する。ただし、他に接続しているユー
ザーアプリがある場合は、終了しない。CANTOOLPANEL起動中に一度でも「TRUE」を指定すると、全ユーザーアプリが切断した際に終了する。
・引数①に「FALSE」を設定すると、全ユーザーア
プリが切断してもCANTOOL-PANELは終了しない。
・プロジェクト設定ファイルを読み直す場合は、
CANTOOL-PANELを終了させる必要がある。
・Rmt_End()を呼び出さずにユーザーアプリが終了した場合、一定時間経過後にCANTOOL-PANELから切断処理を行う。
・CANTOOL PANEL側で未保存のデータがある場合、確認ダイアログが表示され、CANTOOL-PANELは終了しない。
・本APIコール後、CANTOOL-PANELの終了処理が実施されるため、次のAPIコールはインターバルを設けて実施すること。(推奨インターバル：5秒)

StatusRmt_GetStatus

各種状態を取得する①DWORD size [I] 各種状態格納サイズ(バイト)②summary_t_rmt* status [O] ステータス(各種状態)①各種状態格納サイズは、「sizeof(summary_t_rmt)」を固定でセットすること。
②summary_t_rmt構造体のメモリを確保する。

RET_OK:正常
負数:エラー・summary_t_rmt構造体の情報を取得する。
構造体は、[summary_t_rmt構造体]定義を参照。
・状態変化については
Rmt_RegisterNotificationStatusChange()にコールバック関数を登録することで、状態変更時に登録したコールバック関数が通知される。

Rmt_SetLED

指定のLEDを制御する①int port [I] LED番号②int value [I] 色③int ledSts [I] 動作(点灯、点滅、消灯)①
LED_PORT_USER1
LED_PORT_USER2RET_OK:正常,負数:エラー

・指定したLED番号の色と動作を制御する。
・色と動作のどちらかを「消灯」とした場合、LEDは消灯状態となる。

エラーは[エラー一覧]シートを参照。

②
LED_COLOR_OFF
LED_COLOR_RED
LED_COLOR_GREEN
LED_COLOR_ORANGE

・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。

③
LED_STATUS_OFF
LED_STATUS_ON
LED_STATUS_BRINKControl

Rmt_GetBusList

対応する車載ネットワー ①DWORD size
[I] バス情報格納サイズ(バイクBus情報を取得する
ト)②bus_list_t_rmt* BusList [O] バス情報

①各種状態格納サイズは、「sizeof(bus_list_max_t_rmt)」を固定でセットすること。
②bus_list_max_t_rmt構造体のメモリを確保する。

int BusList件数(Node種別 ・BusListの領域は、bus_list_max_t_rmt構造体サ
件数分)
イズ分のメモリを確保すること。
エラーは[エラー一覧]シー
トを参照。

・Busリストからは、bus_list_t_rmt構造体の情報が取得できる。
・戻り値のBusList件数分、BusListに情報が格納される。
構造体は、[bus_list_t_rmt構造体]定義を参照。

Rmt_GetNodeList

各Busに設定されている ①WORD BusId[I] Bus ID
Node情報を取得する②DWORD size
[I] Node情報格納サイズ③node_list_t_rmt* NodeList [O] Node情報①
int NodeList件数
RMT_BUS_ID_CAN0
RMT_BUS_ID_CAN1
エラーは[エラー一覧]シー
RMT_BUS_ID_CAN2
トを参照。
RMT_BUS_ID_CAN3
RMT_BUS_ID_LIN②Node情報格納サイズは、「sizeof(node_list_max_t_rmt)」を固定でセットすること。
③node_list_t_rmt構造体のメモリを確保する。

・指定バスに登録されているノードのリストを返す。
・node_list_max_t_rmt構造体のメモリを確保すること。
・ノードリストからは、node_list_t_rmt構造体の情報が取得できる。
・戻り値のNodeList件数分、NodeListに情報が格納される。

Rmt_GetFrameList

各Nodeに設定されている ①WORD NodeId [I] Node ID
Frame情報を取得する②DWORD size
[I] Frame情報格納サイズ(バイト)③frame_list_t_rmt* FrameList [O] Frame情報[①がNODEID_UNDEFINEDの場合]②Frame情報格納サイズは、「sizeof(undefined_frame_list_max_t_rmt)」を固定でセットすること。
③undefined_frame_list_max_t_rmt構造体のメモリを確保する。

[①がNODEID_UNDEFINEDの場合]・指定ノードに登録されているフレームのリストを返す。
・undefined_frame_list_max_t_rmt構造体のメモリを確保すること。
・フレームリストからは、frame_list_t_rmt構造体の情報が取得できる。
・戻り値のFrameList件数分、FrameListに情報が格
納される。

int

FrameList件数

エラーは[エラー一覧]シー
トを参照。

[①がNODEID_UNDEFINED以外の場合]②Frame情報格納サイズは、「sizeof(defined_frame_list_max_t_rmt)」を固定でセットすること。
③defined_frame_list_max_t_rmt構造体のメモリを確保する。

構造体は、[node_list_t_rmt構造体]定義を参照。

[①がNODEID_UNDEFINED以外の場合]
・指定ノードに登録されているフレームのリストを返す。
・defined_frame_list_max_t_rmt構造体のメモリを確保すること。
・フレームリストからは、frame_list_t_rmt構造体の情報が取得できる。
・戻り値のFrameList件数分、FrameListに情報が格納される。
構造体は、[frame_list_t_rmt構造体]定義を参照。

Rmt_GetSignalList

各Frameに設定されてい ①WORD FrameId [I] Frame ID
るSignal情報を取得する ②DWORD size
[I] Signal情報格納サイズ(バイト)③signal_list_t_rmt* SignalList [O] Signal
情報①0～4999
int SignalList件数
内部管理IDのためRmt_GetFrameListで取得した値を使うこと。
エラーは[エラー一覧]シー②Signal情報格納サイズは、
トを参照。
「sizeof(signal_list_max_t_rmt)」を固定でセットすること。
③signal_list_max_t_rmt構造体のメモリを確保する。

・指定フレームに登録されているシグナルのリストを返す。
・signal_list_max_t_rmt構造体のメモリを確保すること。
・シグナルリストからは、signal_list_t_rmt構造体の情報が取得できる。
・戻り値のSignalList件数分、SignalListに情報が格納される。
構造体は、[signal_list_t_rmt構造体]定義を参照。

Rmt_GetBusConfigCan

CANの設定を取得する①WORD BusId [I] バスID
②DWORD size [I] CANのBus Config格納サイズ(バイト)③cfg_bus_can_t_rmt* BusConfigCan [O] CANのBus Config

Rmt_GetBusConfigAd

ADの設定を取得する①WORD BusId [I] バスID
②DWORD size [I] ADのBus Config格納サイズ(バイト)③cfg_bus_adc_t_rmt* BusConfigAd [O] ADのBus Config①
RET_OK:正常、負数:エラー
RMT_BUS_ID_CAN0
RMT_BUS_ID_CAN1
RMT_BUS_ID_CAN2
RMT_BUS_ID_CAN3②CANのBus Config格納サイズは、「sizeof(cfg_bus_can_t_rmt)」を固定でセットすること。
③cfg_bus_can_t_rmt構造体のメモリを確保する。
①
RET_OK:正常、負数:エラー
RMT_BUS_ID_AD0
RMT_BUS_ID_AD1②ADのBus Config格納サイズは、「sizeof(cfg_bus_adc_t_rmt)」を固定でセットすること。
③cfg_bus_adc_t_rmt構造体のメモリを確保する。

1 / 7 ページ・指定したバスID(0：CAN0、1：CAN1、2：CAN2、
3：CAN3)の設定の取得を行う。
・CANのBus Configは、[cfg_bus_can_t_rmt構造体]
定義を参照。

・指定したバスID(5：AD0、6：AD1)の設定の取得を行う。
・ADのBus Configは、[cfg_bus_adc_t_rmt構造体]
定義を参照。

Rmt_GetBusConfigDa

DAの設定を取得する

Rmt_GetBusConfigGpi

GPIの設定を取得する

Rmt_GetBusConfigGpo

GPOの設定を取得する

Rmt_GetNodeConfig

Nodeの名前や、関連する ①WORD NodeId [I] ノードID
Frameの設定を取得する ②DWORD size [I] ノード Config格納サイズ(バイト)③cfg_node_t_rmt* NodeConfig [O] ノード
ConfigFrameの設定を取得する ①WORD FrameId [I] フレームID②DWORD size [I] フレーム Config格納サイズ(バイト)③cfg_frame_t_rmt* FrameConfig [O] フレーム
Config

Rmt_GetFrameConfig

Rmt_GetSignalConfig①WORD BusId [I] バスID
②DWORD size [I] DAのBus Config格納サイズ(バイト)③cfg_bus_dac_t_rmt* BusConfigDa [O] DAのBus Config①
RET_OK:正常、負数:エラー
RMT_BUS_ID_DA0
RMT_BUS_ID_DA1②DAのBus Config格納サイズは、「sizeof(cfg_bus_dac_t_rmt)」を固定でセットすること。
③cfg_bus_dac_t_rmt構造体のメモリを確保する。
①WORD BusId [I] バスID①
RET_OK:正常、負数:エラー②DWORD size [I] GPIのBus Config格納サイズ RMT_BUS_ID_GPI(バイト)②GPIのBus Config格納サイズは、③cfg_bus_gpi_t_rmt* BusConfigGpi [O] GPIの 「sizeof(cfg_bus_gpi_t_rmt)」を固定でセットする
Bus Config
こと。
③cfg_bus_gpi_t_rmt構造体のメモリを確保する。

・指定したバスID(7：DA0、8：DA1)の設定の取得を行う。
・DAのBus Configは、[cfg_bus_dac_t_rmt構造体]
定義を参照。

①WORD BusId [I] バスID
②DWORD size [I] GPOのBus Config格納サイズ(バイト)③cfg_bus_gpo_t_rmt* BusConfigGpo [O] GPOのBus Config

・指定したバスID(10：GPO)の設定の取得を行う。
・GPOのBus Configは、[cfg_bus_gpo_t_rmt構造体]
定義を参照。

Signalの設定を取得する ①WORD SignalId [I] シグナルID②DWORD size [I] シグナルConfig格納サイズ(バイト)③cfg_signal_t_rmt* SignalConfig [O] シグナ
ルConfig

Rmt_ConvertSignalListFr Frameに割り当てられて ①WORD
FrameId[I] Frame ID
omFrameいるSignalのリストを取 ②DWORD FrameSize [I] 1Frameデータのサイズ
得する
(バイト)
③BYTE* FrameData [I] 1Frameのデータ④DWORD SignalSize [I] SignalDataの格納サイズ(バイト)⑤cfg_signal_data_t_rmt* SignalData [O]
Signalデータ①
RET_OK:正常、負数:エラー
RMT_BUS_ID_GPO②GPOのBus Config格納サイズは、「sizeof(cfg_bus_gpo_t_rmt)」を固定でセットすること。
③cfg_bus_gpo_t_rmt構造体のメモリを確保する。
RET_OK:正常、負数:エラー②ノード Config格納サイズは、「sizeof(cfg_node_t_rmt)」を固定でセットすること。
③cfg_node_t_rmt構造体のメモリを確保する。
①0～4999
RET_OK:正常、負数:エラー
内部管理IDのためRmt_GetFrameList or
Rmt_ConvertXID2FrameIDで取得した値を使うこと。
②フレーム Config格納サイズは、「sizeof(cfg_frame_t_rmt)」を固定でセットすること。
③cfg_frame_t_rmt構造体のメモリを確保する。
①0～29999
RET_OK:正常、負数:エラー
内部管理IDのためRmt_GetSignalList or
Rmt_ConvertXID2SignalIDで取得した値を使うこと。
②シグナルConfig格納サイズは、「sizeof(cfg_signal_t_rmt)」を固定でセットすること。
③cfg_signal_t_rmt構造体のメモリを確保する。
①0～4999
int SignalData件数
内部管理IDのためRmt_GetFrameList or
Rmt_ConvertXID2FrameIDで取得した値を使うこと。 エラーは[エラー一覧]シー④SignalDataサイズは、
トを参照。
「sizeof(cfg_signal_data_max_t_rmt)」を固定でセットすること。
⑤cfg_signal_data_t_rmt構造体のメモリを確保する。

・指定したバスID(9：GPI)の設定の取得を行う。
・GPIのBus Configは、[cfg_bus_gpi_t_rmt構造体]
定義を参照。

・指定したノードIDの設定の取得を行う。
・ノード Configは、[cfg_node_t_rmt構造体]定義を参照。
・指定したフレームIDの設定の取得を行う。
・フレーム Configは、[cfg_frame_t_rmt構造体]定義を参照。

・指定したシグナルIDの設定の取得を行う。
・シグナル Configは、[cfg_signal_t_rmt構造体]
定義を参照。

・SignalDataの領域は、
cfg_signal_data_max_t_rmt構造体サイズ分のメモリを確保すること。
・指定されたフレームのデータを登録されているシグナルデータに変換して返す。
・シグナルデータは、cfg_signal_data_t_rmt構造体の情報が取得できる。
・戻り値のSignalData件数分、SignalDataに情報が格納される。
構造体は、[cfg_signal_data_t_rmt構造体]定義を参照。

Rmt_ConvertXID2FrameID

BusIdとXIDからFrameID ①WORD BusId [I] バスID
を取得する
②BOOL SidOnly [I] 拡張ID使用有無③WORD Sid [I] 標準フォーマットのベースID
11ビット④DWORD Eid [I] 拡張フォーマットの拡張ID 18
ビット⑤WORD* FrameId [O] フレームID(フレームを一意に識別するID番号)①
RMT_BUS_ID_CAN0
RMT_BUS_ID_CAN1
RMT_BUS_ID_CAN2
RMT_BUS_ID_CAN3
RMT_BUS_ID_LIN②
TRUE：ベースIDのみ
FALSE：ベースID＋拡張ID③
CAN：0x00～0x7FF
LIN：0x00～0x3F④CAN:0x00～0x3FFFF⑤0～4999
Rmt_ConvertXID2SignalID BusIdとXIDと①WORD BusId [I] バスID①
SignalSymbolから②BOOL SidOnly [I] 拡張ID使用有無(TRUE：
RMT_BUS_ID_CAN0
SignalIDを取得する
ベースIDのみ、FALSE：ベースID＋拡張ID)
RMT_BUS_ID_CAN1③WORD Sid [I] 標準フォーマットのベースID
RMT_BUS_ID_CAN2
11ビット
RMT_BUS_ID_CAN3④DWORD Eid [I] 拡張フォーマットの拡張ID 18 RMT_BUS_ID_LIN
ビット②⑤char* SignalSymbol [I] シグナル名
TRUE：ベースIDのみ⑥WORD* SignalId [O] シグナルID(シグナルを FALSE：ベースID＋拡張ID
一意に識別するID番号)③
CAN：0x00～0x7FF
LIN：0x00～0x3F④CAN:0x00～0x3FFFF⑤1～63文字⑥0～29999
Rmt_SetUartSetting
本体のUARTの設定の変更 ①BOOL enable[I] UART有効/無効①FALSE:無効 TRUE:有効を行う②BYTE baudrate [I] ボーレート②③BYTE datalength [I] データ長
UART_SETTING_BR_4800④BYTE parity [I] パリティ
UART_SETTING_BR_9600⑤BYTE stopbit [I] ストップビット
UART_SETTING_BR_19200
UART_SETTING_BR_38400
UART_SETTING_BR_115200
UART_SETTING_BR_230400

RET_OK:正常、負数:エラー
エラーは[エラー一覧]シー
トを参照。

RET_OK:正常、負数:エラー
エラーは[エラー一覧]シー
トを参照。

RET_OK:正常、負数:エラー
エラーは[エラー一覧]シー
トを参照。

・指定されたバス情報に登録されたSid(標準フォー
マットのベースID 11ビット)とEid(拡張フォーマッ
トの拡張ID 18ビット)から、FrameId(フレームを一意に識別するID番号)を取得する。
・標準フォーマットのベースID 11ビットのみを指定する場合は、SidOnlyをTRUEで指定すること。
・標準フォーマットのベースIDと拡張IDの29ビットを指定する場合は、SidOnlyをFALSEで指定すること。
・本I/Fで取得したFrameIdを、ConvertSignalListFromFrame、SendFrameData、
GetFrameDataなどの引数に使用する。

・指定されたバス情報に登録されたSid(標準フォー
マットのベースID 11ビット)とEid(拡張フォーマッ
トの拡張ID 18ビット)とシグナル名称から、
SignalId(シグナルを一意に識別するID番号)を取得する。
・標準フォーマットのベースID 11ビットのみを指定する場合は、SidOnlyをTRUEで指定すること。
・標準フォーマットのベースIDと拡張IDの29ビットを指定する場合は、SidOnlyをFALSEで指定すること。
・本I/Fで取得したSignalIdを、SendSignalData、
GetSignalDataなどの引数に使用する。

・指定された値をUARTの設定に反映する。
・Rmt_RegisterNotificationGetUartDataにてコー
ルバック登録しておくと、UART有効設定から無効設
定するまでの間、受信したデータがコールバックに通知される。

③
UART_SETTING_LEN8
UART_SETTING_LEN7④
UART_SETTING_PAR_NONE
UART_SETTING_PAR_ODD
UART_SETTING_PAR_EVEN

Rmt_GetUartSetting⑤
UART_SETTING_STPB1
UART_SETTING_STPB2⑥UARTMSG_FREE_MAX

本体のUARTの設定を取得 ①BOOL *enable [O] 有効/無効する。
②BYTE *baudrate [O] ボーレート③BYTE *datalength [O] データ長
④BYTE *parity [O] パリティ
⑤BYTE *stopbit [O] ストップビット⑥BYTE *FreeMsgCnt [O] 空きメッセージ数

RET_OK:正常、負数:エラー
エラーは[エラー一覧]シー
トを参照。

Rmt_GetFrameSize

指定したフレームIDの ①WORD FrameId [I] フレームID①0～4999
データサイズ(バイト)を ②DWORD *size [O] フレームのデータサイズ(バ 内部管理IDのためRmt_GetFrameList or
取得する。
イト)
Rmt_ConvertXID2FrameIDで取得した値を使うこと。

Rmt_GetSignalSize

指定したシグナルIDの ①WORD SignalId [I] シグナルID①0～29999
データサイズ(バイト)を ②DWORD *size [O] シグナルのデータサイズ(バ 内部管理IDのためRmt_GetSignalList or
取得する。
イト)
Rmt_ConvertXID2SignalIDで取得した値を使うこと。

Rmt_DynamicPeriodicFram 定周期送信Frameの有効 ①BOOL on_off [I] Flame有効の有無
eControl
無効を動的に切り替えす ②WORD BusId [I] バスIDる。
③BOOL SidOnly [I] 拡張ID使用有無(TRUE：
ベースIDのみ、FALSE：ベースID＋拡張ID)④WORD Sid [I] 標準フォーマットのベースID
11ビット⑤DWORD Eid [I] 拡張フォーマットの拡張ID 18
ビット①TRUE：有効/FALSE：無効②RMT_BUS_ID_CAN0
RMT_BUS_ID_CAN1
RMT_BUS_ID_CAN2
RMT_BUS_ID_CAN3③TRUE：ベースIDのみ
FALSE：ベースID＋拡張ID④0x00～0x7FF⑤0x00～0x3FFFF

2 / 7 ページ・現在のUARTの設定内容を返信する。
・UART有効時(SetUartSettingでenableに有効設定
している場合)のみ使用可能。
・FreeMsgCntは連続実施可能なメッセージ数を示す。
Rmt_SendUartDataを連続して実施する場合は、本変数で可能な件数をチェックし、空きができるまで待機して実施すること。
(FreeMsgCntの最大件数はUARTMSG_FREE_MAX)
・指定したフレームIDのデータサイズ(バイト)を取得する。
・指定したシグナルIDのデータサイズ(バイト)を取得する。

RET_OK:正常、負数:エラー
エラーは[エラー一覧]シー
トを参照。

本APIの制御対象Frameは事前にCANTOOL_PANELのFrame/Signal設定で設定し、CANTOOL A1に反映すること。
引数①をTRUEにした場合、事前に反映した設定どおり定周期送信される。FALSEに設定した場合、対象のFrameの定周期送信が停止される。
制御対象Frameの情報を引数②～⑤で指定すること。
・SidとEidに範囲外の値が設定された場合の動作は保障外。

DataSend

Rmt_SendFrameData

Rmt_SendSignalData

指定Frameのデータを送 ①WORD FrameId [I] フレームID
信する(周期送信の値も ②DWORD size [I] 送信データサイズ(バイト)更新される)③BYTE* data [I] 送信データ①0～4999
内部管理IDのためRmt_GetFrameList or
Rmt_ConvertXID2FrameIDで取得した値を使うこと。
②0～255③②のサイズ分のメモリを確保する。

指定Signalのデータを送 ①WORD SignalId [I] シグナルID
信する(周期送信の値も ②DWORD size [I] 送信データサイズ(バイト)更新される)③BYTE* data [I] 送信データ

RET_OK:正常、負数:エラー
エラーは[エラー一覧]シー
トを参照。

①0～29999
RET_OK:正常、負数:エラー
内部管理IDのためRmt_GetSignalList or
Rmt_ConvertXID2SignalIDで取得した値を使うこと。 エラーは[エラー一覧]シー②0～255トを参照。
③②のサイズ分のメモリを確保する。

・指定されたFrameIDでデータを送信する。周期送
信の値に反映される。
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。
・指定されたSignalIDでデータを送信する。周期送
信の値に反映される。
・送信データへのデータ格納について下詰めでStart位置に上から送信データに格納される(例)Width：9の場合
上 data[0] bit7～bit1:未使用
data[0] bit0→sig data0(Start位置)
data[1] bit7→sig data1
data[1] bit6→sig data2
data[1] bit5→sig data3
data[1] bit4→sig data4
data[1] bit3→sig data5
data[1] bit2→sig data6
data[1] bit1→sig data7
下 data[1] bit0→sig data8
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。

Rmt_SendDaData

指定ポートのDAの値を変 ①BYTE PortNum [I] DAポート番号
更する②DWORD value [I] 値①
DA_CHANNEL_0
DA_CHANNEL_1

RET_OK:正常、負数:エラー
エラーは[エラー一覧]シー
トを参照。

・指定されたポートのDAの値を変更する。
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。

②値 = ( 0.0000～5.0000(V) ) * 10000
Rmt_SendGpoData

指定ポートのGPOの値を ①BYTE PortNum [I] GPOポート番号
変更する②BYTE value [I] 値①
GPIO_CHANNEL_0
GPIO_CHANNEL_1
GPIO_CHANNEL_2
GPIO_CHANNEL_3

RET_OK:正常、負数:エラー
エラーは[エラー一覧]シー
トを参照。

・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。

②
GPIO_BIT_VALUE_LOW
GPIO_BIT_VALUE_HIGH
Rmt_SendUartData

UARTへのデータを送信す ①DWORD size [I] 送信データサイズ(バイト)る②BYTE* data [I] 送信データ①最大データ長：UARTDATA_SEND_SIZE_MAX②①のサイズ分のメモリを確保

RET_OK:正常、負数:エラー
エラーは[エラー一覧]シー
トを参照。

Rmt_SendAnyCANFrame

Rmt_SendCyclicData

Rmt_SendCyclicData2

任意のCAN Frameデータ ①WORD BusId [I] バスIDを送信する
②BOOL SidOnly [I] 拡張ID使用有無(TRUE：
ベースIDのみ、FALSE：ベースID＋拡張ID)③WORD Sid [I] 標準フォーマットのベースID
11ビット④DWORD Eid [I] 拡張フォーマットの拡張ID 18
ビット⑤BOOL isCANFD [I] CAN-FDフラグ(1：CAN-FD、
0：CAN)⑥BOOL BitRateSwitch [I] 転送速度高速化(1：有効、0：無効)⑦DWORD DataLength [I] 送信データサイズ(バイト)⑧BYTE* Data [I] 送信データ①
RMT_BUS_ID_CAN0
RMT_BUS_ID_CAN1
RMT_BUS_ID_CAN2
RMT_BUS_ID_CAN3
RMT_BUS_ID_LIN②
TRUE：ベースIDのみ
FALSE：ベースID＋拡張ID③0x00～0x7FF④0x00～0x3FFFF⑤
TRUE：CAN-FD
FALSE：CAN⑥
TRUE：有効FALSE：無効
引数⑤がCAN-FDの場合のみ有効⑦
1～64Byte⑧「⑦」で指定してデータ領域を設定

RET_OK:正常、負数:エラー

送信データをFrameサイ ①BOOL enable CycleData送信有効/無効
ズに分割し、指定周期で ②WORD cycle 周期時間(ms)送信を行う。
③WORD BusId [I] バスID
④BOOL SidOnly [I] 拡張ID使用有無(TRUE：
ベースIDのみ、FALSE：ベースID＋拡張ID)⑤WORD Sid [I] 標準フォーマットのベースID
11ビット⑥DWORD Eid [I] 拡張フォーマットの拡張ID 18
ビット⑦BOOL isCANFD [I] CAN-FDフラグ(1：CAN-FD、
0：CAN)⑧BOOL BitRateSwitch [I] 転送速度高速化(1：有効、0：無効)⑨DWORD DataLength [I] 送信データサイズ(バイト)⑩BYTE* Data [I] 送信データ①
TRUE：CycleData送信を行う。
FALSE：CycleData送信を停止する。
②
0～10000(ms)③
RMT_BUS_ID_CAN0
RMT_BUS_ID_CAN1
RMT_BUS_ID_CAN2
RMT_BUS_ID_CAN3④
TRUE：ベースIDのみ
FALSE：ベースID＋拡張ID⑤0x00～0x7FF⑥0x00～0x3FFFF⑦
TRUE：CAN-FD
FALSE：CAN⑧
TRUE：有効FALSE：無効
引数⑦がCAN-FDの場合のみ有効⑨
0～1024Byte⑩「⑨」で指定したデータ領域を設定

RET_OK:正常、負数:エラー

送信データをFrameサイ ①BYTE number CycleData番号
ズに分割し、指定周期で ②BOOL enable CycleData送信有効/無効
送信を行う。
③WORD cycle 周期時間(ms)④WORD BusId [I] バスID
⑤BOOL SidOnly [I] 拡張ID使用有無(TRUE：
ベースIDのみ、FALSE：ベースID＋拡張ID)⑥WORD Sid [I] 標準フォーマットのベースID
11ビット⑦DWORD Eid [I] 拡張フォーマットの拡張ID 18
ビット⑧BOOL isCANFD [I] CAN-FDフラグ(1：CAN-FD、
0：CAN)⑨BOOL BitRateSwitch [I] 転送速度高速化(1：有効、0：無効)⑩DWORD DataLength [I] 送信データサイズ(バイト)⑪BYTE* Data [I] 送信データ①0～39
0xFFを設定した場合は登録されている送信がすべて停止する(enable=FALSE)②
TRUE：CycleData送信を行う。
FALSE：CycleData送信を停止する。
③
0～10000(ms)④
RMT_BUS_ID_CAN0
RMT_BUS_ID_CAN1
RMT_BUS_ID_CAN2
RMT_BUS_ID_CAN3⑤
TRUE：ベースIDのみ
FALSE：ベースID＋拡張ID⑥0x00～0x7FF⑦0x00～0x3FFFF⑧
TRUE：CAN-FD
FALSE：CAN⑨
TRUE：有効FALSE：無効
引数⑧がCAN-FDの場合のみ有効⑩
0～1024Byte⑪「⑩」で指定したデータ領域を設定

RET_OK:正常、負数:エラー

3 / 7 ページ・指定されたポートのGPOの値を変更する。
・値は、GPIO_BIT_VALUE_LOW,GPIO_BIT_VALUE_HIGHを設定すること。

エラーは[エラー一覧]シー
トを参照。

エラーは[エラー一覧]シー
トを参照。

エラーは[エラー一覧]シー
トを参照。

・送信データをUARTに送信する。
・送信データの最大データ長は
UARTDATA_SEND_SIZE_MAX(単位：Bytes)
・UART有効時(SetUartSettingでenableに有効設定
している場合)のみ使用可能。
・連続送信(本APIの連続実施)を行う場合は、
Rmt_GetUartSettingにてFreeMsgCntを取得し格納されてい件数分までを連続実施可能とする。
(FreeMsgCntの最大件数はUARTMSG_FREE_MAX)
不足している場合は、空きができるまで待機して実施すること。
・指定されたバスにFrameデータを送信する。
単発送信とし周期送信のFrameであっても周期送信データには反映されない。
(周期送信データを更新する場合は、
Rmt_SendFrameData/Rmt_SendSignalDataを使用してください)
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。

・指定されたバス、CAN ID等の設定及び、その周期送信の有効/無効を制御する。
・引数の情報はCANTOOL本体に保存され、次回のCANTOOL本体起動時も設定に従った動作を行う。
・設定したデータはFrameサイズに分割され、設定した周期で順番に送信される。
・データの最終まで送信すると、再びデータの先頭から送信を行う。
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。
・本APIはRmt_SendCyclicData2()のnumber=0を使用する。
・分割してデータ送信している途中で設定をしなおした場合、更新したデータの途中から継続してフレーム送信される。(何分割目か考慮せず上書きする)

・指定されたCycleData番号毎に、指定されたバス、CAN ID等の設定及び、その周期送信の有効/無効を制御する。
・引数の情報はCANTOOL本体に保存され、次回のCANTOOL本体起動時も設定に従った動作を行う。
・設定したデータはFrameサイズに分割され、設定した周期で順番に送信される。
・データの最終まで送信すると、再びデータの先頭から送信を行う。
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。
・分割してデータ送信している途中で設定をしなおした場合、更新したデータの途中から継続してフレーム送信される。(何分割目か考慮せず上書きす
る)Rmt_SendMultiPacketData MultiPacketデータを送 ①BYTE fs [I] FS値信する②BYTE bs [I] BS値③BYTE STmin [I] 最低送信間隔④WORD timeout [I] タイムアウト時間⑤WORD BusId [I] バスID
⑥BOOL SidOnly [I] 拡張ID使用有無(TRUE：
ベースIDのみ、FALSE：ベースID＋拡張ID)⑦WORD Sid [I] 標準フォーマットのベースID
11ビット⑧DWORD Eid [I] 拡張フォーマットの拡張ID 18
ビット⑨BOOL isCANFD [I] CAN-FDフラグ(1：CAN-FD、
0：CAN)⑩BOOL BitRateSwitch [I] 転送速度高速化(1：有効、0：無効)⑪WORD RecvBusId [I] バスID
⑫BOOL RecvSidOnly [I] 拡張ID使用有無(TRUE：ベースIDのみ、FALSE：ベースID＋拡張
ID)⑬WORD RecvSid [I] 標準フォーマットのベース
ID 11ビット
⑭DWORD RecvEid [I] 拡張フォーマットの拡張
ID 18ビット⑮BOOL RecvIsCANFD [I] CAN-FDフラグ(1：CANFD、0：CAN)⑯BOOL RecvBitRateSwitch [I] 転送速度高速化(1：有効、0：無効)⑰DWORD DataLength [I] 送信データサイズ(バイト)⑱BYTE* Data [I] 送信データ①FS値 MULTI_PACKET_FS_CONTINUOUS_RECEIVE：連続受信可、MULTI_PACKET_FS_WAIT:待機、
MULTI_PACKET_FS_OVERFLOW:Overflow②0～FF 0：全て受信可③0～FF(ms)④0～10000(ms)⑤RMT_BUS_ID_CAN0
RMT_BUS_ID_CAN1
RMT_BUS_ID_CAN2
RMT_BUS_ID_CAN3⑥TRUE：ベースIDのみ
FALSE：ベースID＋拡張ID⑦0x00～0x7FF⑧0x00～0x3FFFF⑨TRUE：CAN-FD / FALSE：CAN⑩TRUE：有効 / FALSE：無効
引数⑨がCAN-FDの場合のみ有効⑪RMT_BUS_ID_CAN0
RMT_BUS_ID_CAN1
RMT_BUS_ID_CAN2
RMT_BUS_ID_CAN3⑫TRUE：ベースIDのみ
FALSE：ベースID＋拡張ID⑬0x00～0x7FF⑭0x00～0x3FFFF⑮TRUE：CAN-FD / FALSE：CAN⑯TRUE：有効 / FALSE：無効
引数⑮がCAN-FDの場合のみ有効⑰1～4095Byte⑱「⑰」で指定したデータ領域を設定

RET_OK:正常、負数:エラー

Rmt_SendMultiPacketData MultiPacketデータを送 ①BYTE fs [I] FS値
2
信する②BYTE bs [I] BS値③BYTE STmin [I] 最低送信間隔④WORD timeout [I] タイムアウト時間⑤WORD BusId [I] バスID
⑥BOOL SidOnly [I] 拡張ID使用有無(TRUE：
ベースIDのみ、FALSE：ベースID＋拡張ID)⑦WORD Sid [I] 標準フォーマットのベースID
11ビット⑧DWORD Eid [I] 拡張フォーマットの拡張ID 18
ビット⑨BOOL isCANFD [I] CAN-FDフラグ(1：CAN-FD、
0：CAN)⑩BOOL BitRateSwitch [I] 転送速度高速化(1：有効、0：無効)⑪WORD RecvBusId [I] バスID
⑫BOOL RecvSidOnly [I] 拡張ID使用有無(TRUE：ベースIDのみ、FALSE：ベースID＋拡張
ID)⑬WORD RecvSid [I] 標準フォーマットのベース
ID 11ビット
⑭DWORD RecvEid [I] 拡張フォーマットの拡張
ID 18ビット⑮BOOL RecvIsCANFD [I] CAN-FDフラグ(1：CANFD、0：CAN)⑯BOOL RecvBitRateSwitch [I] 転送速度高速化(1：有効、0：無効)⑰DWORD DataLength [I] 送信データサイズ(バイト)⑱BYTE* Data [I] 送信データ⑲WORD AddressFormatType [I]⑳BYTE N_TA

①FS値
MULTI_PACKET_FS_CONTINUOUS_RECEIVE：連続受信
可、MULTI_PACKET_FS_WAIT:待機、
MULTI_PACKET_FS_OVERFLOW:Overflow②0～FF
MULTI_PACKET_BS_ALL_RECEIVE_POSSIBLE：全て受信可③0～FF(ms)④0～10000(ms)⑤RMT_BUS_ID_CAN0
RMT_BUS_ID_CAN1
RMT_BUS_ID_CAN2
RMT_BUS_ID_CAN3⑥TRUE：ベースIDのみ
FALSE：ベースID＋拡張ID⑦0x00～0x7FF⑧0x00～0x3FFFF⑨TRUE：CAN-FD / FALSE：CAN⑩TRUE：有効 / FALSE：無効
引数⑨がCAN-FDの場合のみ有効⑪RMT_BUS_ID_CAN0
RMT_BUS_ID_CAN1
RMT_BUS_ID_CAN2
RMT_BUS_ID_CAN3⑫TRUE：ベースIDのみ
FALSE：ベースID＋拡張ID⑬0x00～0x7FF⑭0x00～0x3FFFF⑮TRUE：CAN-FD / FALSE：CAN⑯TRUE：有効 / FALSE：無効
引数⑮がCAN-FDの場合のみ有効⑰1～4095Byte⑱「⑰」で指定したデータ領域を設定⑲MULTI_PACKET_ADDRESS_FORMAT_TYPE_NORMAL：
NormalMULTI_PACKET_ADDRESS_FORMAT_TYPE_EXTENDED：
extended⑳0x00～0xFF①FS値
MULTI_PACKET_FS_CONTINUOUS_RECEIVE：連続受信
可、MULTI_PACKET_FS_WAIT:待機、
MULTI_PACKET_FS_OVERFLOW:Overflow②0～FF
MULTI_PACKET_BS_ALL_RECEIVE_POSSIBLE：全て受信可③0～FF(ms)④0～10000(ms)⑤RMT_BUS_ID_CAN0
RMT_BUS_ID_CAN1
RMT_BUS_ID_CAN2
RMT_BUS_ID_CAN3⑥TRUE：ベースIDのみ
FALSE：ベースID＋拡張ID⑦0x00～0x7FF⑧0x00～0x3FFFF⑨TRUE：CAN-FD / FALSE：CAN⑩TRUE：有効 / FALSE：無効
引数⑨がCAN-FDの場合のみ有効⑪RMT_BUS_ID_CAN0
RMT_BUS_ID_CAN1
RMT_BUS_ID_CAN2
RMT_BUS_ID_CAN3⑫TRUE：ベースIDのみ
FALSE：ベースID＋拡張ID⑬0x00～0x7FF⑭0x00～0x3FFFF⑮TRUE：CAN-FD / FALSE：CAN⑯TRUE：有効 / FALSE：無効
引数⑮がCAN-FDの場合のみ有効⑰1～4095Byte。0の場合は応答データの送信を行わない。他の動作は同じ。
⑱「⑰」で指定したデータ領域を設定⑲MULTI_PACKET_ADDRESS_FORMAT_TYPE_NORMAL：
NormalMULTI_PACKET_ADDRESS_FORMAT_TYPE_EXTENDED：
extended⑳0x00～0xFF㉑0x00～0xFF

RET_OK:正常、負数:エラー①FS値
MULTI_PACKET_FS_CONTINUOUS_RECEIVE：連続受信
可、MULTI_PACKET_FS_WAIT:待機、
MULTI_PACKET_FS_OVERFLOW:Overflow②0～FF
MULTI_PACKET_BS_ALL_RECEIVE_POSSIBLE：全て受信可③0～FF(ms)④0～10000(ms)⑤RMT_BUS_ID_CAN0
RMT_BUS_ID_CAN1
RMT_BUS_ID_CAN2
RMT_BUS_ID_CAN3⑥TRUE：ベースIDのみ
FALSE：ベースID＋拡張ID⑦0x00～0x7FF⑧0x00～0x3FFFF⑨TRUE：CAN-FD / FALSE：CAN⑩TRUE：有効 / FALSE：無効
引数⑨がCAN-FDの場合のみ有効⑪RMT_BUS_ID_CAN0
RMT_BUS_ID_CAN1
RMT_BUS_ID_CAN2
RMT_BUS_ID_CAN3⑫TRUE：ベースIDのみ
FALSE：ベースID＋拡張ID⑬0x00～0x7FF⑭0x00～0x3FFFF⑮TRUE：CAN-FD / FALSE：CAN⑯TRUE：有効 / FALSE：無効
引数⑮がCAN-FDの場合のみ有効⑰1～4095Byte。0の場合は応答データの送信を行わない。他の動作は同じ。
⑱「⑰」で指定したデータ領域を設定⑲MULTI_PACKET_ADDRESS_FORMAT_TYPE_NORMAL：
NormalMULTI_PACKET_ADDRESS_FORMAT_TYPE_EXTENDED：
extended⑳0x00～0xFF

RET_OK:正常、負数:エラー

Rmt_SendMultiPacketData MultiPacketデータを送 ①BYTE fs [I] FS値
3
信する②BYTE bs [I] BS値③BYTE STmin [I] 最低送信間隔④WORD timeout [I] タイムアウト時間⑤WORD BusId [I] バスID
⑥BOOL SidOnly [I] 拡張ID使用有無(TRUE：
ベースIDのみ、FALSE：ベースID＋拡張ID)⑦WORD Sid [I] 標準フォーマットのベースID
11ビット⑧DWORD Eid [I] 拡張フォーマットの拡張ID 18
ビット⑨BOOL isCANFD [I] CAN-FDフラグ(1：CAN-FD、
0：CAN)⑩BOOL BitRateSwitch [I] 転送速度高速化(1：有効、0：無効)⑪WORD RecvBusId [I] バスID
⑫BOOL RecvSidOnly [I] 拡張ID使用有無(TRUE：ベースIDのみ、FALSE：ベースID＋拡張
ID)⑬WORD RecvSid [I] 標準フォーマットのベース
ID 11ビット
⑭DWORD RecvEid [I] 拡張フォーマットの拡張
ID 18ビット⑮BOOL RecvIsCANFD [I] CAN-FDフラグ(1：CANFD、0：CAN)⑯BOOL RecvBitRateSwitch [I] 転送速度高速化(1：有効、0：無効)⑰DWORD DataLength [I] 送信データサイズ(バイト)⑱BYTE* Data [I] 送信データ⑲WORD AddressFormatType [I] Addressing
format⑳BYTE N_TA [I] Network Target Address㉑BYTE PADING [I] CAN Frameデータの空欄(データを詰めた余り)部分に格納する値

Rmt_ResponseMultiPacket MultiPacketへの応答内 ①BYTE fs [I] FS値
Data
容設定②BYTE bs [I] BS値③BYTE STmin [I] 最低送信間隔④WORD timeout [I] タイムアウト時間⑤WORD BusId [I] バスID
⑥BOOL SidOnly [I] 拡張ID使用有無(TRUE：
ベースIDのみ、FALSE：ベースID＋拡張ID)⑦WORD Sid [I] 標準フォーマットのベースID
11ビット⑧DWORD Eid [I] 拡張フォーマットの拡張ID 18
ビット⑨BOOL isCANFD [I] CAN-FDフラグ(1：CAN-FD、
0：CAN)⑩BOOL BitRateSwitch [I] 転送速度高速化(1：有効、0：無効)⑪WORD RecvBusId [I] バスID
⑫BOOL RecvSidOnly [I] 拡張ID使用有無(TRUE：ベースIDのみ、FALSE：ベースID＋拡張
ID)⑬WORD RecvSid [I] 標準フォーマットのベース
ID 11ビット
⑭DWORD RecvEid [I] 拡張フォーマットの拡張
ID 18ビット⑮BOOL RecvIsCANFD [I] CAN-FDフラグ(1：CANFD、0：CAN)⑯BOOL RecvBitRateSwitch [I] 転送速度高速化(1：有効、0：無効)⑰DWORD DataLength [I] 送信データサイズ(バイト)⑱BYTE* Data [I] 送信データ⑲WORD AddressFormatType [I] xxx⑳BYTE N_TA [I] xxx

4 / 7 ページ

エラーは[エラー一覧]シー
トを参照。

・本APIで送受信ポートの情報を設定する。設定しなければRmt_GetMultiPacketStatus()での情報取得はできない。
・4095Byteより大きい送受信データサイズでの動作は保証しない。
・マルチパケットのシーケンス完了前に本APIをコールした場合の動作は保証しない。
・引数①の値ごとの挙動は以下となる。
0:正常ケースであり、APIの動作を継続する。
1:待機状態であることをFCにて送信する。その1秒後に「連続受信可」でFCを送信する。以降は通常のAPIの動作を継続する。
2:相受信に失敗したことをFCにて送信する。本来、TP上はマルチパケット送受信処理は終了する
が、APIとしてはデータを受信できる状態でタイムアウトまで待つ。
・引数①②③は対象へFCパケットで通知する値であり、FC情報は相手から受け取った情報に従う。
・複数コネクションには対応せず、本APIコール毎に情報は上書きされる。
・⑤～⑩の情報で⑰～⑱のデータをTP送信し、その後⑪～⑯の情報に一致するデータを待ちTP受信する。
●想定利用方法
・Rmt_SendMultiPacketData()で送受信情報を設定し、データを送信する。
・Rmt_GetMultiPacketStatus()で100ms程度の間隔でポーリングして受信したデータを取得する。
・Rmt_GetMultiPacketStatus()で送受信の失敗やターゲットの応答タイムアウトを取得する。

エラーは[エラー一覧]シー
トを参照。

Rmt_SendMultiPacketData()にAddressFormatTypeと
N_TAの引数を追加したもの。
・本APIで送受信ポートの情報を設定する。設定しなければRmt_GetMultiPacketStatus()での情報取得はできない。
・4095Byteより大きい送受信データサイズでの動作は保証しない。
・マルチパケットのシーケンス完了前に本APIをコールした場合の動作は保証しない。
・引数①の値ごとの挙動は以下となる。
0:正常ケースであり、APIの動作を継続する。
1:待機状態であることをFCにて送信する。その1秒後に「連続受信可」でFCを送信する。以降は通常のAPIの動作を継続する。
2:相受信に失敗したことをFCにて送信する。本来、TP上はマルチパケット送受信処理は終了する
が、APIとしてはデータを受信できる状態でタイムアウトまで待つ。
・引数①②③は対象へFCパケットで通知する値であり、FC情報は相手から受け取った情報に従う。
・複数コネクションには対応せず、本APIコール毎に情報は上書きされる。
・⑤～⑩の情報で⑰～⑳のデータをTP送信し、その後⑪～⑯の情報に一致するデータを待ちTP受信する。
●想定利用方法
・Rmt_SendMultiPacketData()で送受信情報を設定し、データを送信する。
・Rmt_GetMultiPacketStatus()で100ms程度の間隔でポーリングして受信したデータを取得する。
・Rmt_GetMultiPacketStatus()で送受信の失敗やターゲットの応答タイムアウトを取得する。

RET_OK:正常、負数:エラー

Rmt_SendMultiPacketData2()に㉑を追加したもの。

エラーは[エラー一覧]シー
トを参照。

・本APIで送受信ポートの情報を設定する。設定しなければRmt_GetMultiPacketStatus()での情報取得はできない。
・4095Byteより大きい送受信データサイズでの動作は保証しない。
・マルチパケットのシーケンス完了前に本APIをコールした場合の動作は保証しない。
・引数①の値ごとの挙動は以下となる。
0:正常ケースであり、APIの動作を継続する。
1:待機状態であることをFCにて送信する。その1秒後に「連続受信可」でFCを送信する。以降は通常のAPIの動作を継続する。
2:相受信に失敗したことをFCにて送信する。本来、TP上はマルチパケット送受信処理は終了する
が、APIとしてはデータを受信できる状態でタイムアウトまで待つ。
・引数①②③は対象へFCパケットで通知する値であり、FC情報は相手から受け取った情報に従う。
・複数コネクションには対応せず、本APIコール毎に情報は上書きされる。
・⑤～⑩の情報で⑰～㉑のデータをTP送信し、その後⑪～⑯の情報に一致するデータを待ちTP受信する。
●想定利用方法
・Rmt_SendMultiPacketData()で送受信情報を設定し、データを送信する。
・Rmt_GetMultiPacketStatus()で100ms程度の間隔でポーリングして受信したデータを取得する。
・Rmt_GetMultiPacketStatus()で送受信の失敗やターゲットの応答タイムアウトを取得する。

エラーは[エラー一覧]シー
トを参照。

・本APIでマルチパケットへの応答内容を設定する。
・4095Byteより大きい送受信データサイズでの動作は保証しない。
・マルチパケットのシーケンス完了前に本APIをコールした場合の動作は保証しない。
・引数①の値ごとの挙動は以下となる。
0:正常ケースであり、APIの動作を継続する。
1:待機状態であることをFCにて送信する。その1秒後に「連続受信可」でFCを送信する。以降は通常のAPIの動作を継続する。
2:相受信に失敗したことをFCにて送信する。本来、TP上はマルチパケット送受信処理は終了する
が、APIとしてはデータを受信できる状態でタイムアウトまで待つ。
・引数①②③は対象へFCパケットで通知する値であり、FC情報は相手から受け取った情報に従う。
・複数コネクションには対応せず、本APIコール毎に情報は上書きされる。
・⑪～⑯の情報に一致するデータをTP受信し、その後⑤～⑩の情報で⑰～⑳のデータをTP送信する。
●想定利用方法
・Rmt_SendMultiPacketData()で送受信情報を設定する。
・ターゲットの機器から受信情報従ったデータを受
信データを保持し、設定された送信データを送信する。
・Rmt_GetResponseMultiPacketDataStatus()で100ms程度の間隔でポーリングして受信したデータを取得する。
・Rmt_GetResponseMultiPacketDataStatus()で送受信の失敗やターゲットの応答タイムアウトを取得する。

Rmt_ResponseMultiPacket MultiPacketへの応答内 ①BYTE fs [I] FS値
Data3
容設定
②BYTE bs [I] BS値③BYTE STmin [I] 最低送信間隔④WORD timeout [I] タイムアウト時間⑤WORD BusId [I] バスID
⑥BOOL SidOnly [I] 拡張ID使用有無(TRUE：
ベースIDのみ、FALSE：ベースID＋拡張ID)⑦WORD Sid [I] 標準フォーマットのベースID
11ビット⑧DWORD Eid [I] 拡張フォーマットの拡張ID 18
ビット⑨BOOL isCANFD [I] CAN-FDフラグ(1：CAN-FD、
0：CAN)⑩BOOL BitRateSwitch [I] 転送速度高速化(1：有効、0：無効)⑪WORD RecvBusId [I] バスID
⑫BOOL RecvSidOnly [I] 拡張ID使用有無(TRUE：ベースIDのみ、FALSE：ベースID＋拡張
ID)⑬WORD RecvSid [I] 標準フォーマットのベース
ID 11ビット
⑭DWORD RecvEid [I] 拡張フォーマットの拡張
ID 18ビット⑮BOOL RecvIsCANFD [I] CAN-FDフラグ(1：CANFD、0：CAN)⑯BOOL RecvBitRateSwitch [I] 転送速度高速化(1：有効、0：無効)⑰DWORD DataLength [I] 送信データサイズ(バイト)⑱BYTE* Data [I] 送信データ⑲WORD AddressFormatType [I] Addressing
format⑳BYTE N_TA [I] Network Target Address㉑BYTE PADING [I] CAN Frameデータの空欄(データを詰めた余り)部分に格納する値

DataRecieve

Rmt_GetFrameData

Rmt_GetSignalData

Rmt_GetAdData①FS値
MULTI_PACKET_FS_CONTINUOUS_RECEIVE：連続受信
可、MULTI_PACKET_FS_WAIT:待機、
MULTI_PACKET_FS_OVERFLOW:Overflow②0～FF
MULTI_PACKET_BS_ALL_RECEIVE_POSSIBLE：全て受信可③0～FF(ms)④0～10000(ms)⑤RMT_BUS_ID_CAN0
RMT_BUS_ID_CAN1
RMT_BUS_ID_CAN2
RMT_BUS_ID_CAN3⑥TRUE：ベースIDのみ
FALSE：ベースID＋拡張ID⑦0x00～0x7FF⑧0x00～0x3FFFF⑨TRUE：CAN-FD / FALSE：CAN⑩TRUE：有効 / FALSE：無効
引数⑨がCAN-FDの場合のみ有効⑪RMT_BUS_ID_CAN0
RMT_BUS_ID_CAN1
RMT_BUS_ID_CAN2
RMT_BUS_ID_CAN3⑫TRUE：ベースIDのみ
FALSE：ベースID＋拡張ID⑬0x00～0x7FF⑭0x00～0x3FFFF⑮TRUE：CAN-FD / FALSE：CAN⑯TRUE：有効 / FALSE：無効
引数⑮がCAN-FDの場合のみ有効⑰1～4095Byte。0の場合は応答データの送信を行わない。他の動作は同じ。
⑱「⑰」で指定したデータ領域を設定⑲MULTI_PACKET_ADDRESS_FORMAT_TYPE_NORMAL：
NormalMULTI_PACKET_ADDRESS_FORMAT_TYPE_EXTENDED：
extended⑳0x00～0xFF㉑0x00～0xFF

RET_OK:正常、負数:エラー

指定Frameの最新データ ①WORD FrameId [I] フレームID①0～4999を取得する②DWORD size [I] 受信フレームデータサイズ
内部管理IDのためRmt_GetFrameList or(バイト)
Rmt_ConvertXID2FrameIDで取得した値を使うこと。
③BYTE* data [O] 受信フレームデータ④ULONGLONG* Time [O] 最終更新時タイムスタンプ((単位：100ns 1601-01-01 00:00:00を基準とした経過時間))

RET_OK:正常、負数:エラー

エラーは[エラー一覧]シートを参照。

①
AD_CHANNEL_0
AD_CHANNEL_1

・本APIでマルチパケットへの応答内容を設定する。
・4095Byteより大きい送受信データサイズでの動作は保証しない。
・マルチパケットのシーケンス完了前に本APIをコールした場合の動作は保証しない。
・引数①の値ごとの挙動は以下となる。
0:正常ケースであり、APIの動作を継続する。
1:待機状態であることをFCにて送信する。その1秒後に「連続受信可」でFCを送信する。以降は通常のAPIの動作を継続する。
2:相受信に失敗したことをFCにて送信する。本来、TP上はマルチパケット送受信処理は終了する
が、APIとしてはデータを受信できる状態でタイムアウトまで待つ。
・引数①②③は対象へFCパケットで通知する値であり、FC情報は相手から受け取った情報に従う。
・複数コネクションには対応せず、本APIコール毎に情報は上書きされる。
・⑪～⑯の情報に一致するデータをTP受信し、その後⑤～⑩の情報で⑰～㉑のデータをTP送信する。
●想定利用方法
・Rmt_SendMultiPacketData()で送受信情報を設定する。
・ターゲットの機器から受信情報に従った受信デー
タを保持し、設定された送信データを送信する。
・Rmt_GetResponseMultiPacketDataStatus()で100ms程度の間隔でポーリングして受信したデータを取得する。
・Rmt_GetResponseMultiPacketDataStatus()で送受信の失敗やターゲットの応答タイムアウトを取得する。

エラーは[エラー一覧]シー
トを参照。

指定Signalの最新データ ①WORD SignalId [I] シグナルID①0～29999
RET_OK:正常、負数:エラー
を取得する②DWORD size [I] 受信シグナルデータサイズ
内部管理IDのためRmt_GetSignalList or(バイト)
Rmt_ConvertXID2SignalIDで取得した値を使うこと。 エラーは[エラー一覧]シー
③BYTE* data [O] 受信シグナルデータ
トを参照。
④ULONGLONG* Time [O] 最終更新時タイムスタンプ((単位：100ns 1601-01-01 00:00:00を基準とした経過時間))

指定ポートのADの値を取 ①BYTE PortNum [I] ADポート番号
得する②DWORD* value [O] 値③ULONGLONG* Time [O] 最終更新時タイムスタンプ((単位：100ns 1601-01-01 00:00:00を基準とした経過時間))

Rmt_ResponseMultiPacketData()に㉑を追加したもの。

RET_OK:正常、負数:エラー
エラーは[エラー一覧]シートを参照。

②値 = ( 0.0000～50.0000(V) ) * 10000

・指定されたFrameIDの最新データを取得する。
・一度も受信していない場合は、戻り値がRET_NOTFOUND、受信フレームデータはNULL、最終更新時タイムスタンプは0となる。
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。
・指定されたSignalIDの最新データを取得する。
・一度も受信していない場合は、戻り値がRET_NOTFOUND、受信フレームデータはNULL、最終更新時タイムスタンプは0となる。
・data格納について
下詰めで上からStart位置よりdataに格納される(例)Width：9の場合
上 data[0] bit7～bit1:未使用
data[0] bit0←sig data0(Start位置)
data[1] bit7←sig data1
data[1] bit6←sig data2
data[1] bit5←sig data3
data[1] bit4←sig data4
data[1] bit3←sig data5
data[1] bit2←sig data6
data[1] bit1←sig data7
下 data[1] bit0←sig data8
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。
・指定されたADポートの最新データを取得する。
・値は、AD電圧値0V～50Vを1万倍した値が取得できる。
・一度も受信していない場合は、戻り値がRET_NOTFOUND、値はNULL、最終更新時タイムスタン
プは0となる。
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。

Rmt_GetGpiData

指定ポートのGPIの値を ①BYTE PortNum [I] GPIポート番号
取得する②BYTE* value [O] 値③ULONGLONG* Time [O] 最終更新時タイムスタンプ((単位：100ns 1601-01-01 00:00:00を基準とした経過時間))①
GPIO_CHANNEL_0
GPIO_CHANNEL_1
GPIO_CHANNEL_2
GPIO_CHANNEL_3

RET_OK:正常、負数:エラー
エラーは[エラー一覧]シートを参照。

②
GPIO_BIT_VALUE_LOW
GPIO_BIT_VALUE_HIGH
Rmt_GetDataNewerList

Rmt_GetDataALL

・指定されたGPIポートの最新データを取得する。
・値は、GPIO_BIT_VALUE_LOW,GPIO_BIT_VALUE_HIGHが取得できる。
・一度も受信していない場合は、戻り値がRET_NOTFOUND、値はNULL、最終更新時タイムスタン
プは0となる。
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。

CANTOOL本体が送受信し ①DWORD size [I] 最大取得サイズ(バイト)たデータの最新情報のみ ②log_record_dt_t_rmt* data [O] 最新データを取得する。
(log_record_dt_t_rmt構造体の配列)③DWORD* ActualOut [O] 取得件数①
「sizeof(log_record_dt_newer_list_max_t_rmt)」
を固定でセットすること。
②log_record_dt_newer_list_max_t_rmt構造体のメモリを確保すること。
③引数の取得件数分、引数②にデータが格納される。

RET_OK:正常、負数:エラー

CANTOOL本体が送受信し ①BOOL StartEnd [I] 開始/終了
た全データを取得する。 ②DWORD size [I] 最大取得サイズ(バイト)③log_record_dt_t_rmt* data [O] 全データ
(log_record_dt_t_rmt構造体の配列)④DWORD* ActualOut [O] 取得件数

①TRUE：蓄積停止
FALSE：蓄積開始②全データ格納サイズは、「sizeof(log_record_dt_get_data_all_max_t_rmt)」を固定でセットすること。
③log_record_dt_get_data_all_max_t_rmt構造体のメモリを確保する。

RET_OK:正常、負数:エラー

受信したデータのタイム ①ULONGLONG* [I] timeSerial
スタンプを文字列で取得 ②char* [O] timeChar
する①タイムスタンプ②時間文字列(形式：YYYY/MM/DD
HH:MM:SS.mmm.uuu.n)
2000/1/1～2500/1/1間のタイムシリアル値を設定する。

RET_OK:正常、負数:エラー①「MULTI_PACKET_STATE_～」の定義を参照
0:データがある
1:データがない
10:送信エラー(タイムアウト)
11:送信エラー(内部エラー)
12:送信エラー(シーケンス異常)
20:受信エラー(タイムアウト)
21:受信エラー(内部エラー)
22:受信エラー(シーケンス異常)
30:FC情報②
1～4095Byte
データがない場合は0③
4095Byteのメモリを確保すること。

RET_OK:正常、負数:エラー

エラーは[エラー一覧]シー
トを参照。

エラーは[エラー一覧]シー
トを参照。

・CANTOOL本体が送受信したデータの最新情報のみを取得する。
※受信したデータは随時上書きされるため、値の変化を確認する用途には向かない。
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。
・CANTOOL本体が送受信した全データを取得する。
本APIを定期的にコールし、CANTOOL本体で蓄積している送受信した全データを取得することを想定している。
※インターフェース設定に左右されるが、50ms以内の周期で取得することを推奨する。
・引数①にFALSEを設定すると、送受信データの蓄積を開始する。
送受信データ取得中は、引数①はFALSEを設定する。
※初回はログの蓄積を開始するトリガであるため、引数の取得件数は0となる。2回目以降の呼び出
しで全データが取得できる。
・引数①にTRUEを設定すると、送受信データの蓄積を停止し、データを破棄する。
StartEndにTRUEを設定せず本APIコールを停止す
ると、パケットのロストが発生する。(CANTOOLPANELに表示される)
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。
・引数④の件数分、引数③にデータが格納される。

Rmt_GetDateTimeText

Rmt_GetMultiPacketStatu MultiPacket状態を取得 ①BYTE* DataState [O]sする②DWORD* DataLength [O] 受信データサイズ(バイト)③BYTE* Data [O] 受信データ

5 / 7 ページ

エラーは[エラー一覧]シー
トを参照。

エラーは[エラー一覧]シートを参照。

・GetFrameData等、DataRecieveのAPIで取得したタ
イムスタンプをシリアル値から文字列に変換する。
・ExcelVBAでは、ULONGLONG型(8バイト整数データ)が扱えない為、本APIを使用してタイムスタンプを取得する。
・マルチパケット送受信の状態を取得することができる。
・先にRmt_SendMultiPacketData()で送受信ポートの設定を行っておく必要がある。
・送受信データサイズが4095Byte以上となる環境での動作は保証しない。
・状態は1バッファのみ保持する。Get前に新しい状態に変化すると情報を上書きする。
・本APIをコールすると情報を破棄し、①が「1」となる。
・①が「データがある」と「FC情報」の場合のみ②と③は有効。
「30」の時は受信したFCのデータが格納される。
1Byte目：FS値、2Byte目：BS値、3Byte目：
STmin値
・FCデータのFS値ごとの挙動は以下となる。
0:正常な応答であり、APIの動作を継続する。
1:相手の処理待ち状態であり、処理待ちが解除され次第APIの動作を継続する。
2:相手側で受信に失敗した状態であり、TP上はマ
ルチパケット送受信処理は終了する。ただしAPIとしてはデータを受信できる状態でタイムアウトまで待つ。

Logging

Rmt_GetResponseMultiPac MultiPacketの応答結果 ①BYTE* DataState [O]ketDataStatus
を取得する②DWORD* DataLength [O] 受信データサイズ(バイト)③BYTE* Data [O] 受信データ①「MULTI_PACKET_STATE_～」の定義を参照
0:データがある
1:データがない
10:送信エラー(タイムアウト)
11:送信エラー(内部エラー)
12:送信エラー(シーケンス異常)
20:受信エラー(タイムアウト)
21:受信エラー(内部エラー)
22:受信エラー(シーケンス異常)
30:FC情報②
1～4095Byte
データがない場合は0③
4095Byteのメモリを確保すること。

Rmt_StartRecordingLog

なし

ログ記録を開始する(PC なし
ロギング)

RET_OK:正常、負数:エラー
エラーは[エラー一覧]シー
トを参照。

RET_OK:正常、負数:エラー
エラーは[エラー一覧]シー
トを参照。

Rmt_EndRecordingLog

ログ記録を終了する(PC なし
ロギング)

なし

RET_OK:正常、負数:エラー
エラーは[エラー一覧]シー
トを参照。

Rmt_StartPlayingFile()

指定した再生ファイルを ①char* PlayFile [I] ファイルパス
実行する(PCでの再生)①・フルパス、UTF-8で指定する。フォルダ区切り文 RET_OK:正常、負数:エラー
字は「\\」。
エラーは[エラー一覧]シー
トを参照。

Rmt_EndPlayingFile()

再生ファイルの実行を終 なし
了する(PCでの再生)なし

RET_OK:正常、負数:エラー

プロジェクトファイルの なし
設定を、CANTOOL本体に
反映する

なし

エラーは[エラー一覧]シー
トを参照。
RET_OK:正常、負数:エラー

Rmt_LoadMasterSetting

Rmt_LoadMasterSetting2

エラーは[エラー一覧]シー
トを参照。

指定のインターフェース ①DWORD size
設定ファイルを、②char* PlayFile [I] ファイルパス
CANTOOL本体に反映する①0～255Byte
RET_OK:正常、負数:エラー②・フルパス、UTF-8で指定する。フォルダ区切り文
字は「\\」。
エラーは[エラー一覧]シー
トを参照。

Rmt_TimeSyncronizeReque CANTOOL本体にPCの時刻 なし
stを設定する。

なし

RET_OK:正常、負数:エラー
エラーは[エラー一覧]シー
トを参照。

・マルチパケットの応答結果状態を取得することができる。
・先にRmt_ResponseMultiPacketData()で送受信
ポートの設定を行っておく必要がある。
・受信データサイズが4095Byte以上となる環境での動作は保証しない。
・状態は1バッファのみ保持する。Get前に新しい状態に変化すると情報を上書きする。
・本APIをコールすると情報を破棄し、①が「1」となる。
・①が「データがある」と「FC情報」の場合のみ②と③は有効。
「30」の時は受信したFCのデータが格納される。
1Byte目：FS値、2Byte目：BS値、3Byte目：
STmin値
・FCデータのFS値ごとの挙動は以下となる。
0:正常な応答であり、APIの動作を継続する。
1:相手の処理待ち状態であり、処理待ちが解除され次第APIの動作を継続する。
2:相手側で受信に失敗した状態であり、TP上はマ
ルチパケット送受信処理は終了する。ただしAPIとしてはデータを受信できる状態でタイムアウトまで待つ。
・ログ記録を開始する。
・プロジェクト設定ファイルに記載されているPCのパスのフォルダに記録される。
・ログ分割サイズ毎に分割し保存される。
・開始時や記録中に、ファイルの書き込み失敗やメディアフルで、ログ記録を終了した場合は、
Rmt_RegisterNotificationEndedRecordingLogで登録した関数がコールバックされる。
・すでにロギングが開始されている時に、本APIをコールした場合は正常を返し、実行中のロギングを継続する。
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。
・ログ記録を終了する。
・終了後、
Rmt_RegisterNotificationEndedRecordingLogで登録した関数がコールバックされる。
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。
・指定した再生ファイルの再生を開始する。
・再生中の周期送信有無はログファイルの「Cyclic
Send」の内容に従い動作する。
・再生位置は指定ファイルの先頭から実施される。
・再生中は、NotificationPlayingFileProgressで再生しているログのタイムスタンプが通知される。
・Rmt_EndPlayingFileをコールする前に再生が終了
した場合は、NotificationEndedPlayingFileが通知される。
・ファイルパスは、UTF-8で指定すること。
・再生ファイルの再生を終了する。
・終了後、NotificationEndedPlayingFileが通知される。
・プロジェクトファイルに設定されている、インターフェース設定、ログ設定、フィルタ設定、再生データを本体に反映する。
・非同期で処理するため結果は、
NotificationEndMasterSettingで通知される。
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。
・プロジェクトファイルに設定されている、ログ設
定、フィルタ設定、再生データと、引数で指定した、インターフェース設定を本体に反映する。
・CANTOOL_PANELとしては一時的な反映であり、GUI
上もプロジェクトファイル上も反映されない。
CANTOOL A1としては反映されたインターフェース設
定ファイルを本体に記録し、再起動後も反映後の状態で動作する。
・非同期で処理するため結果は、
NotificationEndMasterSettingで通知される。
・指定したパスが読み込めなければ処理失敗となる。
・sizeとCdbPathの整合性が合わない場合の挙動は保証しない。
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。
・CANTOOL本体にPCの時間を設定する。
(モニタやログのタイムスタンプがPCとずれることを防ぐため設定する)・ユーザーアプリから設定を行わず、PCとCANTOOL
本体と5秒以上の時間のずれが発生した場合は、
CANTOOL-PANELにより時刻設定ダイアログが表示される。ダイアログ表示中にユーザーアプリから時刻設定を行っても問題ない。
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。

APP Control

Rmt_StartAppFunction

CANTOOL PANELの各画面 ①BYTE DispId [I] 画面IDを起動する。

①「ユーザーアプリから起動する画面ID」シートを参照。

RET_OK:正常、負数:エラー
エラーは[エラー一覧]シー
トを参照。

Rmt_StartAppFunction2

StatusControl

CANTOOL PANELの各画面 ①BYTE DispId [I] 画面IDを起動する。
②BOOL IsShow[I] 表示、非表示③char* XmlFile [I] ファイルパス

①「ユーザーアプリから起動する画面ID」シートを RET_OK:正常、負数:エラー
参照。
②TRUE：表示 FALSE：非表示
エラーは[エラー一覧]シー③フルパス、UTF-8で指定する。フォルダ区切り文字 トを参照。
は「\\」。指定しない場合はNULL。

Rmt_RegisterNotificatio 状態変更時に呼び出され ①TNotificationStatusChange
nStatusChange
るコールバック関数を登 NotificationStatusChange [I] コールバックす
録するる関数のポインタ
Rmt_RegisterNotificatio 状態変更時に通知される なし
nStatusChangeで設定した
関数

RET_OK:正常

RET_OK:正常

Rmt_RegisterNotificatio ユーザーSW操作時に呼び ①TNotificationUserSW NotificationUserSWnUserSW
出されるコールバック関 [I] コールバックする関数のポインタ数を登録する
Rmt_RegisterNotificatio ユーザーSW操作時に通知 ①BYTE UserSW [I] ユーザースイッチ番号
nUserSWで設定した関数
される。
②BYTE SwStatus [I] 状態①
USERSW_NUM_LOGGINGUSERSW_NUM_PLAY1
USERSW_NUM_PLAY2
USERSW_NUM_PLAY3②
BUTTON_STATUS_RELEASE
BUTTON_STATUS_PUSH_SHORTBUTTON_STATUS_PUSH_LONG

・指定された画面IDに対応したCANTOOL-PANELの各画面を起動する。
・指定できる画面IDは、「ユーザーアプリから起動する画面ID」シートを参照。
・指定された画面IDに対応したCANTOOL-PANELの各画面を起動する。
・指定できる画面IDは、「ユーザーアプリから起動する画面ID」シートを参照。
・呼び出されるコールバック関数を登録する。
・パラメータ①にCALLBACK_CLEARを指定することでコールバック登録情報がクリアされる。
・Rmt_RegisterNotificationStatusChange()でコー
ルバック関数を登録すること。
・GetStatus()で取得できる各種状態が変化した際に通知される。

RET_OK:正常・呼び出されるコールバック関数を登録する。
・パラメータ①にCALLBACK_CLEARを指定することでコールバック登録情報がクリアされる。

RET_OK:正常・Rmt_RegisterNotificationUserSW()でコールバッ
ク関数を登録すること。
・ユーザーSW操作時に、ユーザースイッチ番号と状態が通知される。
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。

Rmt_RegisterNotificatio Config変更時に呼び出さ ①TNotificationConfigChange
nConfigChange
れるコールバック関数を NotificationConfigChange [I] コールバックす登録する
る関数のポインタ

RET_OK:正常・呼び出されるコールバック関数を登録する・パラメータ①にCALLBACK_CLEARを指定することでコールバック登録情報がクリアされる。

Rmt_RegisterNotificatio Config変更時に通知され なし
nConfigChangeで設定した る。
関数

RET_OK:正常・Rmt_RegisterNotificationConfigChange()でコー
ルバック関数を登録すること。
・Config変更時に通知されるため、必要に応じて情報を読み直すこと。

Rmt_RegisterNotificatio ステータスモニタ用ログ ①TNotificationStatusMonitorDataClearnStatusMonitorDataClear クリア時に呼び出される NotificationStatusMonitorDataClear [I] コー
コールバック関数を登録 ルバックする関数のポインタする。
Rmt_RegisterNotificatio ステータスモニタ用ログ なし
nStatusMonitorDataClear をクリア時に通知されで設定した関数る。

RET_OK:正常・呼び出されるコールバック関数を登録する。
・パラメータ①にCALLBACK_CLEARを指定することでコールバック登録情報がクリアされる。

RET_OK:正常・
Rmt_RegisterNotificationStatusMonitorDataClear()でコールバック関数を登録すること。
・ステータスモニタ用ログがクリアされた時に通知される。(複数のユーザープログラム使用時に、他のユーザープログラムにて設定を変更したことが分かる)

6 / 7 ページ

DataRecieve

Rmt_RegisterNotificatio UARTのデータを受信した ①TNotificationGetUartData
nGetUartData
際に呼び出されるコール NotificationGetUartData [I] コールバックすバック関数を登録する。 る関数のポインタ
Rmt_NotificationGetUart UARTの受信データが通知 ①BYTE status [I] 状態
Dataで設定した関数
される。
②DWORD size [I] データ長
③BYTE* data [I] UARTからの取得データ

Logging①
GET_UARTDATA_STATE_COMPLETE
GET_UARTDATA_STATE_FAILED②
UARTDATA_GET_SIZE_MAX

Rmt_RegisterNotificatio ログ記録の状態変化時に ①TNotificationEndedRecordingLog
nEndedRecordingLog
呼び出されるコールバッ NotificationEndedRecordingLog [I] コール
ク関数を登録する。
バックする関数のポインタ
Rmt_RegisterNotificatio StartRecordingLog()、 ①BYTE Status [I] 状態
nEndedRecordingLogで設 EndRecordingLog()の応定した関数
答として、ログ記録の実行終了を通知する。

①
ENDEDRECORDINGLOG_STATE_COMPLETE
ENDEDRECORDINGLOG_STATE_MEDIA_FULL
ENDEDRECORDINGLOG_STATE_FAILEDRET_OK:正常・呼び出されるコールバック関数を登録する。
・パラメータ①にCALLBACK_CLEARを指定することでコールバック登録情報がクリアされる。

RET_OK:正常・Rmt_RegisterNotificationGetUartDataでコールバック関数を登録すること。
・UART有効の間(SetUartSettingでenableに有効設
定して無効に設定するまでの間)、UARTから受信したデータを通知する。
・最大でUARTDATA_GET_SIZE_MAX(単位:byte)取得される。

RET_OK:正常・呼び出されるコールバック関数を登録する・パラメータ①にCALLBACK_CLEARを指定することでコールバック登録情報がクリアされる。

RET_OK:正常・Rmt_RegisterNotificationEndedRecordingLog()
でコールバック関数を登録すること。
・StartRecordingLog()、EndRecordingLog()の応答として、ログ記録の実行終了時に、終了時の状態が通知される。
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。

Rmt_RegisterNotificatio ロギング時のロスト発生 ①TNotificationLostStatus
nLostStatus
時に呼び出されるコール NotificationLostStatus [I] コールバックする
バック関数を登録する。 関数のポインタ

RET_OK:正常・呼び出されるコールバック関数を登録する。
・パラメータ①にCALLBACK_CLEARを指定することでコールバック登録情報がクリアされる。

RET_OK:正常・Rmt_RegisterNotificationLostStatus()でコールバック関数を登録すること。
・ロギング時にロストの発生状態を通知する。

Rmt_RegisterNotificatio 再生状態の完了時に呼び ①TNotificationEndedPlayingFile
nEndedPlayingFile
出されるコールバック関 NotificationEndedPlayingFile [I] コール
数を登録する。
バックする関数のポインタ
Rmt_RegisterNotificatio Rmt_StartPlayingFile() ①BYTE Status [I] 状態①
nEndedPlayingFileで設定 、Rmt_EndPlayingFile()
ENDEDPLAYINGFILE_STATE_COMPLETEした関数の応答として、再生ファ
ENDEDPLAYINGFILE_STATE_FAILED
イルの実行終了を通知する。
(PCによる再生)
Rmt_RegisterNotificatio 再生開始時に呼び出され ①TNotificationPlayingFileProgress
nPlayingFileProgress
るコールバック関数を登 NotificationPlayingFileProgress [I] コール
録する
バックする関数のポインタ
Rmt_RegisterNotificatio 再生ファイルの再生位置 ①ULONGLONG timestamp [I] タイムスタンプ
nPlayingFileProgressで を通知する。
((単位：100ns 1601-01-01 00:00:00を基準とし設定した関数た経過時間))

RET_OK:正常・呼び出されるコールバック関数を登録する。
・パラメータ①にCALLBACK_CLEARを指定することでコールバック登録情報がクリアされる。
・Rmt_RegisterNotificationEndedPlayingFile()でコールバック関数を登録すること。
・Rmt_StartPlayingFile()、Rmt_EndPlayingFile()の応答として、再生ファイルの再生終了時に、終了時の状態が通知される。

Rmt_RegisterNotificatio 本体へのプロジェクト設 ①TNotificationEndMasterSetting
nEndMasterSetting
定完了時に呼び出される NotificationEndMasterSetting [I] コールバッ
コールバック関数を登録 クする関数のポインタする。
Rmt_RegisterNotificatio 本体へのプロジェクト設 ①BYTE MasterSettingKind [I] MasterSetting ①
nEndMasterSettingで設定 定完了を通知する。
種別
ENDMASTERSETTING_KIND_LOAD
した関数②BYTE Status [I] 状態
ENDMASTERSETTING_KIND_SEND
ENDMASTERSETTING_KIND_GET②
ENDMASTERSETTING_STATE_COMPLETE
ENDMASTERSETTING_STATE_FAILEDENDMASTERSETTING_STATE_NO_FILE
ENDMASTERSETTING_STATE_NO_SD

RET_OK:正常

Rmt_RegisterNotificatio ロギング時、ロストの発 ①BOOL Lost [I] ロスト発生状態
nLostStatusで設定した関 生状態を通知する。
②ULONGLONG OccurrenceTime [I] 発生時のタイ
数
ムスタンプ((単位：100ns 1601-01-01 00:00:00
を基準とした経過時間))③ULONGLONG ClearedTime [I] 解消時のタイム
スタンプ((単位：100ns 1601-01-01 00:00:00を基準とした経過時間))④BYTE OccurrencePosition [I] 発生箇所
(00:FPGA、02:本体アプリ、10:PCアプリ)⑤BYTE BusKind [I] ユニット
⑥BYTE channel [I] チャンネル

Play

Setting④
LOST_POINT_FPGALOST_POINT_CANTOOLLOST_POINT_PC⑤
UNIT_CAN
UNIT_LIN
UNIT_ADUNIT_DA
UNIT_GPI
UNIT_GPO
UNIT_CAN_FD⑥⑤の値によって以下の範囲とななる。
UNIT_CAN,UNIT_CAN_FDの場合
CAN_CHANNEL_0
CAN_CHANNEL_1
CAN_CHANNEL_2
CAN_CHANNEL_3
UNIT_ADの場合
AD_CHANNEL_0
AD_CHANNEL_1
UNIT_DAの場合
DA_CHANNEL_0
DA_CHANNEL_1
UNIT_GPI,UNIT_GPOの場合
GPIO_CHANNEL_0
UNIT_LINの場合
channel未使用(0固定)

7 / 7 ページ

RET_OK:正常

RET_OK:正常
RET_OK:正常

RET_OK:正常・呼び出されるコールバック関数を登録する・パラメータ①にCALLBACK_CLEARを指定することでコールバック登録情報がクリアされる
・
Rmt_RegisterNotificationPlayingFileProgress()
でコールバック関数を登録すること。
・開始時に再生位置のタイムスタンプが通知される。
・タイムスタンプ値は、再生ファイル内の時間です。
・呼び出されるコールバック関数を登録する。
・パラメータ①にCALLBACK_CLEARを指定することでコールバック登録情報がクリアされる。
・Rmt_RegisterNotificationEndMasterSetting()でコールバック関数を登録すること。
・本体へのプロジェクト設定完了時に、
MasterSetting種別と状態が通知される。
・summary_t_rmt構造体の「USB通信状態(本体-PC間)」が「USB_STATUS_DISCONNECT」の場合は利用不可。