メインコンテンツまでスキップ

構造体定義(共通)

本製品の共通の構造体定義を説明します。

主に使うAPI

定義一覧

型名意味合い
StMPXAPIVersionAPIのバージョン情報
StMPXDeviceInfoMicroPeckerXのデバイス情報
StMPXLogCBコールバック関数用ログ情報
StMPXLogログ取得API用ログ情報

定義詳細

StMPXAPIVersion

StMPXAPIVersion構造体(APIのバージョン情報)のメンバは、以下の通りです。

変数名型名意味合い
APIVersionchar [32]APIのバージョン番号

StMPXDeviceInfo

StMPXDeviceInfo構造体(MicroPeckerXのデバイス情報)のメンバは、以下の通りです。

変数名型名意味合い備考
Serialunsigned longシリアル番号MicroPeckerXに貼付されているシリアルNoシールの記載と同じです。
Modelchar [64]製品型名(例:S810-MX-FD2) 

StMPXLogCB

StMPXLogCB構造体(コールバック関数用ログ情報)のメンバは、以下の通りです。

変数名型名意味合い備考
mSecunsigned longタイムスタンプ(ミリ秒)タイムスタンプは、mSecとuSecの値を組み合わせて表現します。
例えば12.345ms(12msと345us)の場合、mSecが12、uSecが345となります。
uSecunsigned shortタイムスタンプ(マイクロ秒)
LogTypeunsigned charログ種別ビットフィールドによる構造体です(詳細は「StMPXLogCB構造体のLogType」を参照)。
DLunionデータ長プロトコル(CAN/LIN)に応じて異なる情報を集めた共用体です(詳細は「StMPXLogCB構造体のDL」を参照)。
Miscunion雑多情報プロトコル(CAN/LIN)やエラーの有無に応じて異なる情報を集めた共用体です(詳細は「StMPXLogCB構造体のMisc」を参照)。
Dataunsigned char [64]データ要素番号(0~63)は、データのD1~D64にそれぞれ対応します。
LIN通信では、DLと同じ要素番号がチェックサムとなります。

StMPXLog

StMPXLog構造体(ログ取得API用ログ情報)のメンバは、以下の通りです。

変数名型名意味合い備考
mSecunsigned longタイムスタンプ(ミリ秒)タイムスタンプは、mSecとuSecの値を組み合わせて表現します。
例えば12.345ms(12msと345us)の場合、mSecが12、uSecが345となります。
uSecunsigned shortタイムスタンプ(マイクロ秒)
Protocolunsigned charプロトコル値の意味合いについては「ログ種別」を参照してください。
Dirunsigned char方向値の意味合いについては「ログ方向」を参照してください。
Miscunion雑多情報CAN通信とLIN通信で異なる情報を集めた共用体です(詳細は「StMPXLog構造体のMisc」を参照)。
Dataunsigned char [64]データ要素番号(0~63)は、データのD1~D64にそれぞれ対応します。
LIN通信では、DLと同じ要素番号がチェックサムとなります。

補足情報

StMPXLogCB構造体のLogType

StMPXLogCB構造体のLogTypeは、unsigned char型のビットフィールドによる構造体となっています。
メンバは以下の通りです。

変数名ビット数意味合い備考
Type6ログ種別値の意味合いについては「ログ種別」を参照してください。
Dir1方向値の意味合いについては「ログ方向」を参照してください。
Error1エラーフラグ値の意味合いについては「CANエラーフラグ」を参照してください。

StMPXLogCB構造体のDL

StMPXLogCB構造体のDLは、プロトコル(CAN/LIN)に応じて「有効な枝」が切り替わる共用体となっています。
以下のようにLogType.Typeの値からプロトコルを判定し、その結果に応じて有効な枝を読んでください(共用体は同一メモリを共有しますので、同時に複数の枝を読むことはできません)。

判定条件(LogType.Type)有効メンバ(DL)
以下のいずれか
MPX_LOG_TYPE_CAN, MPX_LOG_TYPE_CANFD, MPX_LOG_TYPE_CANFD_NOBRS
DL.CAN
MPX_LOG_TYPE_LINDL.LIN

StMPXLogCB構造体のDL.CAN

StMPXLogCB構造体のDL.CANは、unsigned char型のビットフィールドによる構造体となっています。
メンバは以下の通りです。

変数名ビット数意味合い備考
NotUsed4未使用
DLC4データレングスコード(DLC)データレングスコードとデータ長の関係については「データレングスコードとデータ長」を参照してください。

StMPXLogCB構造体のDL.LIN

StMPXLogCB構造体のDL.LINは、以下のメンバを有する構造体となっています。

変数名型名意味合い
DLunsigned charデータ長

StMPXLogCB構造体のMisc

StMPXLogCB構造体のMiscは、プロトコル(CAN/LIN)やエラーの有無に応じて「有効な枝」が切り替わる共用体となっています。
以下のようにLogType.Typeの値からプロトコル、LogType.Errorの値からエラーの有無をそれぞれ判定し、その結果に応じて有効な枝を読んでください(共用体は同一メモリを共有しますので、同時に複数の枝を読むことはできません)。

