制約事項
本製品でアプリケーションを開発する場合、並びに本製品で開発したアプリケーションを使用する場合における制約事項を説明します。
MicroPeckerX本体の認識可能台数
本製品で開発したアプリケーションが認識可能なMicroPeckerX本体の台数は、以下の通りです。
| エディション | 認識可能台数 |
|---|---|
| 無償版 | 1台のみ |
| 有償版 | 最大4台 |
いずれのエディションにおいても、認識させるMicroPeckerXを任意で指定することはできません。
構造体の予約領域
本製品では、アラインメントを4バイトで設定しております。そのため、一部の構造体にはアラインメント調整用に予約領域(Reserved等)のメンバが含まれています。
該当する構造体への書き込みを行った場合、予約領域の値は使用されません。また、読み込みを行った場合、予約領域の値は不定となります。
ログ取得モードによるログ情報の取得
ログ取得APIモード
ログ取得モードをログ取得APIモードに設定した場合、送受信のログ情報はDLL内に確保されたStMPXCANLog(ログ情報)型の構造体バッファに保存されます。
構造体バッファのサイズは、CHごとに1メガバイトです。
| 項目 | ログ取得モード | |
|---|---|---|
| ログ取得APIモード | コールバック関数モード | |
| ログ情報保存用バッファの場所 | DLL内に確保されたStMPXCANLog(ログ情報)構造体のバッファ | MicroPeckerX本体 |
バッファにログ情報を保存できる領域がない場合はバッファオーバーランとなり、保存されなかったログ情報は消えてしまいますので、バッファオーバーランが発生する前にMPXGetLogまたはMPXGetLogExのAPIを定期的に呼び出して、ログ情報を取得するようにしてください。
ただし、動作モードをシミュレーションモードやログ再生モードなどに設定して、送信のみを行うといった、ログ情報の取得や解析を行う必要がない場合は、バッファオーバーランが発生しても、送信処理に影響はありません。
コールバック関数モード
ログ取得モードをコールバック関数モードに設定した場合、1CHごとに最大4キロバイトのログ情報がMicroPeckerXのバッファに保存され、10ミリ秒ごとにコールバック関数で送信されます。また、バッファにログ情報を保存できる領域がなくなった場合は、その時点でログ情報が送信されます。
なお、コールバック関数モードではバッファオーバーランが発生することはありません。
StMPXCANSlot構造体(スロット情報)の設定パラメータ
StMPXCANSlot構造体(スロット情報)における、SendDelay(イベント送信での遅延時間)、SendOffset(送信オフセット)、SendCycle(送信周期)、MinTransInterval(送信最低保証間隔)の意味合いは以下のようになります。
| メンバ名 | 効果 | 関係する動作モード |
|---|---|---|
| SendDelay | MPXSetLogReplayTriggerまたはMPXChangeSlotで設定したトリガ条件が成立して から、SendDelayに指定した時間が経過した後に、最初のフレームを送信します。 | シミュレーションモード、ログ再生モード、バースト転送モード(ログ再生) |
| SendOffset | モニタリングを開始してから、SendOffsetに指定した時間が経過した後に、最初のフレームを送信します。 | シミュレーションモード、ログ再生モード、バースト転送モード |
| SendCycle | 前回のフレーム送信から、SendCycleに指定した時間が経過した後に、次のフレームを送信します。 | シミュレーションモード、バースト転送モード(1フレーム) |
| MinTransInterval | 前回のフレーム送信から、MinTransIntervalに指定した時間が経過するまでは、次のフレームを送信しません。 | シミュレーションモード |
ログ再生
ログ再生は、1台のMicroPeckerXに対して、どちらか一方のCHでのみ行うことできます。このため、両方のCHに対して、動作モードをログ再生モード、またはバースト転送モード(ログ再生)に設定することはできません。
対象となるAPI、構造体定義、定数定義は以下の通りです。
| 種類 | 対象 |
|---|---|
| API | MPXSetLogRequestCallBack, MPXSetLogReplayData, MPXSetBurstLog,MPXSetLogReplayTrigger, MPXLogReplayStart, MPXLogReplayStop |
| 構造体定義 | StMPXCANReplayLog |
| 定数定義 | ・API関数戻り値の一部 E_LOG_OVER ・MicroPeckerXステータスの一部 MPX_STATUS_LOGMPX_STATUS_BUR, MPX_STATUS_BUR_LOG ・動作モードの一部 MPX_MODE_CAN_LOGREPLAY, MPX_MODE_CAN_BURST_FRM, MPX_MODE_CAN_BURST_LOG ・ログ再生用ログサイズ MPX_CAN_SIM_REPLAY_HEADERSIZE |
無償版ではログ再生を使用できません。
コールバック関数の実装
MPXSetLogCallBack、MPXSetLogRequestCallBackの各APIで使用するコールバック関数を実装される際は、関数内での処理をフラグの変更などにとどめて頂き、ログ情報の解析や再生用ログの設定等といった時間のかかる処理は、別スレッド内で実装するようにしてください。
コールバック関数を実行している間は、MicroPeckerXとPCとのUSB通信が停止状態となりますので、この状態が長時間続くと、モニタデータの欠落等が発生します。
Microsoft Visual Basic .NETでのアプリケーション開発
開発環境に「Microsoft Visual Basic .NET」を使用する場合は、一部のAPIが使用できません。
対象となるAPIと、それによる影響は以下の通りです。
| API | 影響 |
|---|---|
| MPXSetLogCallBack | ログ取得モード をコールバック関数モードに設定することはできません(ログ取得APIモードのみ設定可能)。 |
| MPXGetLog | ログ情報の取得には、MPXGetLogExを使用してください。 |
| MPXSetLogRequestCallBack | ログ再生は使用できません。 |