構造体定義(共通)
本製品の共通の構造体定義を説明します。
主に使うAPI
- StMPXAPIVersion: MPXGetAPIVersion
- StMPXDeviceInfo: MPXOpen
- StMPXLogCB: MPXSetLogCallBack
- StMPXLog: MPXGetLog
定義一覧
| 型名 | 意味合い |
|---|---|
| StMPXAPIVersion | APIのバージョン情報 |
| StMPXDeviceInfo | MicroPeckerXのデバイス情報 |
| StMPXLogCB | コールバック関数用ログ情報 |
| StMPXLog | ログ取得API用ログ情報 |
定義詳細
StMPXAPIVersion
StMPXAPIVersion構造体(APIのバージョン情報)のメンバは、以下の通りです。
| 変数名 | 型名 | 意味合い |
|---|---|---|
| APIVersion | char [32] | APIのバージョン番号 |
StMPXDeviceInfo
StMPXDeviceInfo構造体(MicroPeckerXのデバイス情報)のメンバは、以下の通りです。
| 変数名 | 型名 | 意味合い | 備考 |
|---|---|---|---|
| Serial | unsigned long | シリアル番号 | MicroPeckerXに貼付されているシリアルNoシールの記載と同じです。 |
| Model | char [64] | 製品型名(例:S810-MX-FD2) |
StMPXLogCB
StMPXLogCB構造体(コールバック関数用ログ情報)のメンバは、以下の通りです。
| 変数名 | 型名 | 意味合い | 備考 |
|---|---|---|---|
| mSec | unsigned long | タイムスタンプ(ミリ秒) | タイムスタンプは、mSecとuSecの値を組み合わせて表現します。 例えば12.345ms(12msと345us)の場合、mSecが12、uSecが345となります。 |
| uSec | unsigned short | タイムスタンプ(マイクロ秒) | |
| LogType | unsigned char | ログ種別 | ビットフィールドによる構造体です(詳細は「StMPXLogCB構造体のLogType」を参照)。 |
| DL | union | データ長 | プロトコル(CAN/LIN)に応じて異なる情報を集めた共用体です(詳細は「StMPXLogCB構造体のDL」を参照)。 |
| Misc | union | 雑多情報 | プロトコル(CAN/LIN)やエラーの有無に応じて異なる情報を集めた共用体です(詳細は「StMPXLogCB構造体のMisc」を参照)。 |
| Data | unsigned char [64] | データ | 要素番号(0~63)は、データのD1~D64にそれぞれ対応します。 LIN通信では、DLと同じ要素番号がチェックサムとなります。 |
StMPXLog
StMPXLog構造体(ログ取得API用ログ情報)のメンバは、以下の通りです。
| 変数名 | 型名 | 意味合い | 備考 |
|---|---|---|---|
| mSec | unsigned long | タイムスタンプ(ミリ秒) | タイムスタンプは、mSecとuSecの値を組み合わせて表現します。 例えば12.345ms(12msと345us)の場合、mSecが12、uSecが345となります。 |
| uSec | unsigned short | タイムスタンプ(マイクロ秒) | |
| Protocol | unsigned char | プロトコル | 値の意味合いについては「ログ種別」を参照してください。 |
| Dir | unsigned char | 方向 | 値の意味合いについては「ログ方向」を参照してください。 |
| Misc | union | 雑多情報 | CAN通信とLIN通信で異なる情報を集めた共用体です(詳細は「StMPXLog構造体のMisc」を参照)。 |
| Data | unsigned char [64] | データ | 要素番号(0~63)は、データのD1~D64にそれぞれ対応します。 LIN通信では、DLと同じ要素番号がチェックサムとなります。 |
補足情報
StMPXLogCB構造体のLogType
StMPXLogCB構造体のLogTypeは、unsigned char型のビットフィールドによる構造体となっています。
メンバは以下の通りです。
| 変数名 | ビット数 | 意味合い | 備考 |
|---|---|---|---|
| Type | 6 | ログ種別 | 値の意味合いについては「ログ種別」を参照してください。 |
| Dir | 1 | 方向 | 値の意味合いについては「ログ方向」を参照してください。 |
| Error | 1 | エラーフラグ | 値の意味合いについては「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_LIN | DL.LIN |
StMPXLogCB構造体のDL.CAN
StMPXLogCB構造体のDL.CANは、unsigned char型のビットフィールドによる構造体となっています。
メンバは以下の通りです。
| 変数名 | ビット数 | 意味合い | 備考 |
|---|---|---|---|
| NotUsed | 4 | 未使用 | |
| DLC | 4 | データレングスコード(DLC) | データレングスコードとデータ長の関係については「データレングスコードとデータ長」を参照してください。 |
StMPXLogCB構造体のDL.LIN
StMPXLogCB構造体のDL.LINは、以下のメンバを有する構造体となっています。
| 変数名 | 型名 | 意味合い |
|---|---|---|
| DL | unsigned char | データ長 |
StMPXLogCB構造体のMisc
StMPXLogCB構造体のMiscは、プロトコル(CAN/LIN)やエラーの有無に応じて「有効な枝」が切り替わる共用体となっています。
以下のようにLogType.Typeの値からプロトコル、LogType.Errorの値からエラーの有無をそれぞれ判定し、その結果に応じて有効な枝を読んでください(共用体は同一メモリを共有しますので、同時に複数の枝を読むことはできません)。
| 判定条件 | 有効メンバ | |
|---|---|---|
| LogType.Type | LogType.Error | |
| 以下のいずれか MPX_LOG_TYPE_CAN, MPX_LOG_TYPE_CANFD, MPX_LOG_TYPE_CANFD_NOBRS | MPX_CAN_ERRFLG_FALSE | Misc.CAN.ID |
| MPX_CAN_ERRFLG_TRUE | Misc.CAN.ErrorInfo | |
| MPX_LOG_TYPE_LIN | - | Misc.LIN |
StMPXLogCB構造体のMisc.CAN.ID
StMPXLogCB構造体のMisc.CAN.IDは、unsigned long型のビットフィールドによる構造体となっています。
メンバは以下の通りです。
| 変数名 | ビット数 | 意味合い | 備考 |
|---|---|---|---|
| ID | 29 | CAN ID(標準IDまたは拡張ID) | 標準IDの場合は、下位11ビット(ビット10~ビット0)にセットされます。 |
| Reserved | 1 | 予約領域 | |
| RTR | 1 | リモート送信要求(RTR) | 値の意味合いについては「CANリモート送信要求」を参照してください。 |
| IDE | 1 | IDフォーマット(IDE) | 値の意味合いについては「CAN IDフォーマット」を参照してください。 |
StMPXLogCB構造体のMisc.CAN.ErrorInfo
StMPXLogCB構造体のMisc.CAN.ErrorInfoは、unsigned long型の変数で、エラーフラグを意味します。
値の意味合いについては「CANエラー情報」を参照してください。
StMPXLogCB構造体のMisc.LIN
StMPXLogCB構造体のMisc.LINは、以下のメンバを有する構造体となっています。
| 変数名 | 型名 | 意味合い | 備考 |
|---|---|---|---|
| Type | unsigned char | LINログ種別 | 値の意味合いについては「LINログ種別」を参照してください。 |
| SBLen | unsigned char | SyncBreak幅 | |
| Field | union | フィールド情報 | 「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_WAKEUP | Misc.LIN.Field.WakeupWidth |
StMPXLogCB構造体のMisc.LIN.Field.ID
StMPXLogCB構造体のMisc.LIN.Field.IDは、以下のメンバを有する構造体となっています。
| 変数名 | 型名 | 意味合い | 備考 |
|---|---|---|---|
| ID | unsigned char | LIN ID | |
| ErrorCode | unsigned 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_LIN | Misc.LIN |
StMPXLog構造体のMisc.CAN
StMPXLog構造体のMisc.CANは、以下のメンバを有する構造体となっています。
| 変数名 | 型名 | 意味合い | 備考 |
|---|---|---|---|
| ID | unsigned long | CAN ID(標準IDまたは拡張ID) | 標準IDの場合は、下位11ビット(ビット10~ビット0)にセットされます。 |
| RTR | unsigned char | リモート送信要求(RTR) | 値の意味合いについては「CANリモート送信要求」を参照してください。 |
| IDE | unsigned char | IDフォーマット(IDE) | 値の意味合いについては「CAN IDフォーマット」を参照してください。 |
| DL | unsigned char | データ長(DL) | |
| Error | unsigned char | エラーフラグ | 値の意味合いについては「CANエラーフラグ」を参照してください。 |
| ErrorInfo | unsigned long | エラー情報 | 値の意味合いについては「CANエラー情報」を参照してください。 |
StMPXLog構造体のMisc.LIN
StMPXLog構造体のMisc.LINは、以下のメンバを有する構造体となっています。
| 変数名 | 型名 | 意味合い | 備考 |
|---|---|---|---|
| ID | unsigned char | LIN ID | |
| SBLen | unsigned char | SyncBreak幅 | |
| WakeupWidth | unsigned short | ウェイクアップパルス幅 | |
| Type | unsigned char | LINログ種別 | 値の意味合いについては「LINログ種別」を参照してください。 |
| DL | unsigned char | データ長(DL) | |
| Reserved1 | unsigned char [2] | 予約領域1 | |
| ErrorCode | unsigned char | エラーコード | 値の意味合いについては「LINエラーコード」を参照してください。 |
| Reserved2 | unsigned char [3] | 予約領域2 |