判定条件有効メンバ
LogType.TypeLogType.Error
以下のいずれか
MPX_LOG_TYPE_CAN, MPX_LOG_TYPE_CANFD, MPX_LOG_TYPE_CANFD_NOBRS
MPX_CAN_ERRFLG_FALSEMisc.CAN.ID
MPX_CAN_ERRFLG_TRUEMisc.CAN.ErrorInfo
MPX_LOG_TYPE_LIN-Misc.LIN

StMPXLogCB構造体のMisc.CAN.ID

StMPXLogCB構造体のMisc.CAN.IDは、unsigned long型のビットフィールドによる構造体となっています。
メンバは以下の通りです。

変数名ビット数意味合い備考
ID29CAN ID(標準IDまたは拡張ID)標準IDの場合は、下位11ビット(ビット10~ビット0)にセットされます。
Reserved1予約領域
RTR1リモート送信要求(RTR)値の意味合いについては「CANリモート送信要求」を参照してください。
IDE1IDフォーマット(IDE)値の意味合いについては「CAN IDフォーマット」を参照してください。

StMPXLogCB構造体のMisc.CAN.ErrorInfo

StMPXLogCB構造体のMisc.CAN.ErrorInfoは、unsigned long型の変数で、エラーフラグを意味します。
値の意味合いについては「CANエラー情報」を参照してください。

StMPXLogCB構造体のMisc.LIN

StMPXLogCB構造体のMisc.LINは、以下のメンバを有する構造体となっています。

変数名型名意味合い備考
Typeunsigned charLINログ種別値の意味合いについては「LINログ種別」を参照してください。
SBLenunsigned charSyncBreak幅 
Fieldunionフィールド情報LINログ種別」に応じて異なる情報を集めた共用体です(詳細は「StMPXLogCB構造体のMisc.LIN.Field」を参照)。

StMPXLogCB構造体のMisc.LIN.Field

StMPXLogCB構造体のMisc.LIN.Fieldは、LINログ種別に応じて「有効な枝」が切り替わる共用体となっています。
以下のようにMisc.LIN.Typeの値からLINログ種別を判定し、その結果に応じて有効な枝を読んでください(共用体は同一メモリを共有しますので、同時に複数の枝を読むことはできません)。

判定条件(Misc.LIN.Type)有効メンバ
MPX_LIN_LOG_TYPE_WAKEUP以外Misc.LIN.Field.ID
MPX_LIN_LOG_TYPE_WAKEUPMisc.LIN.Field.WakeupWidth

StMPXLogCB構造体のMisc.LIN.Field.ID

StMPXLogCB構造体のMisc.LIN.Field.IDは、以下のメンバを有する構造体となっています。

変数名型名意味合い備考
IDunsigned charLIN ID 
ErrorCodeunsigned charエラーコード値の意味合いについては「LINエラーコード」を参照してください。

StMPXLogCB構造体のMisc.LIN.Field.WakeupWidth

StMPXLogCB構造体のMisc.LIN.Field.WakeupWidthは、unsigned short型の変数で、ウェイクアップパルス幅(マイクロ秒単位)を意味します。

StMPXLog構造体のMisc

StMPXLog構造体のMiscは、プロトコル(CAN/LIN)に応じて「有効な枝」が切り替わる共用体となっています。
以下のようにProtocolの値からプロトコルを判定し、その結果に応じて有効な枝を読んでください(共用体は同一メモリを共有しますので、同時に複数の枝を読むことはできません)。

判定条件(Protocol)有効メンバ
以下のいずれか
MPX_LOG_TYPE_CAN, MPX_LOG_TYPE_CANFD, MPX_LOG_TYPE_CANFD_NOBRS
Misc.CAN
MPX_LOG_TYPE_LINMisc.LIN

StMPXLog構造体のMisc.CAN

StMPXLog構造体のMisc.CANは、以下のメンバを有する構造体となっています。

変数名型名意味合い備考
IDunsigned longCAN ID(標準IDまたは拡張ID)標準IDの場合は、下位11ビット(ビット10~ビット0)にセットされます。
RTRunsigned charリモート送信要求(RTR)値の意味合いについては「CANリモート送信要求」を参照してください。
IDEunsigned charIDフォーマット(IDE)値の意味合いについては「CAN IDフォーマット」を参照してください。
DLunsigned charデータ長(DL) 
Errorunsigned charエラーフラグ値の意味合いについては「CANエラーフラグ」を参照してください。
ErrorInfounsigned longエラー情報値の意味合いについては「CANエラー情報」を参照してください。

StMPXLog構造体のMisc.LIN

StMPXLog構造体のMisc.LINは、以下のメンバを有する構造体となっています。

変数名型名意味合い備考
IDunsigned charLIN ID 
SBLenunsigned charSyncBreak幅 
WakeupWidthunsigned shortウェイクアップパルス幅 
Typeunsigned charLINログ種別値の意味合いについては「LINログ種別」を参照してください。
DLunsigned charデータ長(DL) 
Reserved1unsigned char [2]予約領域1 
ErrorCodeunsigned charエラーコード値の意味合いについては「LINエラーコード」を参照してください。
Reserved2unsigned char [3]予約領域2