第 5 章 インタフェースモジュール制御 80
5.8 カード型モジュール使用方法
5.8.3 CardBus ID 確認・設定方法
カード型モジュールを弊社DOS専用ライブラリ(GPDシリーズ)で使用する際は、CardBus IDを確認 する必要があります。CardBus IDはカード型モジュールに任意の値が設定されています。
DOS上で認識されているカード型モジュールのCardBus IDを確認し、設定するユーティリティを 起動メディアに収録しています。本ユーティリティを使用することで、DOS上から簡単にCardBus IDを確認、設定することができます。
製品名 CardBus ID設定ユーティリティ 実行ファイル名 IFCARDID.EXE 収録ディレクトリ ¥IFCM¥TOOLS
DOS上で上記実行ファイルを実行すると、下記のような画面に、認識されているカード型 モジュールの一覧が表示されます。
***********************************************************
CardBus Setup Utility Version: 1.00-01
Copyright 2009 Interface Corporation. All Right Reserved.
***********************************************************
===========================================================
SlotNo | Bus | Dev | Func | Model | CardBusID --- 1 | 6 | 0 | 0 | CSI/CBI-466120 | 0
2 | 8 | 0 | 0 | CSI/CBI-466120 | 1
===========================================================
項目 内容
SlotNo カード型モジュールが挿入されているカードスロット番号です。
Bus カード型モジュールが挿入されているバス番号を示します。
Dev カード型モジュールが挿入されているデバイス番号を示します。
Func カード型モジュールが挿入されているファンクション番号を示します。
Model カード型モジュールの型式を示します。
CardBusID 設定されているCardBus ID番号を示します。
※ 数値は10進数表示です。
CardBus ID番号を変更したい場合はメニューから「y」を選択し、変更を行いたいカード型 モジュールのカードスロット番号を入力します。
「n」を選択するとユーティリティが終了します。
Change the CardBusID(Y/N)? y
次にCardBus ID番号を入力しリターンキーを押します。CardBus ID番号の値を入力してください。
Enter Card Slot No: 1
Enter the CardBusID (0-15).
If you want to cancel this operation, enter -1.
第 6 章 デジタル入出力機能
車載 Classembly Devices(R), タフコントローラ Classembly Devices(R), 省エネ Classembly
Devices(R) 機能拡張モデル CAN+DIOモデルには、デジタル入出力共用端子4点が搭載されていま
す。 DOS System開発らくらくパッケージには、その機能を簡単に制御できる機能が
収録されています。
総合ライブラリのAPI関数をプログラム上から使用する場合は「include」ディレクトリ内の
「IFCM.H」を使用し、「lib」ディレクトリ内からご使用のコンパイラ, メモリモデルに合った総 合ライブラリをリンクして使用してください。
注意
!
本関数は、車載 Classembly Devices(R), タフコントローラ Classembly Devices(R), 省エネ Classembly Devices(R) 機能拡張モデル CAN+DIOモデルでのみ使用できます。
6.1 関数一覧
No. 関数名 機 能
1 CmInputUP デジタル入力接点を読み込みます。
2 CmOutputUP デジタル出力接点を制御します。
3 CmSetEvent 割り込みコールバック関数を登録します。
4 CmKillEvent 登録している割り込みコールバックを解除します。
5 CmSetEventMask 各コールバックの有効, 無効を設定します。
6 CmGetEventMask 現在の割り込みコールバックマスク値を取得します。
7 CmGetEventFactor 割り込みコールバックの発生要因を取得します。
8 CmCallBackProc CmSetEventMaskで設定した要因検出時に呼び出されるコールバック関数
です。
6.2 個別説明
1. CmInputUP
【機能】
デジタル入力接点を読み込みます。
【書式】
int CmInputUP(
unsigned long* pData );
【パラメータ】
pData デジタル入力接点情報の格納先です。各ビットが下記の端子状態を示し
ます。
bit31〜bit4 bit3 bit2 bit1 bit0
予約(値は無視してください) DIN4 DIN3 DIN2 DIN1 0:スイッチOFF(High), 1:スイッチON(Low)
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子 値 内容
CM_ERROR_SUCCESS 0 正常終了
CM_ERROR_NULL_POINTER 5h NULLポインタ検出 CM_ERROR_NOT_SUPPORT 8h 未サポート
CM_ERROR_SUCCESS以外の値が返された場合については、『41ページ 3.9 戻り値一覧』
を参照してください。
【記述例】
デジタル入力接点を読み込みます。
int Ret;
unsigned int Data
Ret = CmInputUP(&Data);
2. CmOutputUP
【機能】
デジタル出力接点を制御します。
【書式】
int CmOutputUP(
unsigned long Data );
【パラメータ】
Data デジタル出力接点データを指定します。各ビットが下記の制御端子に対
応します。
bit31〜bit4 bit3 bit2 bit1 bit0
予約(0を指定してください) DOUT4 DOUT3 DOUT2 DOUT1 0:リレーOFF, 1:リレーON
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子 値 内容
CM_ERROR_SUCCESS 0 正常終了
CM_ERROR_NOT_SUPPORT 8h 未サポート
CM_ERROR_SUCCESS以外の値が返された場合については、『41ページ 3.9 戻り値一覧』を
参照してください。
【記述例】
DOUT1をリレーONに設定します。
int Ret;
Ret = CmOutputUP(0x00000001);
3. CmSetEvent
【機能】
割り込みコールバック関数を登録します。
【書式】
int CmSetEvent(
void (IfCdecl far *CmCallBackProc)(unsigned long), unsigned long User
);
【パラメータ】
CmCallBackProc ユーザ・コールバック関数のアドレスを指定します。
デフォルト:NULL
User コールバック関数へ引き渡すユーザ・データを指定します。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子 値 内容
CM_ERROR_SUCCESS 0 正常終了
CM_ERROR_ALREADY 3h 既にコールバック登録済み。
CM_ERROR_NULL_POINTER 5h NULLポインタ検出
CM_ERROR_NOT_SUPPORT 8h 未サポート
CM_ERROR_SUCCESS以外の値が返された場合については、『41ページ 3.9 戻り値一覧』
を参照してください。
【使用例】
コールバック関数を登録します。
void IfCdecl far lpCmCallBackProc(unsigned long User) {
}
void main(void) {
int Ret;
Ret = CmSetEvent(lpCmCallBackProc, 1);
4. CmKillEvent
【機能】
登録している割り込みコールバックを解除します。
【書式】
int CmKillEvent(void);
【パラメータ】
なし
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子 値 内容
CM_ERROR_SUCCESS 0 正常終了
CM_ERROR_NOT_YET 4h まだコールバック登録していない。
CM_ERROR_NOT_SUPPORT 8h 未サポート
CM_ERROR_SUCCESS以外の値が返された場合については、『41ページ 3.9 戻り値一覧』
を参照してください。
【使用例】
登録している割り込みコールバックを解除します。
int Ret;
Ret = CmKillEvent();
5. CmSetEventMask
【機能】
各コールバックの有効, 無効を設定します。
【書式】
int CmSetEventMask(
unsigned long Mask );
【パラメータ】
Mask 有効にするコールバックを下記の値で指定します。
0を指定すると、全てのコールバックが無効になります。デフォルト は0です。複数の値をORで指定することができます。
(CM_EVENT_FALL_SIGxとCM_EVENT_RISE_SIGxはORで設定でき ません。)
識別子 値 内容
CM_EVENT_FALL_SIG1 00100000h DIN1 High→Low検出を有効にします。
CM_EVENT_RISE_SIG1 00110000h DIN1 Low→High検出を有効にします。
CM_EVENT_FALL_SIG2 00200000h DIN2 High→Low検出を有効にします。
CM_EVENT_RISE_SIG2 00220000h DIN2 Low→High検出を有効にします。
CM_EVENT_FALL_SIG3 00400000h DIN3 High→Low検出を有効にします。
CM_EVENT_RISE_SIG3 00440000h DIN3 Low→High検出を有効にします。
CM_EVENT_FALL_SIG4 00800000h DIN4 High→Low検出を有効にします。
CM_EVENT_RISE_SIG4 00880000h DIN4 Low→High検出を有効にします。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子 値 内容
CM_ERROR_SUCCESS 0 正常終了
CM_ERROR_INVALID_PARAMETER 2h 入力パラメータ不正
CM_ERROR_NULL_POINTER 5h NULLポインタ検出
CM_ERROR_NOT_SUPPORT 8h 未サポート
CM_ERROR_SUCCESS以外の値が返された場合については、『41ページ 3.9 戻り値一覧』
を参照してください。
【使用例】
DIN1 High→Low検出を有効に設定します。
int Ret;
Ret = CmSetEventMask(CM_EVENT_FALL_SIG1);
6. CmGetEventMask
【機能】
現在の割り込みコールバックマスク値を取得します。
【書式】
int CmGetEventMask(
unsigned long* pMask );
【パラメータ】
pMask コールバックマスク格納先です。
CmSetEventMaskで設定した値が取得できます。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子 値 内容
CM_ERROR_SUCCESS 0 正常終了
CM_ERROR_NULL_POINTER 5h NULLポインタ検出
CM_ERROR_NOT_SUPPORT 8h 未サポート
CM_ERROR_SUCCESS以外の値が返された場合については、『41ページ 3.9 戻り値一覧』
を参照してください。
【使用例】
現在の割り込みイベントマスク値を取得します。
int Ret;
unsigned long Mask;
Ret = CmGetEventMask(&Mask);
7. CmGetEventFactor
【機能】
割り込みコールバックの発生要因を取得します。
【書式】
int CmGetEventFactor(
unsigned long* Factor );
【パラメータ】
Factor イベント要因格納先です。
下記の値が取得できます。複数の要因が検出されることもあります。
識別子 値 意味
CM_EVENT_FALL_SIG1 00100000h DIN1 High→Low検出
CM_EVENT_RISE_SIG1 00110000h DIN1 Low→High検出 CM_EVENT_FALL_SIG2 00200000h DIN2 High→Low検出
CM_EVENT_RISE_SIG2 00220000h DIN2 Low→High検出
CM_EVENT_FALL_SIG3 00400000h DIN3 High→Low検出
CM_EVENT_RISE_SIG3 00440000h DIN3 Low→High検出
CM_EVENT_FALL_SIG4 00800000h DIN4 High→Low検出
CM_EVENT_RISE_SIG4 00880000h DIN4 Low→High検出
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子 値 内容
CM_ERROR_SUCCESS 0 正常終了
CM_ERROR_NULL_POINTER 5h NULLポインタ検出
CM_ERROR_NOT_SUPPORT 8h 未サポート
CM_ERROR_SUCCESS以外の値が返された場合については、『41ページ 3.9 戻り値一覧』
を参照してください。
【備考】
・割り込み要因を取得すると、要因はクリアされます。
(本関数を呼び出して要因を取得した後、何も要因が満たされていない状態で再度本関数を呼 び出すと、2回目は要因として0が返されます。)
・割り込み要因を取得する前に、複数回要因が満たされた場合は、1回にまとめられます。
【使用例】
割り込みコールバックの発生要因を取得します。
int Ret;
unsigned long Factor;
8. CmCallBackProc
【機能】
CmSetEventMaskで設定した要因検出時に呼び出されるコールバック関数です。
CmSetEvent関数のパラメータのCmCallBackProcにCmCallBackProc関数へのポインタを設定す ることにより、CmSetEventMaskで設定した要因検出時にCmCallBackProc関数を呼び出すことが できます。発生した要因については、CmGetEventFactor関数で取得することができます。
【書式】
void CmCallBackProc ( unsigned long User );
【パラメータ】
User CmSetEvent関数で指定したユーザ・データを取得できます。
【戻り値】
CmCallBackProc関数は値を返しません。