マルチメータ 34461A を制御するために、ヘッダ .h または .dll ファイルを CAPL (具体的には Visa32.dll、visa.h または sicl.h) に統合したいと考えています。.h ファイルまたは .dll ファイルを CANoe に含めるにはどうすればよいですか? multimeterというECUモジュールを作成しました。ありがとう、
2 に答える
CAPL に外部 DLL を含めることは可能ですが、使用するすべての関数のラッパーを作成する必要があります。
\CANoe\Demo_AddOn\Capldll
このようなラッパーを備えたディレクトリを見てください。のようないくつかの単純な関数を CAPL にエクスポートする MSVC プロジェクトint f(int a, int b) {return a+b;}
です。
ライブラリ ファイル (Visa32.dll、visa.h) をこの Capldll プロジェクトに追加し、CANoe から呼び出すすべての関数のラッパーを定義する必要があります。たとえばint visa_init(double arg)
、Visa32.dll にある場合は、ラッパーを作成します。
int CAPLEXPORT far CAPLPASCAL capl_visa_init(double arg)
{
return visa_init(arg);
}
また、関数のプロトタイプをエクスポート テーブルに追加する必要があります。
CAPL_DLL_INFO CAPL_DLL_INFO_LIST[] =
{
{"my_visa_init", (CAPL_FARCALL)capl_visa_init, 'D', 1, "F", "\000"},
....
{0,0}
};
ラッパー DLL (サンプルを再利用する場合は capldll.dll という名前になります) を正常にビルドしたら、それを CANoe にインポートする必要があります。エクスポート テーブルで定義した名前で関数を呼び出すことができます。 、例えばmy_visa_init(1.0);
CAPL は C ではありません。.h ファイルを含めることはできません。
最も簡単なのは、GPIB バスを介してマルチメータを制御することです。CAPL GPIB ライブラリを見てください。