初期化と終了処理は、全てのプログラミングで必要となる共通の処理です。
初期化処理はCanInit関数で行います。
この関数はドライバファイルの作成や必要なメモリの確保などを行います。
CanInit関数には引数が2つあります。
第1引数はデバイス名です。
デバイス名は設定ツール(コンフィグレーション)で登録した"CAN000"などの文字列になります。
第2引数はIDです。
IDはドライバーより渡される数字で、以降の関数を使用するにはこのデバイスIDが必要になります。
関数が正常終了すると、戻り値(Ret)にが0が返ります。
関数の実行に失敗した場合、0以外の値が返ります。
終了処理はCanExit関数で行います。
この関数はデバイス、ドライバー動作を停止し、メモリ、スレッドなどの使用していた全てのリソースを開放します。
アプリケーションは必ずこの関数を実行してから終了してください。
そうしないと、ドライバーが使用していたリソースが開放されないまま残ることがあります。
Cでのプログラミング例
デバイス"CAN000"に対して、初期化と終了処理を行います。
long Ret;
short Id;
Ret = CanInit( "CAN000"
, &Id );
if(Ret != 0){
printf("CanInitでエラーが発生しました %d\n", Ret);
}
Ret = CanExit( Id );
if(Ret != 0){
printf("CanExitでエラーが発生しました %d\n", Ret);
}
Pythonでのプログラミング例
デバイス"CAN000"に対して、初期化と終了処理を行います。
Ret = ctypes.c_long()
Id = ctypes.c_short()
Ret.value = ccan.CanInit ( b"CAN000" , ctypes.byref(Id))
if Ret.value != 0:
print(f"CanInitでエラーが発生しました {Ret.value}\n")
Ret.value = ccan.CanExit ( Id )
if Ret.value != 0:
print(f"CanExitでエラーが発生しました {Ret.value}\n")