こちらから

IFCPMGR.LIN
システム監視ライブラリ
エコ Classembly Devices®用 Linux ドライバソフトウェア
Help for Linux
www.interface.co.jp
Help for Linux
目
次
第 1 章 はじめに
1.1
1.2
3
概要 ...........................................................................3
特長 ...........................................................................3
第 2 章 製品仕様
2.1
4
基本仕様 .......................................................................4
第 3 章 実行手順
3.1
3.2
3.3
5
システム監視を行うまで .........................................................5
制御手順 .......................................................................7
RAID ..........................................................................13
第 4 章 リファレンス
4.1
4.2
4.3
4.4
4.5
14
関数一覧 ......................................................................14
関数個別説明 ..................................................................16
コールバック関数 ..............................................................59
構造体説明 ....................................................................60
戻り値一覧 ....................................................................61
第 5 章 サンプルプログラム
5.1
5.2
62
実行方法 ......................................................................62
サンプルプログラム一覧 ........................................................62
第 6 章 ユーティリティ
6.1
6.2
6.3
6.4
Interface
Interface
Interface
Interface
64
Disk Information ....................................................64
HDD Utility .........................................................64
Notification Utility ................................................65
Utility .............................................................67
第 7 章 重要な情報
72
© 2011, 2015 Interface Corporation. All rights reserved.
2
Help for Linux
第1章 はじめに
1.1
概要
本ソフトウェアは、Linux 上のアプリケーションから、弊社エコ Classembly Devices®を監視す
る為のソフトウェアです。
弊社エコ Classembly Devices®を Linux 上のアプリケーションから Lib をダイナミックリンクし、
API をコールすることにより監視します。
本ドキュメントは、Linux 上でシステム監視ライブラリを使用するための情報を掲載しています。
1.2
特長
●ウォッチドッグタイマ(WDT)の開始、停止、周期の設定をソフトウェア上で自由に設定できます。
●WDT が指定した周期時間中にクリアされない場合、CPU リセット、または割り込みイベント通知
のいずれかを選択できます。
●基板温度、メモリ周辺温度を取得できます。
●あらかじめ設定しておいた基板温度上限値、基板温度下限値の超えた場合に割り込みイベント
の通知ができます。
●電源電圧を取得できます。
●あらかじめ設定しておいた電源電圧上限値、電源電圧下限値の超えた場合に割り込みイベント
の通知ができます。
●あらかじめ条件を設定しておくことで、異常時に自動的に RAS 出力することができます。アプ
リケーションで自由に出力を制御することもできます。
●汎用入出力機能をサポートします。
●オプションのバッテリモジュールを接続すると、停電が起きた際の動作を設定できます。また、
バッテリステータスを取得できます。
●バッテリステータスをシミュレーションすることができます。
●マルチプロセスに対応しています。複数のアプリケーションからシステム監視が行えます。
●WDT、温度監視、電源電圧監視、割り込みイベント通知、RAS 出力、汎用デジタル入出力、ブザ
ー出力、バッテリモジュール監視のサンプルプログラムが付属しています。
© 2011, 2015 Interface Corporation. All rights reserved.
3
Help for Linux
第2章 製品仕様
2.1
基本仕様
ドライバ種別
組み込み方式
メジャー番号割り当て
機能
ウォッチドッグ
タイマ(WDT)
温度監視
電源電圧監視
割り込みイベント
(※)
RAS 出力
バッテリ
(オプション)
その他(※)
キャラクタ型ドライバ
モジュール(ダイナミックロード/アンロード)
自動割り当て
・ 設定できる周期:1 秒~255 秒(1 秒単位)
・ 周期満了時の挙動:CPU リセット、割り込みイベント通知の
いずれか
・ 監視対象:基板温度、メモリ周辺温度
・ 温度下限・上限範囲:-60℃~125℃(1℃単位)
(基板温度のみ設定できます)
・ 監視対象:電源電圧
・ 電源電圧下限・上限範囲:DC+0V~DC+32.844V
(0.1288V 単位)
・ WDT 周期満了検出
・ 基板温度上限超え検出
・ 基板温度下限超え検出
・ 電源電圧上限超え検出
・ 電源電圧下限超え検出
・ FAN 異常検出
・ 汎用デジタル入力のスイッチ OFF→ON 検出
・ アプリケーションでの出力制御
・ 条件設定による下記の異常発生時自動出力
WDT 周期満了検出
基板温度上限超え検出
基板温度下限超え検出
電源電圧上限超え検出
電源電圧下限超え検出
FAN 異常検出
・ 監視対象:バッテリステータス
・ 停電時動作
停電発生からシャットダウン開始までの時間:
設定できる範囲 0~255 秒(1 秒単位)
0 を指定すると、シャットダウン/電源強制断を
行いません。
シャットダウン開始から電源強制断までの時間:
設定できる範囲 0~255 秒(1 秒単位)
0 を指定すると、電源強制断を行いません。
・ステータスシミュレーション機能
・ 汎用デジタル入出力
・ ブザー制御
※ご使用のコンピュータのタイプによってはサポートしないモデルもあります。機能の有無はマニュ
アルをご確認ください。
© 2011, 2015 Interface Corporation. All rights reserved.
4
Help for Linux
第3章 実行手順
3.1
システム監視を行うまで
3.1.1
ドライバモジュールの組み込み
システム監視ライブラリの Linux 用ドライバモジュールはシステム起動時に自動的に組み込まれ
ます。
3.1.2
ドライバモジュールの組み込みオプション
ドライバモジュール組み込み時、以下のパラメータを設定することができます。
パラメータ
ifcpmgr_version_disp
brd_temp_lower_limit
brd_temp_upper_limit
power_lower_limit
power_upper_limit
ro_config_enable
ro_config_ctrl
内容
ドライババージョンをシステムログに表示するかを指定します。
0 で非表示、1 で表示します。
デフォルトは表示します。
基板温度監視の下限値を設定します。
設定値は CmSetTempLimitを参照してください。
基板温度監視の上限値を設定します。
設定値は CmSetTempLimitを参照してください。
電源電圧監視の下限値を設定します。
設定値 0~255 で設定します。
0(0V)~power_upper_limit より低い値が設定できます。
設定値が 1 増加する毎に 0.1288V 増加します。
デフォルトは 50(6.9552V)です。
電源電圧監視の上限値を設定します。
設定値 0~255 で設定します。
power_lower_limit より高い値~255(32.844V)が設定できます。
設定値が 1 増加する毎に 0.1288V 増加します。
デフォルトは 210(27.048V)です。
自動 RAS 出力条件を設定します。
設定値は CmSetROConfigを参照してください。
異常時の RAS 出力状態を設定します。
設定値は CmSetPowerLimitを参照してください。
組み込みパラメータを設定するには、/etc/modules の内容を下記のように修正してください。
ifcpmgr brd_temp_lower_limit=10 brd_temp_upper_limit=50
基板温度リミットの下限値を 10℃、上限値を 50℃として設定します。
© 2011, 2015 Interface Corporation. All rights reserved.
5
Help for Linux
3.1.3
プログラムの作成
プログラムの作成を行います。エディタを起動してコードを記述します。
WDT、温度監視、電源電圧監視、割り込みイベント通知、RAS 出力、汎用デジタル入出力、ブザー
出力、電源ボタンフィルタ設定、ディスクスイッチ設定、バッテリモジュール監視のサンプルプ
ログラムを添付していますのでご参照ください。
記載したコードをファイル名 test.c として保存してください。
3.1.4
コンパイル
作成したプログラムをコンパイルします。ifcpmgr の共有ライブラリをリンクする必要がありま
す。下記のコマンドで、実行ファイル test を生成します。
#gcc -o test test.c -lifcpmgr
3.1.5
実行
コンパイルすることで実行ファイル test ができていますので、
#./test
と入力し、プログラムを実行してください。
© 2011, 2015 Interface Corporation. All rights reserved.
6
Help for Linux
3.2
制御手順
基本的な制御の手順は以下の通りです。
3.2.1
WDT
下記の流れで WDT を使用します。
1.WDT の周期、周期満了アクション(CPU リセット、または割り込みイベント通知)を設定。
2.WDT 開始。
3.指定した周期に達する前に WDT クリア。
WDTの周期、周期満了アクションの設定は、CmSetWDTConfigで行います。
unsigned int Ret;
/* 50 秒間クリアされなければ CPU リセットを行う */
Ret = CmSetWDTConfig(50, CM_WDT_ACT_RESET);
WDTの開始は、CmStartWDTで行います。
Ret = CmStartWDT();
WDTのクリアは、CmClearWDTで行います。
Ret = CmClearWDT();
WDTの使用を停止する場合は、CmStopWDTを実行してください。
Ret = CmStopWDT();
WDT周期満了時、CPUリセットの他に、割り込みイベントを通知することができます。詳細は『3.2.4
割り込みイベント』をご参照ください。
WDT の割り込みイベントと CPU リセットの用途は下記を参考にしてください。
WDT 処理
用途
割り込みイベント
アプリケーションの動作異常によるプロセス停止検出を目的としていま
す。
アプリケーションとは別に監視プロセスを作成し、アプリケーションで
WDT の周期的クリアを実行します。監視プロセスには WDT 割り込みイベン
トを登録しておきます。
もしアプリケーションに異常が生じて WDT クリアが途絶えた場合、監視プ
ロセスに割り込みイベントが発生し、アプリケーションの異常を検知でき
ます。
CPU リセット
システム(OS)のフリーズからの自動復旧を目的としています。
© 2011, 2015 Interface Corporation. All rights reserved.
7
Help for Linux
3.2.2
温度監視
基板温度と、メモリ周辺温度を取得することができます。
いずれも CmGetTempを使用します。
unsigned int Ret;
int BrdTemp;
int MemTemp;
/* 基板温度の取得 */
Ret = CmGetTemp(CM_TEMP_TARGET_BRD, &BrdTemp);
/* メモリ周辺温度の取得 */
Ret = CmGetTemp(CM_TEMP_TARGET_MEM, &MemTemp);
取得値は負数になることもあります。単位は℃です。
温度の上限と下限を設定することで、その範囲を超えた場合に、割り込みイベントを通知するこ
とができます。詳細は『3.2.4 割り込みイベント』をご参照ください。
3.2.3
電源電圧監視
電源電圧を取得することができます。
CmGetPowerを使用します。
unsigned int Ret;
float Power;
/* 電源電圧の取得 */
Ret = CmGetPower(CM_POWER_TARGET_EXT, &Power);
電源電圧の上限と下限を設定することで、その範囲を超えた場合に、割り込みイベントを通知す
ることができます。詳細は『3.2.4 割り込みイベント』をご参照ください。
3.2.4
割り込みイベント
割り込みイベントは下記の流れで使用します。
1.各割り込みイベントの条件(WDT 周期、温度上限、下限など)を設定します。
2.割り込みイベント(コールバック関数)を登録します。
3.割り込みイベントマスクを設定し、イベントを有効化します。
上記を行った後、割り込みイベント要因が満たされれば、割り込みイベントが通知されます。
割り込みイベント通知後に、CmGetEventFactor を呼び出さないと次の割り込みイベントは通知さ
れません。
割り込みイベントの登録は CmSetEventで行い、割り込みイベントマスクの設定は CmSetEventMask
で行います。
© 2011, 2015 Interface Corporation. All rights reserved.
8
Help for Linux
イベント発生時にコールバック関数が呼び出される設定例を下記に示します。
(WDT、基板温度上限、基板温度下限、電源電圧上限、電源電圧下限を有効にします。)
/* コールバック関数 */
void UserCallback(void* User)
{
unsigned int Ret;
unsigned int Factor;
/* イベント要因取得 */
Ret = CmGetEventFactor(&Factor, 1);
/* イベントごとの処理 */
…
}
int main(void)
{
unsigned int Ret;
unsigned int Mask;
CM_EVENT_REQ EventReq;
/* 基板温度下限(0℃)、上限(50℃)設定 */
Ret = CmSetTempLimit(CM_TEMP_TARGET_BRD, 0, 50);
/* 電源電圧下限(7.084V)、上限(27.048V)設定 */
Ret = CmSetPowerLimit(CM_POWER_TARGET_EXT, 7.084, 27.048);
/* イベント登録 */
memset(&EventReq, 0, sizeof(CM_EVENT_REQ));
EventReq.CallBackProc = (LPCMCALLBACK)UserCallback;
Ret = CmSetEvent(&EventReq);
/* イベントマスク設定(WDT、基板温度上限・下限、電源電圧上限・下限) */
Mask = CM_EVENT_WDS | CM_EVENT_CPTHS | CM_EVENT_CPTLS |
CM_EVENT_V27HST | CM_EVENT_V27LST;
Ret = CmSetEventMask(&Mask, 1);
…
}
© 2011, 2015 Interface Corporation. All rights reserved.
9
Help for Linux
割り込みイベントの使用終了時は、割り込みマスク設定でイベントを無効化し、CmGetEventFactor
でイベント要因をクリアし、CmKillEventで割り込みイベントを解除してください。
unsigned int Ret;
unsigned int Mask = 0;
unsigned int Factor;
/* 全割り込みを無効化 */
Ret = CmSetEventMask(&Mask, 1);
/* イベント要因クリア */
Ret = CmGetEventFactor(&Factor, 1);
/* 割り込みの解除 */
Ret = CmKillEvent();
3.2.5
RAS 出力
異常検出時に、RAS 出力を行うことができます。
あらかじめ RAS 出力を行う異常検知の種類と、異常時に出力する端子状態を設定しておくことで、
異常検知時に自動的に RAS 出力を行います。
unsigned int Ret;
/* RAS 出力をリレーOFF 状態で初期化 */
Ret = CmControlRO(CM_RO_OFF);
/* WDT タイマと基板温度上限越え時に RAS 出力をリレーON 状態にするように設定 */
Ret = CmSetROConfig(CM_ROCONF_WDS | CM_ROCONF_LCTHS, CM_RO_ON);
CmControlRO 関数により、アプリケーションで自由に RAS 出力を制御することもできます。
RAS出力状態と CmSetROConfigで設定された値はデバイス内蔵ROMに保存され、次回起動時も設定
されます。
ドライバモジュールの組み込みオプションの指定がある場合は指定値に初期化されます。
組み込みオプションの指定方法は『3.1.2ドライバモジュールの組み込みオプション』をご参照く
ださい。
異常時のRAS出力をクリアするには CmControlROを実行しクリアを行って下さい。
© 2011, 2015 Interface Corporation. All rights reserved.
10
Help for Linux
3.2.6
ブザー制御
ブザー出力を行うことができます。
unsigned int ret;
/* ブザーON */
ret = CmControlBuzzer(1);
CmControlBuzzerにより、アプリケーションで自由にブザーを制御することができます。
3.2.7
バッテリモジュール
バッテリモジュールを接続すると、バッテリステータスの取得および、停電が起きた際の動作を
設定できます。(バッテリモジュール接続時のみ使用できます。)
CmSetPowerOffTime で停電発生からシャットダウン開始までの時間と、シャットダウン開始から
電源強制断までの時間を秒単位で設定できます。
unsigned int Ret;
/* 停電発生~シャットダウン開始 16 秒 */
/* シャットダウン開始~電源強制断 180 秒 */
Ret = CmSetPowerOffTime(16, 180);
工場出荷時、停電発生~シャットダウン開始までの時間は 16 秒、シャットダウン開始から電源強
制断までの時間は 180 秒です。
CmSetPowerOffTimeで設定された値はデバイス内蔵ROMに保存され、次回起動時も設定値は保持さ
れます。
CmGetBatStatus でバッテリステータスを取得できます。
unsigned int Ret;
unsigned int Status;
/* バッテリステータスの取得 */
Ret = CmGetBatStatus(&Status);
© 2011, 2015 Interface Corporation. All rights reserved.
11
Help for Linux
バッテリステータスは、CmSetBatSimStatusでシミュレーションすることができます。
シミュレーション機能を有効にすると、CmGetBatStatusを呼び出した際、バッテリモジュールの
実際のステータスではなく、CmSetBatSimStatusで設定したシミュレーションステータス値が取得
できるようになります。
unsigned int Ret;
unsigned int Status;
/* 現在のバッテリステータスの取得 */
Ret = CmGetBatStatus(&Status);
/* バッテリのシミュレーション機能を有効にする(ERR ビットをシミュレーション) */
Ret = CmSetBatSimStatus(CM_BAT_SIM_ON, (Status | 0x80));
…
/* バッテリのシミュレーション機能を無効に戻す */
Ret = CmSetBatSimStatus(CM_BAT_SIM_OFF, 0);
シミュレーションの設定は、CmGetBatSimStatusで取得することができます。
本機能は取得するステータスのみをシミュレーションします。例えば、バッテリステータスを「放
電中」に設定したとしても、CmSetPowerOffTimeで設定された時間後に、シャットダウン/電源強
制断は発生しません。
また、バッテリ機能を有効にしたまま OS を再起動した場合、次回起動時にシミュレーション機能
は無効に戻ります。
© 2011, 2015 Interface Corporation. All rights reserved.
12
Help for Linux
3.3
RAID
RAID1 モデルでは softwareRAID による、RAID1 (ミラーリング)構成となっています。
(HDD1, HDD2:RAID1 HDD3:スペア)
以下は「mdadm」コマンドを使用した、RAID の操作方法です。
※RAID1 モデルのルートファイルシステムは md0、Swap は md1 に設定されています。
・RAID アレイへメンバの追加
ECC-CD:#mdadm /dev/md0 –a /dev/sdb1
RAID アレイが不良状態だった場合は再構築を開始します。
正常状態の場合は、Spare が追加されます。
追加するメンバは、同じパーティションサイズである必要があります。
※ルートファイルシステムのパーティションはブートフラグを立ててください。
・RAID アレイからメンバの削除
ECC-CD:#mdadm /dev/md0 -r /dev/sdb1
削除が行なえるディスクは、不良状態であるディスクか Spare ディスクです。
・RAID 状態の表示
ECC-CD:#mdadm –D /dev/md0
RAID アレイの詳細な情報を表示します。
・異常発生時のメール送信
自動的にメール送信を行うことができます。
/etc/mdadm/mdadm.conf ファイル内の MAILADDR と書かれている行を変更します。
「root」を「送信先」に変更してください。
MAILADDR root
コマンドラインから実行した場合
ECC-CD:#mdadm –F -s –m 送信先
※メールサーバソフトの設定が別途必要です。
・異常発生時のプログラム実行
自動的にプログラムを起動することができます。
/etc/mdadm/mdadm.conf ファイル内に PROGRAM を追加します。
PROGRAM プログラム名
※初期状態では PROGRAM の設定はありません。
コマンドラインから実行した場合
ECC-CD:#mdadm –F -s –p プログラム名
mdadm の詳細については、mdadm の web site をご参照してください。
© 2011, 2015 Interface Corporation. All rights reserved.
13
Help for Linux
第4章 リファレンス
4.1
関数一覧
No
関数名
●WDT
1
CmSetWDTConfig
2
CmGetWDTConfig
3
CmStartWDT
4
CmStopWDT
5
CmClearWDT
●温度監視
6
CmGetTemp
7
CmSetTempLimit
8
CmGetTempLimit
●電源監視
9
CmGetPower
10 CmSetPowerLimit
11 CmGetPowerLimit
●RAS 出力
12 CmControlRO
13 CmSetROConfig
14 CmGetROConfig
●汎用入出力
15 CmInputUP
16 CmOutputUP
●ステータス
17 CmGetSpecifiedStatus
●割り込みイベント
18 CmSetEvent
19 CmKillEvent
20 CmSetEventMask
21 CmGetEventMask
22 CmGetEventFactor
●ブザー
23 CmControlBuzzer
24 CmGetBuzzerStatus
機能
周期、周期満了時のアクション設定を行います。
周期、周期満了時のアクションの取得を行います。
WDT を開始します。
WDT を停止します。
WDT のクリアを行います。
現在の指定対象の温度を取得します。
指定対象の監視温度下限、上限を設定します。
指定対象の監視温度下限、上限を取得します。
電源電圧を取得します。
指定対象の監視電源電圧下限、上限を設定します。
指定対象の監視電源電圧下限、上限を取得します。
RAS 出力状態を制御します。
自動 RAS 出力の異常条件、異常時の RAS 出力状態を設定します。
自動 RAS 出力の異常条件、異常時の RAS 出力状態を取得します。
汎用入力接点を読み込みます。
汎用出力接点を制御します。
要求した各種ステータスのみを取得します。
割り込みイベントを登録します。
割り込みイベントを削除します。
割り込みイベントマスクを設定します。
割り込みイベントマスクを取得します。
割り込みイベント要因を取得します。
ブザーを制御します。
ブザーの状態を取得します。
© 2011, 2015 Interface Corporation. All rights reserved.
14
Help for Linux
●バッテリ
25 CmGetBatStatus
26 CmSetPowerOffTime
27 CmGetPowerOffTime
28 CmSetBatSimStatus
29 CmGetBatSimStatus
●LED
30 CmControlLed
31 CmGetLedStatus
●情報取得
32 CmGetDeviceInfo
バッテリステータスを取得します。
停電発生からシャットダウン/電源強制断までの時間を設定します。
停電発生からシャットダウン/電源強制断までの時間を取得します。
バッテリのシミュレーション機能を設定します。
現在のバッテリシミュレーション設定を取得します。
LED を制御します。
現在の LED 状態を取得します。
現在の DSW の状態を取得します。
© 2011, 2015 Interface Corporation. All rights reserved.
15
Help for Linux
4.2
関数個別説明
1. CmSetWDTConfig
【機能】
WDT の周期、および周期満了時のアクションを設定します。
【書式】
unsigned int CmSetWDTConfig(
unsigned int Cycle,
unsigned int Action
);
【パラメータ】
Cycle
WDT の周期を設定します。設定できる範囲は 1~255 で、単位は秒です。
デフォルトは 30 です。
Action
WDT 周期満了時のアクションを指定します。
下記の値が指定できます。デフォルトは CM_WDT_ACT_INTERRUPT です。
識別子
値
意味
CM_WDT_ACT_INTERRUPT
0
周期満了時に割り込みイベントを発生させます。
CM_WDT_ACT_RESET
1
周期満了時に CPU リセットを起こします。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_INVALID_PARAMETER C0000002h
IFCM_ERROR_INVALID_HANDLE
C0000007h
内容
正常終了
内部エラー
入力パラメータ不正
内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【備考】
・WDT 動作中に、本関数を実行すると、新しく設定した周期で、再度カウントし直します。
・複数の異なるアプリケーションで本関数を実行した場合、最後に設定した周期、アクション
が有効となります。
【使用例】
unsigned int Ret;
Ret = CmSetWDTConfig(50, CM_WDT_ACT_RESET);
WDT 周期を 50 秒、アクションを CPU リセットに設定します。
© 2011, 2015 Interface Corporation. All rights reserved.
16
Help for Linux
2. CmGetWDTConfig
【機能】
現在の WDT の周期、および周期満了時のアクションを取得します。
【書式】
unsigned int CmGetWDTConfig(
unsigned int*
pCycle,
unsigned int*
pAction
);
【パラメータ】
pCycle
WDT の周期格納先です。
pAction
WDT 周期満了時のアクション格納先です。
CmSetWDTConfigで設定できる値が取得できます。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_NULL_POINTER
C0000005h
IFCM_ERROR_INVALID_HANDLE
C0000007h
内容
正常終了
内部エラー
NULL ポインタ検出
内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
unsigned int Cycle;
unsigned int Action;
Ret = CmGetWDTConfig(&Cycle, &Action);
WDT 周期とアクションを取得します。
© 2011, 2015 Interface Corporation. All rights reserved.
17
Help for Linux
3. CmStartWDT
【機能】
WDT のカウントを開始します。
【書式】
●C 言語
unsigned int CmStartWDT(void);
【パラメータ】
なし
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_ALREADY
C0000003h
IFCM_ERROR_INVALID_HANDLE
C0000007h
内容
正常終了
内部エラー
既に動作中
内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【備考】
一度 WDT を停止させた後、再度本関数を実行した場合、カウント数は最初からカウントし直さ
れます。
【使用例】
unsigned int Ret;
Ret = CmStartWDT();
WDT のカウントを開始します。
© 2011, 2015 Interface Corporation. All rights reserved.
18
Help for Linux
4. CmStopWDT
【機能】
WDT のカウントを停止します。
【書式】
unsigned int CmStopWDT(void);
【パラメータ】
なし
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_NOT_YET
C0000004h
IFCM_ERROR_INVALID_HANDLE
C0000007h
内容
正常終了
内部エラー
まだ動作していない
内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
Ret = CmStopWDT();
WDT のカウントを停止します。
© 2011, 2015 Interface Corporation. All rights reserved.
19
Help for Linux
5. CmClearWDT
【機能】
WDT のカウントをクリアします。
クリアすると設定した周期の値でカウントし直します。
【書式】
unsigned int CmClearWDT(void);
【パラメータ】
なし
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_NOT_YET
C0000004h
IFCM_ERROR_INVALID_HANDLE
C0000007h
内容
正常終了
内部エラー
まだ動作していない
内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
Ret = CmClearWDT();
WDT のカウントをクリアします。
© 2011, 2015 Interface Corporation. All rights reserved.
20
Help for Linux
6. CmGetTemp
【機能】
指定対象の温度を取得します。
【書式】
unsigned int CmGetTemp(
unsigned int
Target,
int*
pTemp
);
【パラメータ】
Target
温度を取得する対象を指定します。
下記の値が指定できます。
識別子
値
意味
CM_TEMP_TARGET_BRD
1
基板温度を取得します。
CM_TEMP_TARGET_MEM
2
メモリ周辺温度を取得します。
pTemp
温度格納先です。
負数が得られることもあります。単位は℃です。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_INVALID_PARAMETER C0000002h
IFCM_ERROR_NULL_POINTER
C0000005h
IFCM_ERROR_INVALID_HANDLE
C0000007h
内容
正常終了
内部エラー
入力パラメータ不正
NULL ポインタ検出
内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
int BrdTemp;
Ret = CmGetTemp(CM_TEMP_TARGET_BRD, &BrdTemp);
現在の基板温度を取得します。
© 2011, 2015 Interface Corporation. All rights reserved.
21
Help for Linux
7. CmSetTempLimit
【機能】
指定対象の監視温度の上限、下限を設定します。
ここで設定した範囲を超えた場合に、割り込みイベントを通知することができます。
【書式】
unsigned int CmSetTempLimit(
unsigned int Target,
int
LowerLimit,
int
UpperLimit
);
【パラメータ】
Target
温度監視を設定する対象を指定します。
下記の値が指定できます。
識別子
値
意味
CM_TEMP_TARGET_BRD
1
基板の監視温度を設定します。
LowerLimit
監視温度の下限値です。-60~UpperLimit より小さい値が設定できます。
(-60 <= 設定できる値 < UpperLimit)
デフォルトは 0 です。単位は℃です。
UpperLimit
監視温度の上限値です。LowerLimit より大きい値~125 が設定できます。
(LowerLimit < 設定できる値 <= 125)
デフォルトは 80 です。単位は℃です。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_INVALID_PARAMETER C0000002h
IFCM_ERROR_INVALID_HANDLE
C0000007h
内容
正常終了
内部エラー
入力パラメータ不正
内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、
『4.5 戻り値一覧』をご参照ください。
© 2011, 2015 Interface Corporation. All rights reserved.
22
Help for Linux
【備考】
・複数の異なるアプリケーションで本関数を実行した場合、最後に設定した上限、下限が有効と
なります。
・温度の上限、下限を組み込みオプションで指定する事ができます。組み込みオプションの指定
方法は『3.1.2ドライバモジュールの組み込みオプション』をご参照ください。
【注意】
ここで設定できる値は、本ソフトウェアで監視できる値です。ここで設定できる範囲がハード
ウェアの保証温度ではありませんのでご注意ください。
【使用例】
unsigned int Ret;
Ret = CmSetTempLimit(CM_TEMP_TARGET_BRD, 0, 50);
基板監視温度の下限を 0℃、上限を 50℃に設定します。
© 2011, 2015 Interface Corporation. All rights reserved.
23
Help for Linux
8. CmGetTempLimit
【機能】
指定対象の監視温度の上限、下限を取得します。
【書式】
unsigned int CmGetTempLimit(
unsigned int Target,
int*
pLowerLimit,
int*
pUpperLimit
);
【パラメータ】
Target
温度監視を取得する対象を指定します。
下記の値が指定できます。
識別子
値
意味
CM_TEMP_TARGET_BRD
1
基板の監視温度を取得します。
pLowerLimit
監視温度の下限値の格納先です。-60~UpperLimit より小さい値が取得されます。
単位は℃です。
pUpperLimit
監視温度の上限値の格納先です。LowerLimit より大きい値~125 が取得されます。
単位は℃です。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_NULL_POINTER
C0000005h
IFCM_ERROR_INVALID_HANDLE
C0000007h
内容
正常終了
内部エラー
NULL ポインタ検出
内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
int LowerLimit;
int UpperLimit;
Ret = CmGetTempLimit(CM_TEMP_TARGET_BRD, &LowerLimit, &UpperLimit);
基板温度の下限、上限を取得します。
© 2011, 2015 Interface Corporation. All rights reserved.
24
Help for Linux
9. CmGetPower
【機能】
電源電圧を取得します。
【書式】
unsigned int CmGetPower(
unsigned int Target,
float*
pPower
);
【パラメータ】
Target
電圧を取得する対象を指定します。
現状では下記の値のみが指定できます。
識別子
値
意味
CM_POWER_TARGET_EXT
0
電源電圧を取得します。
pPower
電圧値格納先です。単位は V です。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_INVALID_PARAMETER C0000002h
IFCM_ERROR_NULL_POINTER
C0000005h
IFCM_ERROR_INVALID_HANDLE
C0000007h
内容
正常終了
内部エラー
入力パラメータ不正
NULL ポインタ検出
内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
float Power;
Ret = CmGetPower(CM_POWER_TARGET_EXT, &Power);
現在の電源電圧値を取得します。
© 2011, 2015 Interface Corporation. All rights reserved.
25
Help for Linux
10. CmSetPowerLimit
【機能】
指定対象の電圧監視の上限、下限を設定します。
ここで設定した範囲を超えた場合に、割り込みイベントを通知することができます。
【書式】
unsigned int CmSetPowerLimit(
unsigned int Target,
float
LowerLimit,
float
UpperLimit
);
【パラメータ】
Target
監視電圧を設定する対象を指定します。
下記の値が指定できます。
識別子
値
意味
CM_POWER_TARGET_EXT
0
電源電圧監視を設定します。
LowerLimit
電圧監視の下限値です。0~UpperLimit より小さい値が設定できます。
(0 <= 設定できる値 < UpperLimit)
デフォルトは 6.9552 です。単位は V です。
設定値は 0.1288V 単位に切り捨てられます。
例)10V に設定した場合は 9.9176V に設定されます。
UpperLimit
電圧監視の上限値です。LowerLimit より大きい値~32.844 が設定できます。
(LowerLimit < 設定できる値 <= 32.844)
デフォルトは 27.048 です。単位は V です。
設定値は 0.1288V 単位に切り捨てられます。
例)25V に設定した場合は 24.9872V に設定されます。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_INVALID_PARAMETER C0000002h
IFCM_ERROR_INVALID_HANDLE
C0000007h
内容
正常終了
内部エラー
入力パラメータ不正
内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
© 2011, 2015 Interface Corporation. All rights reserved.
26
Help for Linux
【備考】
複数の異なるアプリケーションで本関数を実行した場合、最後に設定した上限、下限が有効と
なります。
電圧の上限、下限を組み込みオプションで指定する事ができます。組み込みオプションの指定
方法は『3.1.2ドライバモジュールの組み込みオプション』をご参照ください。
【注意】
ここで設定できる値は、本ソフトウェアで監視できる値です。ここで設定できる範囲がハード
ウェアの保証電圧ではありませんのでご注意ください。
【使用例】
unsigned int Ret;
Ret = CmSetPowerLimit(CM_POWER_TARGET_EXT, 7.084, 27.048);
電圧監視の下限を 7.084V、上限を 27.048V に設定します。
© 2011, 2015 Interface Corporation. All rights reserved.
27
Help for Linux
11. CmGetPowerLimit
【機能】
指定対象の電圧監視の上限、下限を取得します。
【書式】
unsigned int CmGetPowerLimit(
unsigned int Target,
float*
pLowerLimit,
float*
pUpperLimit
);
【パラメータ】
Target
電圧監視を取得する対象を指定します。
下記の値が指定できます。
識別子
値
意味
CM_POWER_TARGET_EXT
0
電源電圧監視を取得します。
pLowerLimit
電圧監視の下限値の格納先です。0~UpperLimit より小さい値が取得されます。
単位は V です。
pUpperLimit
電圧監視の上限値の格納先です。LowerLimit より大きい値~32.844 が取得されます。
単位は V です。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_NULL_POINTER
C0000005h
IFCM_ERROR_INVALID_HANDLE
C0000007h
内容
正常終了
内部エラー
NULL ポインタ検出
内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
float LowerLimit;
float UpperLimit;
Ret = CmGetPowerLimit(CM_POWER_TARGET_EXT, &LowerLimit, &UpperLimit);
電圧監視の下限、上限を取得します。
© 2011, 2015 Interface Corporation. All rights reserved.
28
Help for Linux
12. CmControlRO
【機能】
RAS 出力端子を制御します。
【書式】
unsigned int CmControlRO(
unsigned int
Ctrl
);
【パラメータ】
Ctrl
RAS 出力の制御値を指定します。下記の値が指定できます。
識別子
値
意味
CM_RO_OFF
0
RAS 出力をリレーOFF に設定します。
CM_RO_ON
1
RAS 出力をリレーON に設定します。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_INVALID_PARAMETER C0000002h
IFCM_ERROR_INVALID_HANDLE
C0000007h
内容
正常終了
内部エラー
入力パラメータ不正
内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【備考】
RAS 出力状態はデバイス内蔵 ROM に保存され、次回起動時も設定されます。
ドライバモジュールの組み込みオプションの指定がある場合は指定値に初期化されます。
組み込みオプションの指定方法は『3.1.2ドライバモジュールの組み込みオプション』をご参照
ください。
【使用例】
unsigned int Ret;
Ret = CmControlRO(CM_RO_ON);
RAS 出力をリレーON に設定します。
© 2011, 2015 Interface Corporation. All rights reserved.
29
Help for Linux
13. CmSetROConfig
【機能】
自動 RAS 出力条件と、異常時の RAS 出力状態を設定します。
【書式】
unsigned int CmSetROConfig(
unsigned int
Enable,
unsigned int
Ctrl
);
【パラメータ】
Enable
自動 RAS 出力する異常条件を設定します。
下記の値が設定できます。複数の条件を OR で設定することもできます。
工場出荷時は 0 です。
識別子
値
意味
CM_ROCONF_WDS
1h
WDT 周期満了時に RAS 出力を行います。
CM_ROCONF_LCTHS
8h
基板温度上限超え時に RAS 出力を行います。
CM_ROCONF_LCTLS
10h
基板温度下限超え時に RAS 出力を行います。
CM_ROCONF_TFANST
20000000h FAN 異常発生時に RAS 出力を行います。
CM_ROCONF_V27HST
40000000h 電源電圧上限超え時に RAS 出力を行います。
CM_ROCONF_V27LST
80000000h 電源電圧下限超え時に RAS 出力を行います。
Ctrl
異常時に RAS 出力する端子状態を設定します。
下記の値が使用できます。
工場出荷時は 0 です。
識別子
値
意味
CM_RO_OFF
0
異常検知時に RAS 出力をリレーOFF に設定します。
CM_RO_ON
1
異常検知時に RAS 出力をリレーON に設定します。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
内容
IFCM_ERROR_SUCCESS
0
正常終了
IFCM_ERROR_INTERNAL
C0000001h 内部エラー
IFCM_ERROR_INVALID_HANDLE
C0000007h 内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
© 2011, 2015 Interface Corporation. All rights reserved.
30
Help for Linux
【備考】
・本関数で設定された値はデバイス内蔵 ROM に保存され、次回起動時も設定値は保持されます。
ドライバモジュールの組み込みオプションの指定がある場合は指定値に初期化されます。
組み込みオプションの指定方法は『3.1.2ドライバモジュールの組み込みオプション』をご参
照ください。
・異常時の RAS 出力をクリアするには CmControlRO 関数を実行しクリアを行って下さい。
【注意】
FAN の設定は FAN 搭載モデルでのみ使用して下さい。
【使用例】
unsigned int Ret;
Ret = CmSetROConfig(CM_ROCONF_WDS | CM_ROCONF_V27HST, CM_RO_ON);
WDT 異常、電源電圧上限超え異常時に RAS 出力をリレーON にします。
© 2011, 2015 Interface Corporation. All rights reserved.
31
Help for Linux
14. CmGetROConfig
【機能】
自動 RAS 出力条件と、異常時の RAS 出力状態を取得します。
【書式】
unsigned int CmGetROConfig(
unsigned int* pEnable,
unsigned int* pCtrl
);
【パラメータ】
pEnable
RAS出力する異常条件格納先です。
CmSetROConfigで設定した値が取得できます。
pCtrl
異常時にRAS出力する端子状態の格納先です。
CmSetROConfigで設定した値が取得できます。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_NULL_POINTER
C0000005h
IFCM_ERROR_INVALID_HANDLE
C0000007h
内容
正常終了
内部エラー
NULL ポインタ検出
内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
unsigned int Enable;
unsigned int Ctrl;
Ret = CmGetROConfig(&Enable, &Ctrl);
現在の RAS 出力条件、異常時の RAS 出力設定を取得します。
© 2011, 2015 Interface Corporation. All rights reserved.
32
Help for Linux
15. CmInputUP
【機能】
汎用入力接点を読み込みます。
(汎用入出力機能をサポートしているハードウェアのみ使用できます。機能の有無はマニュアル
をご確認ください。)
【書式】
unsigned int CmInputUP(
unsigned int* pData
);
【パラメータ】
pData
汎用入力接点状態の格納先です。各ビットが下記の端子状態を示します。
bit31~bit16
bit15 bit14 bit13 bit12 bit11 bit10
予約(値は無視してください) DIN16 DIN15 DIN14 DIN13 DIN12 DIN11
bit7
bit6
bit5
DIN8
DIN7
DIN6
0:スイッチ OFF、1:スイッチ ON
bit4
DIN5
bit3
DIN4
bit2
DIN3
bit1
DIN2
bit9
DIN10
bit8
DIN9
bit0
DIN1
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
内容
IFCM_ERROR_SUCCESS
0
正常終了
IFCM_ERROR_NULL_POINTER
C0000005h NULL ポインタ検出
IFCM_ERROR_NOT_SUPPORT
C0000008h サポートされていません
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
unsigned int Data;
Ret = CmInputUP(&Data);
汎用入力接点を読み込みます。
© 2011, 2015 Interface Corporation. All rights reserved.
33
Help for Linux
16. CmOutputUP
【機能】
汎用出力接点を制御します。
(汎用入出力機能をサポートしているハードウェアのみ使用できます。機能の有無はマニュアル
をご確認ください。)
【書式】
unsigned int CmOutputUP(
unsigned int
Data
);
【パラメータ】
Data
汎用出力接点データを指定します。各ビットが下記の制御端子に対応します。
bit31~bit16
bit15
bit14
bit13
bit12
bit11
bit10
bit9
予約
DOUT16 DOUT15 DOUT14 DOUT13 DOUT12 DOUT11 DOUT10
bit7
bit6
bit5
DOUT8
DOUT7
DOUT6
0:スイッチ OFF、1:スイッチ ON
bit4
DOUT5
bit3
DOUT4
bit2
DOUT3
bit1
DOUT2
bit8
DOUT9
bit0
DOUT1
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
内容
IFCM_ERROR_SUCCESS
0
正常終了
IFCM_ERROR_NOT_SUPPORT
C0000008h サポートされていません
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
Ret = CmOutputUP(0x00000001);
DOUT1 をリレーON に設定します。
© 2011, 2015 Interface Corporation. All rights reserved.
34
Help for Linux
17. CmGetSpecifiedStatus
【機能】
現在のステータスを指定したビット分だけ取得します。
【書式】
unsigned int CmGetSpecifiedStatus(
unsigned int* pStatus
);
【パラメータ】
pStatus
あらかじめ取得したいステータスビットを 1 にして渡します。予約ビットには 0 を指定し
て下さい。
関数が正常終了すると、
あらかじめ 1 にしておいたビット位置のステータスが返されます。
それ以外のビットは 0 が返ります。
bit31 bit30 bit29
bit28~bit12
bit11 bit10 bit9
bit8 bit7~bit0
RAIDV3 RAIDV2 RAIDV1
予約
C_FAN
FAN
RAS0
WDTE
予約
WDTE
: WDT の動作状態を取得できます。
0:WDT 有効
1:WDT 無効
RASO
: RAS 出力状態を取得できます。
0:リレーOFF
1:リレーON
FAN
: 現在の FAN の稼動状態が取得できます。
0:FAN 停止
1:FAN 稼動中
C_FAN : 温度拡張モデルにおいて低温で FAN 停止したかを取得できます。
0:低温でない場合の回転停止か回転中
1:低温での FAN 強制停止
RAIDV1 : 現在の RAID ボリューム(一番目)の状態を取得できます。
0:異常状態、ボリュームが無い、認識できない状態
1:正常に稼動中
RAIDV2 : 現在の RAID ボリューム(二番目)の状態を取得できます。
0:異常状態、ボリュームが無い、認識できない状態
1:正常に稼動中
RAIDV3 : 現在の RAID ボリューム(三番目)の状態を取得できます。
0:異常状態、ボリュームが無い、認識できない状態
1:正常に稼動中
© 2011, 2015 Interface Corporation. All rights reserved.
35
Help for Linux
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_NULL_POINTER
C0000005h
IFCM_ERROR_INVALID_HANDLE
C0000007h
内容
正常終了
内部エラー
NULL ポインタ検出
内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
unsigned int Status;
Status = 0x00000300;
Ret = CmGetStatus(&Status);
現在の WDT と RAS 出力状態を取得します。
© 2011, 2015 Interface Corporation. All rights reserved.
36
Help for Linux
18. CmSetEvent
【機能】
割り込みイベント(コールバック関数)を登録します。
【書式】
unsigned int CmSetEvent(
PCM_EVENT_REQ pEvent
);
【パラメータ】
pEvent
イベント登録用構造体を指定します。
詳細は『4.4.1 CM_EVENT_REQ』をご参照ください。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_ALREADY
C0000003h
IFCM_ERROR_NULL_POINTER
C0000005h
IFCM_ERROR_NOT_ALLOCATE
C0000006h
IFCM_ERROR_INVALID_HANDLE
C0000007h
内容
正常終了
既にイベント登録済み
NULL ポインタ検出
メモリ確保失敗
内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【備考】
1 つのアプリケーションにつき、1 つのイベントを登録できます。
コールバック関数についての詳細は『4.3 コールバック関数』をご参照ください。
© 2011, 2015 Interface Corporation. All rights reserved.
37
Help for Linux
【使用例】
/* コールバック関数 */
void event_func(void* user)
{
…
}
int main(void)
{
unsigned int Ret;
CM_EVENT_REQ EventReq;
…
EventReq.Signal = NULL;
EventReq.Wnd = NULL;
EventReq.Msg = 0;
EventReq.CallBackProc = event_func;
EventReq.User = NULL;
Ret = CmSetEvent(&EventReq);
…
return 0;
}
コールバック関数を登録します。
© 2011, 2015 Interface Corporation. All rights reserved.
38
Help for Linux
19. CmKillEvent
【機能】
登録している割り込みイベントを解除します。
【書式】
unsigned int CmKillEvent(void);
【パラメータ】
なし
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
内容
IFCM_ERROR_SUCCESS
0
正常終了
IFCM_ERROR_NOT_YET
C0000004h まだ動作していない
IFCM_ERROR_INVALID_HANDLE
C0000007h 内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
Ret = CmKillEvent();
割り込みイベントを解除します。
© 2011, 2015 Interface Corporation. All rights reserved.
39
Help for Linux
20. CmSetEventMask
【機能】
割り込みイベントマスクを設定し、各イベントの有効、無効を設定します。
【書式】
unsigned int CmSetEventMask(
unsigned int* pMask,
unsigned int Count
);
【パラメータ】
pMask
有効にするイベントを下記の値で指定します。
0 を指定すると、すべてのイベントが無効になります。デフォルトは 0 です。
複数の値を OR で指定することができます。
CM_EVENT_SIGx と CM_EVENT_RISE_SIGx は OR で設定できません。
同時に設定した場合は CM_EVENT_RISE_SIGx が優先されます。
※CM_EVENT_RISE_SIGx の設定はエコ 2 モデルでのみ使用できます。
要素 1
識別子
CM_EVENT_WDS
CM_EVENT_LCTHS
CM_EVENT_LCTLS
CM_EVENT_FALL_SIG1
CM_EVENT_FALL_SIG2
CM_EVENT_FALL_SIG3
CM_EVENT_FALL_SIG4
CM_EVENT_FALL_SIG5
CM_EVENT_FALL_SIG6
CM_EVENT_FALL_SIG7
CM_EVENT_FALL_SIG8
CM_EVENT_TFANST
CM_EVENT_V27HST
CM_EVENT_V27LST
値
1h
8h
10h
100000h
200000h
400000h
800000h
1000000h
2000000h
4000000h
8000000h
20000000h
40000000h
80000000h
意味
WDT 周期満了イベントを有効にします。
基板温度上限超えイベントを有効にします。
基板温度下限超えイベントを有効にします。
DIN1 OFF→ON 検出イベントを有効にします。
DIN2 OFF→ON 検出イベントを有効にします。
DIN3 OFF→ON 検出イベントを有効にします。
DIN4 OFF→ON 検出イベントを有効にします。
DIN5 OFF→ON 検出イベントを有効にします。
DIN6 OFF→ON 検出イベントを有効にします。
DIN7 OFF→ON 検出イベントを有効にします。
DIN8 OFF→ON 検出イベントを有効にします。
FAN 異常発生イベントを有効にします。
電源電圧上限超えイベントを有効にします。
電源電圧下限超えイベントを有効にします。
© 2011, 2015 Interface Corporation. All rights reserved.
40
Help for Linux
要素 2
識別子
CM_EVENT_RISE_SIG1
CM_EVENT_RISE_SIG2
CM_EVENT_RISE_SIG3
CM_EVENT_RISE_SIG4
CM_EVENT_RISE_SIG5
CM_EVENT_RISE_SIG6
CM_EVENT_RISE_SIG7
CM_EVENT_RISE_SIG8
値
100000h
200000h
400000h
800000h
1000000h
2000000h
4000000h
8000000h
DIN1
DIN2
DIN3
DIN4
DIN5
DIN6
DIN7
DIN8
意味
ON→OFF 検出イベントを有効にします。
ON→OFF 検出イベントを有効にします。
ON→OFF 検出イベントを有効にします。
ON→OFF 検出イベントを有効にします。
ON→OFF 検出イベントを有効にします。
ON→OFF 検出イベントを有効にします。
ON→OFF 検出イベントを有効にします。
ON→OFF 検出イベントを有効にします。
Count
pMask の要素数である 2 を指定して下さい。
互換のため 1 を指定することが出来ます。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INVALID_PARAMETER C0000002h
IFCM_ERROR_INVALID_HANDLE
C0000007h
IFCM_ERROR_NOT_SUPPORT
C0000008h
内容
正常終了
入力パラメータ不正
内部エラー
サポートされていません
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【備考】
・1 つのアプリケーションにつき、1 つのイベントマスク値を設定できます。
(異なるアプリケーションでは、異なるイベントマスク値が使用できます。)
・複数のアプリケーションで同じイベントを有効にしている場合、イベント要因が満たされる
と、どちらのアプリケーションにも割り込みイベントが通知されます。
【注意】
・FAN の設定は FAN 搭載モデルでのみ使用して下さい。
・CM_EVENT_RISE_SIGx の設定はエコ 2 モデルでのみ使用できます。
【使用例】
unsigned int Ret;
unsigned int Mask[2] = {CM_EVENT_WDS | CM_EVENT_V27HST, 0};
Ret = CmSetEventMask(Mask, 2);
WDT イベント、電源電圧上限超えイベントを有効にします。
© 2011, 2015 Interface Corporation. All rights reserved.
41
Help for Linux
21. CmGetEventMask
【機能】
現在の割り込みイベントマスク値を取得します。
【書式】
unsigned int CmGetEventMask(
unsigned int* pMask
unsigned int Count
);
【パラメータ】
pMask
イベントマスク格納先です。
CmSetEventMaskで設定した値が取得できます。
Count
pMask の要素数である 2 を指定して下さい。
互換のため 1 を指定することが出来ます。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
内容
IFCM_ERROR_SUCCESS
0
正常終了
IFCM_ERROR_NULL_POINTER
C0000005h NULL ポインタ検出
IFCM_ERROR_INVALID_HANDLE
C0000007h 内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
unsigned int Mask[2];
Ret = CmGetEventMask(Mask, 2);
現在のイベントマスク値を取得します。
© 2011, 2015 Interface Corporation. All rights reserved.
42
Help for Linux
22. CmGetEventFactor
【機能】
割り込みイベントの発生要因を取得します。
【書式】
unsigned int CmGetEventFactor(
unsigned int* pFactor
unsigned int
Count
);
【パラメータ】
pFactor
イベント要因格納先です。
下記の値が取得できます。複数の要因が検出されることもあります。
要素 1
識別子
CM_EVENT_WDS
CM_EVENT_LCTHS
CM_EVENT_LCTLS
CM_EVENT_FALL_SIG1
CM_EVENT_FALL_SIG2
CM_EVENT_FALL_SIG3
CM_EVENT_FALL_SIG4
CM_EVENT_FALL_SIG5
CM_EVENT_FALL_SIG6
CM_EVENT_FALL_SIG7
CM_EVENT_FALL_SIG8
CM_EVENT_TFANST
CM_EVENT_V27HST
CM_EVENT_V27LST
値
1h
8h
10h
100000h
200000h
400000h
800000h
1000000h
2000000h
4000000h
8000000h
20000000h
40000000h
80000000h
意味
WDT 周期満了イベント
基板温度上限超えイベント
基板温度下限超えイベント
DIN1 OFF→ON 検出イベント
DIN2 OFF→ON 検出イベント
DIN3 OFF→ON 検出イベント
DIN4 OFF→ON 検出イベント
DIN5 OFF→ON 検出イベント
DIN6 OFF→ON 検出イベント
DIN7 OFF→ON 検出イベント
DIN8 OFF→ON 検出イベント
FAN 異常発生イベント
電源電圧上限超えイベント
電源電圧下限超えイベント
値
100000h
200000h
400000h
800000h
1000000h
2000000h
4000000h
8000000h
DIN1
DIN2
DIN3
DIN4
DIN5
DIN6
DIN7
DIN8
要素 2
識別子
CM_EVENT_RISE_SIG1
CM_EVENT_RISE_SIG2
CM_EVENT_RISE_SIG3
CM_EVENT_RISE_SIG4
CM_EVENT_RISE_SIG5
CM_EVENT_RISE_SIG6
CM_EVENT_RISE_SIG7
CM_EVENT_RISE_SIG8
意味
ON→OFF 検出イベント
ON→OFF 検出イベント
ON→OFF 検出イベント
ON→OFF 検出イベント
ON→OFF 検出イベント
ON→OFF 検出イベント
ON→OFF 検出イベント
ON→OFF 検出イベント
© 2011, 2015 Interface Corporation. All rights reserved.
43
Help for Linux
Count
pFactor の要素数である 2 を指定して下さい。
互換のため 1 を指定することが出来ます。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
内容
IFCM_ERROR_SUCCESS
0
正常終了
IFCM_ERROR_NULL_POINTER
C0000005h NULL ポインタ検出
IFCM_ERROR_INVALID_HANDLE
C0000007h 内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【注意】
割り込みイベントが通知された(コールバック関数が呼び出された)後に、本関数でイベント発
生要因を取得してください。
割り込みイベント通知後に、本関数を呼び出さないと次の割り込みイベントは通知されません。
【備考】
・割り込み要因を取得すると、要因はクリアされます。
(本関数を呼び出して要因を取得した後、何も要因が満たされていない状態で再度本関数を呼
び出すと、2 回目は要因として 0 が返されます。)
・割り込み要因を取得する前に、複数回要因が満たされた場合、1 回にまとめられます。
例えば、基板温度上限超えイベント発生後、要因を取得する前に、再度基板温度が上限を超
えた場合、本関数を実行すると CM_EVENT_CPTHS が検出されますが、再度本関数を実行しても、
要因として 0 が返されます。
また、この場合、割り込みイベントも 1 回しか発生しません。
(本関数で要因取得後に、再度基板温度が上限を超えると、再度イベント通知されます。)
・イベント要因は、アプリケーションごとに独立しています。
例えば 2 つのアプリケーションで WDT イベントを有効にし、周期満了になって WDT イベント
が 2 つのアプリケーションで発生したとします。
この場合、片方のアプリケーションで要因を取得しても、もう片方の要因はクリアされませ
ん。もし片方のアプリケーションでしか要因を取得しなければ、要因を取得した方のアプリ
ケーションでのみ、次回も割り込みイベントが通知されます。(要因を取得しなかった方のア
プリケーションは次回の割り込みイベントは通知されません。)
両方のアプリケーションで要因を取得すると、どちらのアプリケーションにも CM_EVENT_WDS
が検出され、どちらのアプリケーションも次回の割り込みイベントが通知されます。
© 2011, 2015 Interface Corporation. All rights reserved.
44
Help for Linux
【使用例】
void event_func(void* user)
{
unsigned int Ret;
unsigned int Factor[2];
Ret = CmGetEventFactor(Factor, 2);
…
}
コールバック関数内でイベント要因を取得します。
© 2011, 2015 Interface Corporation. All rights reserved.
45
Help for Linux
23. CmControlBuzzer
【機能】
ブザーを制御します。
(ブザー機能をサポートしているハードウェアのみ使用できます。機能の有無はマニュアルをご
確認ください。)
【書式】
unsigned int CmControlBuzzer(
unsigned int Control
);
【パラメータ】
Control
ブザーの制御値を指定します。
0 でブザーOFF、1 でブザーON です。
デフォルトはブザーOFF です。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
内容
IFCM_ERROR_SUCCESS
0
正常終了
IFCM_ERROR_INVALID_PARAMETER C0000002h 入力パラメータ不正
IFCM_ERROR_INVALID_HANDLE
C0000007h 内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
Ret = CmControlBuzzer(0);
ブザーOFF します。
© 2011, 2015 Interface Corporation. All rights reserved.
46
Help for Linux
24. CmGetBuzzerStatus
【機能】
ブザーの状態を取得します。
(ブザー機能をサポートしているハードウェアのみ使用できます。機能の有無はマニュアルをご
確認ください。)
【書式】
unsigned int CmGetBuzzerStatus(
unsigned int* pStatus
);
【パラメータ】
pStatus
ブザーの状態の格納先です。
0 の場合ブザーOFF、1 の場合ブザーON です。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
内容
IFCM_ERROR_SUCCESS
0
正常終了
IFCM_ERROR_NULL_POINTER
C0000005h NULL ポインタ検出
IFCM_ERROR_INVALID_HANDLE
C0000007h 内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
unsigned int Status;
Ret = CmGetBuzzerStatus(&Status);
ブザー状態を取得します。
© 2011, 2015 Interface Corporation. All rights reserved.
47
Help for Linux
25. CmGetBatStatus
【機能】
バッテリステータスを取得します。
バッテリモジュール接続時のみ使用できます。
【書式】
unsigned int CmGetBatStatus(
unsigned int* pStatus
);
【パラメータ】
pStatus
バッテリステータス格納先です。
以下の値が取得できます。
bit31~bit8
予約
bit7
ERR
ERR
BLALM
LALM
DCHG
CHG
RSOC2-0
bit6
BLALM
bit5
LALM
bit4
DCHG
bit3
CHG
bit2
RSOC2
bit1
RSOC1
bit0
RSOC0
: バッテリ異状
0:エラーなし
1:バッテリ異状が発生
※バッテリ異状が発生した場合、弊社サポート窓口までお問い合わせ下さい。
: バッテリ残容量低下アラーム
0:正常
1:バッテリの残容量が 20%以下
: 寿命アラーム
0:正常
1:寿命アラームが発生
※寿命アラームが発生した場合、バッテリモジュール交換時期です。
: 放電情報
0:放電していない
1:放電中
: 充電情報
0:充電していない
1:充電中
: バッテリ残容量
111:100%~80%
011:79%~30%
001:29%~1%
000:0%
© 2011, 2015 Interface Corporation. All rights reserved.
48
Help for Linux
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_NULL_POINTER
C0000005h
IFCM_ERROR_INVALID_HANDLE
C0000007h
IFCM_ERROR_NOT_LINKED
C0000009h
内容
正常終了
内部エラー
NULL ポインタ検出
内部エラー
バッテリモジュール接続異常
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【備考】
バッテリモジュールはオプションです。詳しくは弊社サポート窓口までお問い合わせ下さい。
【使用例】
unsigned int Ret;
unsigned int Status;
Ret = CmGetBatStatus(&Status);
現在のバッテリステータスを取得します。
© 2011, 2015 Interface Corporation. All rights reserved.
49
Help for Linux
26. CmSetPowerOffTime
【機能】
停電発生からシャットダウン/電源強制断までの時間を設定します。
バッテリモジュール接続時のみ使用できます。
【書式】
unsigned int CmSetPowerOffTime(
unsigned int
Shutdown,
unsigned int
PowerOff
);
【パラメータ】
Shutdown
停電発生からシャットダウン開始までの時間を設定します。
設定できる範囲は 0~255 で、単位は秒です。工場出荷時は 16 秒です。
0 を指定すると、シャットダウン/電源強制断を行いません。
PowerOff
シャットダウン開始から電源強制断までの時間を設定します。
設定できる範囲は 0~255 で、単位は秒です。工場出荷時は 180 秒です。
0 を指定すると、電源強制断を行いません。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_INVALID_PARAMETER C0000002h
IFCM_ERROR_INVALID_HANDLE
C0000007h
IFCM_ERROR_NOT_LINKED
C0000009h
内容
正常終了
内部エラー
入力パラメータ不正
内部エラー
バッテリモジュール接続異常
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
© 2011, 2015 Interface Corporation. All rights reserved.
50
Help for Linux
【備考】
・本関数で設定された値はデバイス内蔵 ROM に保存され、次回起動時も設定値は保持されます。
・停電後に本関数を実行すると、新しく設定した Shutdown 秒後にシャットダウンを開始します。
・複数の異なるアプリケーションで本関数を実行した場合、最後に設定した時間が有効となりま
す。
・バッテリモジュールはオプションです。詳しくは弊社サポート窓口までお問い合わせ下さい。
【使用例】
unsigned int Ret;
Ret = CmSetPowerOffTime(16, 180);
停電発生からシャットダウン開始までの時間を 16 秒、シャットダウン開始から電源強制断まで
の時間を 180 秒に設定します。
© 2011, 2015 Interface Corporation. All rights reserved.
51
Help for Linux
27. CmGetPowerOffTime
【機能】
停電発生からシャットダウン/電源強制断までの時間を取得します。
バッテリモジュール接続時のみ使用できます。
【書式】
unsigned int CmGetPowerOffTime(
unsigned int* pShutdown,
unsigned int* pPowerOff
);
【パラメータ】
pShutdown
停電発生からシャットダウン開始までの時間の格納先です。
CmSetPowerOffTime関数で設定できる値が取得できます。
pPowerOff
シャットダウン開始から電源強制断までの時間の格納先です。
CmSetPowerOffTime関数で設定できる値が取得できます。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_NULL_POINTER
C0000005h
IFCM_ERROR_INVALID_HANDLE
C0000007h
IFCM_ERROR_NOT_LINKED
C0000009h
内容
正常終了
内部エラー
NULL ポインタ検出
内部エラー
バッテリモジュール接続異常
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【備考】
バッテリモジュールはオプションです。詳しくは弊社サポート窓口までお問い合わせ下さい。
【使用例】
unsigned int Ret;
unsigned int Shutdown;
unsigned int PowerOff;
Ret = CmGetPowerOffTime(&Shutdown, &PowerOff);
停電発生からシャットダウン開始までの時間と、シャットダウン開始から電源強制断までの時
間を取得します。
© 2011, 2015 Interface Corporation. All rights reserved.
52
Help for Linux
28. CmSetBatSimStatus
【機能】
バッテリのシミュレーション機能を設定します。
シミュレーション機能を有効にすると、CmGetBatStatusを呼び出した際、本関数で設定したシ
ミュレーションステータス値が取得できるようになります。
【書式】
unsigned int CmSetBatSimStatus (
unsigned int Simulation,
unsigned int SimStatus
);
【パラメータ】
Simulation
バッテリのシミュレーション機能の有効、無効を設定します。
下記の値が指定できます。デフォルトは CM_BAT_SIM_OFF です。
識別子
値
意味
CM_BAT_SIM_OFF
0
バッテリシミュレーション機能無効
CM_BAT_SIM_ON
1
バッテリシミュレーション機能有効
SimStatus
シミュレーションステータス値を設定します。SimulationにCM_BAT_SIM_ONを指定した場合
に有効となります。設定値は、CmGetBatStatusで取得できる値と同じ内容になります。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
内容
IFCM_ERROR_SUCCESS
0
正常終了
IFCM_ERROR_INVALID_PARAMETER C0000002h 入力パラメータ不正
IFCM_ERROR_INVALID_HANDLE
C0000007h 内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【備考】
・本機能は CmGetBatStatusで取得できるステータスのみをシミュレーションします。例えば、
バッテリステータスを「放電中」に設定したとしても、CmSetPowerOffTimeで設定された時間
後に、シャットダウン/電源強制断は発生しません。
・OS を再起動した場合、次回起動時にシミュレーション機能は無効に戻ります。
© 2011, 2015 Interface Corporation. All rights reserved.
53
Help for Linux
【使用例】
unsigned int Ret;
unsigned int Status;
Ret = CmGetBatStatus(&Status);
Ret = CmSetBatSimStatus(CM_BAT_SIM_ON, (Status | 0x80));
バッテリのシミュレーション機能で、ERR ビットをシミュレーションします。
© 2011, 2015 Interface Corporation. All rights reserved.
54
Help for Linux
29. CmGetBatSimStatus
【機能】
現在のバッテリシミュレーション設定を取得します。
【書式】
unsigned int CmGetBatSimStatus(
unsigned int*
pSimulation,
unsigned int*
pSimStatus
);
【パラメータ】
pSimulation
バッテリのシミュレーション機能の有効、無効設定の格納先です。
CmSetBatSimStatusで設定可能な値が取得できます。
pSimStatus
シミュレーションステータス値の格納先です。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
内容
IFCM_ERROR_SUCCESS
0
正常終了
IFCM_ERROR_NULL_POINTER
C0000005h NULL ポインタ検出
IFCM_ERROR_INVALID_HANDLE
C0000007h 内部エラー
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
unsigned int Simulation;
unsigned int SimStatus;
Ret = CmGetBatSimStatus(&Simulation, &SimStatus);
バッテリのシミュレーション設定を取得します。
© 2011, 2015 Interface Corporation. All rights reserved.
55
Help for Linux
30. CmControlLed
【機能】
LED を制御します。
汎用 LED が搭載されているデバイスでのみ使用できます。
【書式】
unsigned int CmControlLed(
unsigned int
Ctrl
);
【パラメータ】
Ctrl
LED 状態を指定します。各ビットが下記の LED に対応します。
bit31~bit8
bit7 bit6
bit5 bit4
bit3
予約
LED8 LED7 LED6 LED5 LED4
0:消灯、1:点灯
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_INVALID_PARAMETER C0000002h
IFCM_ERROR_INVALID_HANDLE
C0000007h
IFCM_ERROR_NOT_SUPPORTED
C0000008h
bit2
LED3
bit1
LED2
bit0
LED1
内容
正常終了
内部エラー
入力パラメータ不正
内部エラー
サポートされていません
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
Ret = CmControlLed(0x00000001);
LED1 を点灯させます。
© 2011, 2015 Interface Corporation. All rights reserved.
56
Help for Linux
31. CmGetLedStatus
【機能】
現在の LED 状態を取得します。
汎用 LED が搭載されているデバイスでのみ使用できます。
【書式】
unsigned int CmGetLedStatus(
unsigned int* pStatus
);
【パラメータ】
pStatus
LED 情報の格納先です。各ビットが下記の LED 状態を示します。
bit31~bit8
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
予約(値は無視してください)
LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1
0:消灯、1:点灯
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_NULL_POINTER
C0000005h
IFCM_ERROR_INVALID_HANDLE
C0000007h
IFCM_ERROR_NOT_SUPPORT
C0000008h
内容
正常終了
内部エラー
NULL ポインタ検出
内部エラー
サポートされていません
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
unsigned int Status;
Ret = CmGetLedStatus(&Status);
LED 状態を取得します。
© 2011, 2015 Interface Corporation. All rights reserved.
57
Help for Linux
32. CmGetDeviceInfo
【機能】
現在の DSW の状態を取得します。
DSW が搭載されているデバイスでのみ使用できます。
【書式】
unsigned int CmGetDeviceInfo(
unsigned int
Info,
unsigned int* pData
);
【パラメータ】
Info
状態を取得するする対象を指定します。
下記の値が指定できます。
識別子
値
意味
CM_INFO_DSW1
1
DSW の状態を取得します。
pData
情報の格納先です。
Info で指定した DSW の状態が取得できます。
【戻り値】
本関数実行時には下記の戻り値が返ります。
識別子
値
IFCM_ERROR_SUCCESS
0
IFCM_ERROR_INTERNAL
C0000001h
IFCM_ERROR_INVALID_PARAMETER C0000002h
IFCM_ERROR_NULL_POINTER
C0000005h
IFCM_ERROR_INVALID_HANDLE
C0000007h
IFCM_ERROR_NOT_SUPPORTED
C0000008h
内容
正常終了
内部エラー
入力パラメータ不正
NULL ポインタ検出
内部エラー
サポートされていません
IFCM_ERROR_SUCCESS以外の値が返された場合については、『4.5 戻り値一覧』をご参照ください。
【使用例】
unsigned int Ret;
unsigned int Data;
Ret = CmGetDeviceInfo(CM_INFO_DSW1, &Data);
DSW の状態を取得します。
© 2011, 2015 Interface Corporation. All rights reserved.
58
Help for Linux
4.3
コールバック関数
【書式】
void UserCallBack(
void*
User
);
【パラメータ】
User
ユーザパラメータです。
CM_EVENT_REQ構造体のUserメンバで指定した値が渡されます。
『4.4.1 CM_EVENT_REQ』をご参照ください。
【使用例】
『3.2.4 割り込みイベント』をご参照ください。
© 2011, 2015 Interface Corporation. All rights reserved.
59
Help for Linux
4.4
4.4.1
構造体説明
CM_EVENT_REQ
割り込みイベント登録用の構造体です。
typedef struct _CM_EVENT_REQ{
void*
Signal;
void*
Wnd;
unsigned int Msg;
LPCMCALLBACK CallBackProc;
void*
User;
} CM_EVENT_REQ, *PCM_EVENT_REQ;
メンバ
Signal
説明
予約です。NULL を指定してください。
Wnd
予約です。NULL を指定してください。
Msg
予約です。0 を指定してください。
CallBackProc
割り込みイベント通知時に呼び出されるコールバック関数へのポインタを指
定します。
コールバック関数を使用しない場合は NULL を指定してください。
User
コールバック関数に渡すユーザデータを指定します。
ここで指定したデータが、コールバック関数の第 1 引数として渡されます。
© 2011, 2015 Interface Corporation. All rights reserved.
60
Help for Linux
4.5
戻り値一覧
エラー識別子
値
IFCM_ERROR_SUCCESS
IFCM_ERROR_INTERNAL
0
C0000001h
(-1073741823)
IFCM_ERROR_INVALID_PARAMETER
C0000002h
(-1073741822)
C0000003h
(-1073741821)
IFCM_ERROR_ALREADY
IFCM_ERROR_NOT_YET
C0000004h
(-1073741820)
IFCM_ERROR_NULL_POINTER
C0000005h
(-1073741819)
C0000006h
(-1073741818)
IFCM_ERROR_NOT_ALLOCATE
意味
対処方法
正常終了
内部エラー
-
ハードウェア制御中の内部エラーです。
どのような状況でエラーが発生したか
をご連絡ください。
入力パラメータが不正
設定できる範囲をご確認の上、パラメー
タを設定してください。
・ 既に WDT が動作している
・ WDT 停止中に実行してください。
・ 既にイベントが登録され ・ イベントが登録されていない状態で
ている
実行してください。
・ まだ WDT が動作していない ・ WDT 動作中に実行してください。
・ まだイベントが登録され ・ イベントが登録されている状態で実
ていない
行してください。
NULL ポインタ検出
引数に NULL が渡されています。
有効な変数を指定してください。
メモリ確保失敗
メモリの使用を抑えてください。
IFCM_ERROR_INVALID_HANDLE
C0000007h
(-1073741817)
内部エラー
IFCM_ERROR_NOT_SUPPORT
C0000008h
(-1073741816)
サポートされていません
IFCM_ERROR_NOT_LINKED
C0000009h
(-1073741815)
バッテリモジュール接続異常
© 2011, 2015 Interface Corporation. All rights reserved.
61
共有ライブラリ初期化時の内部エラー
です。
ドライバが組み込まれているかご確認
ください。
本機能はサポートしていません。
サポートの有無はマニュアルをご確認
ください。
バッテリモジュールが正しく接続され
ているかご確認ください。
Help for Linux
第5章 サンプルプログラム
5.1
実行方法
サンプルプログラムには実行形式のファイルが付属していません。
ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。
wdt サンプルの例:
#cd /usr/src/interface/ifcpmgr/i386/linux/samples/c/wdt
#make
#./wdt
5.2
サンプルプログラム一覧
サンプルプログラム名
wdt
temperature
power
event
rasout
dio
buzzer
概要
WDT の周期を 5 秒、アクションを CPU リセットに設定し、3 秒ごとに WDT
クリアを行うサンプルプログラムです。
5 回クリアすると終了します。
3 秒ごとに基板温度とメモリ周辺温度を取得し、表示するサンプルプログ
ラムです。
5 回表示すると終了します。
3 秒ごとに電源電圧を取得し、表示するプログラムです。
5 回表示すると終了します。
WDT 周期満了イベントを、コールバック関数で通知します。
WDT 周期を 3 秒に設定しています。
3 秒おきに WDT 周期満了イベントが発生します。
10 秒後にプログラムを終了します。
異常時の自動 RAS 出力を行うサンプルプログラムです。
WDT の周期を 3 秒に設定し、WDT エラーが発生した時点で RAS 出力をリレー
ON に設定するプログラムです。
汎用入出力を行うサンプルプログラムです。
汎用出力後、1秒待機して汎用入力を行い、入力データを表示します。出
力データをシフトさせながら 4 回繰り返します。
(汎用入出力機能をサポートしているハードウェアのみ使用できます。)
ブザー制御を行うサンプルプログラムです。
ブザーを ON に設定し、1 秒待機して状態を表示します。
ブザーを OFF に設定し、終了します。
※ブザーが搭載されているデバイスで使用して下さい。
非搭載のデバイスの場合、ステータスは取得できますが音は出ません。
© 2011, 2015 Interface Corporation. All rights reserved.
62
Help for Linux
bat
mdevent
3 秒ごとにバッテリステータスを取得し、表示するサンプルプログラムで
す。
放電中にバッテリ低下アラームが発生すると、シャットダウンします。
5 回表示すると終了します。
RAID の Event 用に登録するプログラムのサンプルプログラムです。
登録しておくと RAID の Event 発生時に自動的に実行されます。
本サンプルプログラムをそのまま登録しても何も実行されません。
Event の種類の分岐を入れていますので、Event の内容に合わせて処理を追
加してください。
RAIDの操作方法やプログラムの登録方法は『3.3 RAID』をご参照ください。
© 2011, 2015 Interface Corporation. All rights reserved.
63
Help for Linux
第6章 ユーティリティ
6.1
Interface Disk Information
Interface Disk Information は HDD のホットプラグの処理やボリュームの状態監視を行うデーモン
です。デーモンが停止している場合は、HDD のホットプラグの処理が行われません。
6.1.1
起動方法
ログイン後に自動的に起動します。
停止後に起動させたい場合は下記のようにコマンドを実行してください。
# /etc/init.d/ifdiinfo start
6.1.2
停止方法
停止させたい場合は下記のコマンドを実行してください。
# /etc/init.d/ifdiinfo stop
6.2
Interface HDD Utility
Interface HDD Utility は RAID 状態の監視を行うデーモンです。デーモンが停止している場合は、
RAID 監視の処理が行われません。
また、Interface HDD Utility は Interface Notification Utility が起動していない状態、RAID モ
デル以外では動作しません。
Interface HDD Utility を終了すると自動的に Interface Notification Utility も終了します。
異常状態の HDD 検出すると自動的に RAID メンバから削除します。
6.2.1
起動方法
ログイン後に自動的に起動します。
停止後に起動させたい場合は下記のようにコマンドを実行してください。
# /etc/init.d/ifhdutil start
6.2.2
停止方法
停止させたい場合は下記のコマンドを実行してください。
# /etc/init.d/ifhdutil stop
© 2011, 2015 Interface Corporation. All rights reserved.
64
Help for Linux
6.3
Interface Notification Utility
Interface Notification Utility は xwindow 上のシステムトレイに RAID の状態を表示すると共にバ
ルーンで通知するデーモンです。デーモンが停止している場合は、通知の処理が行われません。
また、Interface Notification Utility は Interface HDD Utility が起動していない状態、RAID モ
デル以外では動作しません。
HDD を取り外す場合
HDD を取り外した場合には、自動で RAID は削除されません。
取り外す前に全てのパーティションに対して RAID の削除を行う必要があります。
HDD を取り付けた場合
HDD を取り付けた場合には、自動で再構築は行われません。
全てのパーティションに対して RAID の再構築を行う必要があります。
RAID の削除/再構築の使用方法については、弊社 Web サイトから Linux 構築ガイドをダウンロードし
て頂き。参照してください。
http://www.interface.co.jp/catalog/os/linux/linux_dl.asp
6.3.1
起動方法
ログイン後に自動的に起動します。
停止後に起動させたい場合は下記のようにコマンドを実行してください。
# /etc/init.d/ifnotif start
6.3.2
停止方法
停止させたい場合は下記のコマンドを実行してください。
# /etc/init.d/ifnotif stop
6.3.3
アイコンと状態
システムトレイに表示されるアイコンと RAID アレイの状態は下記のように対応します。
また、システムトレイのアイコン上にカーソルを置くと現在の状態が表示されます。
アイコン
状態
RAID アレイが正常な状態です。
Normal
Empty
RAID アレイが劣化している状態です。
速やかに予備の HDD をセットしてください。
RAID アレイがリカバリ中の状態です。
Recovery
Fault
HDD の認識に異常が起きた状態です。
この状態から復帰するには再起動が必要です。
© 2011, 2015 Interface Corporation. All rights reserved.
65
Help for Linux
6.3.4
メニュー
システムトレイに表示されるアイコンを右クリックするとメニューが表示されます。
コマンド
Detail
Exit
内容
リカバリの進捗状況をダイアログボックスで表示します。
この項目はリカバリ中にのみ選択できます。
Interface Notification Utility を終了します。
6.3.5
バルーンと状態
X-Window 上にバルーンで状態変化を通知します。
アイコン
状態
RAID アレイのリカバリを開始
したことの通知です。
Show detail をクリックすると
リカバリの進捗状況を表示し
ます。
RAID アレイのリカバリが完了
したことの通知です。
RAID アレイが劣化している状
態の通知です。
リカバリを行う HDD が無い状
態を示しています。
速やかに予備の HDD をセット
してください。
リカバリの進捗状況を表示で
す。
Partition1 のリカバリが 73%
まで完了していることを示し
ます。
© 2011, 2015 Interface Corporation. All rights reserved.
66
Help for Linux
6.4
Interface Utility
コマンドラインで実行する Interface Utility が付属しています。
Interface Utility を使用することで、下記ができます。
本ユーティリティは、OS 起動時に自動的に起動します。
■Battery
・バッテリステータスの表示
・シャットダウン、電源強制断までの時間の表示
・シャットダウン、電源強制断までの時間の設定
ユーティリティが起動しているかどうかは ifutil プロセスが存在するかどうかでご確認ください。
ps -e コマンド等で確認できます。
6.4.1
起動方法
一度終了した場合は、下記のコマンドを実行することで本ユーティリティを起動できます。
#/usr/bin/ifutil start
6.4.2
終了方法
本ユーティリティを終了する場合は下記のコマンドを実行してください。
#/usr/bin/ifutil exit
6.4.3
コマンド一覧
Interface Utility は各機能ごとに下記のコマンドが使用できます。
No
●Battery
1
ifutil
2
ifutil
3
ifutil
4
ifutil
5
ifutil
●その他
6
ifutil
7
ifutil
8
ifutil
コマンド
bat
bat
bat
bat
bat
shutdown
poweroff
simulation
simstatus
help
version
機能
現在のバッテリモジュールのステータスと設定値を表示します。
停電発生からシャットダウン開始までの時間を設定/表示します。
シャットダウン開始から電源強制断までの時間を設定/表示します。
バッテリシミュレーション機能の有効/無効を設定/表示します。
バッテリのシミュレーションステータスを設定/表示します。
全情報をモニタします。
ヘルプファイルを開きます。
バージョン情報を表示します。
© 2011, 2015 Interface Corporation. All rights reserved.
67
Help for Linux
6.4.4
コマンド個別説明
1. ifutil bat
【機能】
現在のバッテリモジュールのステータスと設定値を表示します。
表示
capacity
charge
status
shutdown
poweroff
内容
バッテリの残容量を表示します。
100-80[%]、79-30[%]、29-1[%]、0[%]の状態が表示されます。
バッテリの充電状況を表示します。
charging
充電中
discharging
放電中
non charge
満充電または非充電状態
※停電状態から電源が復帰した後、しばらくはこのステ
ータスとなります。
バッテリの異常状態が検出されているかを表示します。
複数の異常状態が検出された場合は「,」で区切って表示します。
normal
正常
life alarm
寿命アラームが発生
※寿命アラームが発生した場合、バッテリモジュール交
換時期です。
low battery level バッテリ容量が 20%以下
battery error
バッテリエラーが発生
※バッテリ異状が発生した場合、弊社サポート窓口まで
お問い合わせ下さい。
停電発生からシャットダウン開始までの時間を表示します。
シャットダウン開始から電源強制断までの時間を表示します。
バッテリモジュールが未接続の場合は「battery not connected or cable disconnected.」と
表示されます。
【使用例】
#/usr/bin/ifutil bat
battery:capacity=100-80[%]
battery:charge=charging
battery:status=normal
battery:shutdown=16[s]
battery:poweroff=180[s]
© 2011, 2015 Interface Corporation. All rights reserved.
68
Help for Linux
2. ifutil bat shutdown
【機能】
停電発生からシャットダウン開始までの時間を設定/表示します。
設定できる範囲は 10 進数で 0~255 で、単位は秒です。
0 を指定すると、シャットダウン/電源強制断を行いません。
【使用例】
#/usr/bin/ifutil bat shutdown
16
停電発生からシャットダウン開始までの時間を表示します。
#/usr/bin/ifutil bat shutdown=100
停電発生からシャットダウン開始までの時間を 100 秒に設定します。
3. ifutil bat poweroff
【機能】
シャットダウン開始から電源強制断までの時間を設定/表示します。
設定できる範囲は 10 進数で 0~255 で、単位は秒です。
0 を指定すると、電源強制断を行いません。
【使用例】
#/usr/bin/ifutil bat poweroff
180
シャットダウン開始から電源強制断までの時間を表示します。
#/usr/bin/ifutil bat poweroff=200
シャットダウン開始から電源強制断までの時間を 200 秒に設定します。
© 2011, 2015 Interface Corporation. All rights reserved.
69
Help for Linux
4. ifutil bat simulation
【機能】
バッテリシミュレーション機能の有効/無効を設定/表示します。
シミュレーション機能が有効な場合は on、無効な場合は off が表示されます。
シミュレーション機能を有効にする場合は=on、無効にする場合は=off を指定してください。
【使用例】
#/usr/bin/ifutil bat simulation
off
バッテリシミュレーション機能の有効/無効を表示します。
#/usr/bin/ifutil bat simulation=on
バッテリシミュレーション機能を有効にします。
5. ifutil bat simstatus
【機能】
バッテリのシミュレーションステータスを設定/表示します。
シミュレーションステータス値は、CmGetBatStatusで取得できるバッテリステータスと同じビ
ットアサインで表示されます。
bit7
ERR
bit6
BLALM
bit5
LALM
bit4
DCHG
bit3
CHG
bit2
RSOC2
bit1
RSOC1
各ビットの内容については、CmGetBatStatusの説明をご参照ください。
設定する場合も、上記と同様のビットアサインとなります。
=シミュレーションステータス値(16 進数)
で設定してください。
【使用例】
#/usr/bin/ifutil bat simstatus
b
現在のシミュレーションステータス値を取得します。
#/usr/bin/ifutil bat simstatus=8b
シミュレーションステータス値を設定(ERR ビットをシミュレーション)します。
© 2011, 2015 Interface Corporation. All rights reserved.
70
bit0
RSOC0
Help for Linux
6. ifutil
【機能】
現在の全情報をモニタリングします。
(ifutil の全実行結果が表示されます。)
q キーを押すまでモニタリングします。
【使用例】
#/usr/bin/ifutil
diskctl:hardware control
pbfilter:enable
battery:capacity=100-80[%]
battery:charge=charging
battery:status=normal
battery:shutdown=16[s]
battery:poweroff=180[s]
7. ifutil help
【機能】
本ヘルプファイルを開きます。
X Window が起動している状態でのみ使用してください。
【使用例】
#/usr/bin/ifutil help
8. ifutil version
【機能】
バージョン情報を表示します。
【使用例】
#/usr/bin/ifutil version
ifutil:1.00-01
ifbat:1.00-01
6.4.5
コマンドエラー
コマンド実行時、下記のエラーが表示される場合があります。
表示
Invalid command.
Invalid parameter.
機能名:Error(エラーコード)
内容
コマンドの指定が間違っています。
パラメータの指定が間違っています。
エラーコードは 16 進数で表示されます。
『4.5 戻り値一覧』を参照ください。
© 2011, 2015 Interface Corporation. All rights reserved.
71
Help for Linux
第7章 重要な情報
保証の内容と制限
弊社は本ドキュメントに含まれるソースプログラムの実行が中断しないこと、またはその実行に
誤りが無いことを保証していません。
本製品の品質や使用に起因する、性能に起因するいかなるリスクも使用者が負うものとします。
弊社はドキュメント内の情報の正確さに万全を期しています。万一、誤記または誤植などがあっ
た場合、弊社は予告無く改訂する場合があります。ドキュメントまたはドキュメント内の情報に
起因するいかなる損害に対しても弊社は責任を負いません。
ドキュメント内の図や表は説明のためであり、ユーザ個別の応用事例により変化する場合があり
ます。
著作権、知的所有権
弊社は本製品に含まれるおよび本製品に対する権利や知的所有権を保持しています。
本製品はコンピュータ ソフトウェア、映像/音声(例えば図、文章、写真など)を含んでいます。
医療機器/器具への適用における注意
弊社の製品は人命に関わるような状況下で使用される機器に用いられる事を目的として設計、製
造された物では有りません。
弊社の製品は人体の検査などに使用するに適する信頼性を確保する事を意図された部品や検査機
器と共に設計された物では有りません。
医療機器、治療器具などの本製品の適用により、製品の故障、ユーザ、設計者の過失などにより、
損傷/損害を引き起こす場合が有ります。
複製の禁止
弊社の許可なく、本ドキュメントの全て、または一部に関わらず、複製、改変などを行うことは
できません。
責任の制限
弊社は、弊社または再販売者の予見の有無にかかわらず発生したいかなる特別損害、偶発的損害、
間接的な損害、重大な損害について、責任を負いません。
本製品(ハードウェア,ソフトウェア)のシステム組み込み、使用、ならびに本製品から得られる
結果に関する一切のリスクについては、本製品の使用者に帰属するものとします。
本製品に含まれるバグ、あるいは本製品の供給(納期遅延)、性能もしくは使用に起因する付帯的
損害もしくは間接的損害に対して、弊社に全面的に責がある場合でも、弊社はその製品に対する
改良(正常に動作する)、代品交換までとし、金銭面での賠償の責任は負わないものとしますので、
予めご了承ください。
本製品(ソフトウェアを含む)は、日本国内仕様です。本製品を日本国外で使用された場合、弊
社は一切責任を負いかねます。また、弊社は本製品に関し、海外での保守サービスおよび技術サ
ポート等は行っておりません。
© 2011, 2015 Interface Corporation. All rights reserved.
72
Help for Linux
商標/登録商標
本書に掲載されている会社名、製品名は、それぞれ各社の商標または登録商標です。
© 2011, 2015 Interface Corporation. All rights reserved.
73