POWER(4) — NEWS-OS Programmer’s Manual
名称
power − NEWS 電源インターフェース
形式
pseudo-device power
解説
/dev/power を read システムコールによって読み出すことにより、 現在の電源の電圧値を 1 バイトで返します。 電圧値の値は後述の PWIOCPOWERPARAM で得られる範囲の値となります。
また、 ioctl(2) により、様々な情報を得ることができます。
IOCTL
ioctl のコマンドについて解説します。なおヘッダファイルは、 以下のものをインクルードしてください。
#include <sys/ioctl.h>
#include <machine/powerctl.h>
#include <machine/powerioctl.h>
PWIOCBATTVOL
バッテリーの A/D コンバータの単位時間の平均値の 10000 倍の値を返す
int volt;
ioctl(power, PWIOCBATTVOL, &volt);
PWIOCBATTDVOL
バッテリーの A/D コンバータの単位時間の平均変化値の 10000 倍の値を返す
int dvolt;
ioctl(power, PWIOCBATTDVOL, &dvolt);
PWIOCBATTRVOL
バッテリーの A/D コンバータの直接の値を返す
int volt;
ioctl(power, PWIOCBATTRVOL, &volt);
PWIOCBATTSTAT
バッテリーの状態を返す
int stat;
ioctl(power, PWIOCBATTSTAT, &stat);
BATT_BTTOK
このビットが 0 ならばバッテリーが空になった。
BATT_DCOPE
このビットが 0 ならば AC、1 なら DC。
BATT_PSOK
このビットが 0 ならば電源異常。
BATT_PWSW
SHUTDOWNスイッチ/電源スイッチが押された。
PWIOCIOPWSTAT
電源を切ることのできるデバイスの状況を得る
int stat;
ioctl(power, PWIOCIOPWSTAT, &stat);
POWER_FDD
FDD ドライブの電源
POWER_RS
RS-232C ドライバの電源
PWIOCBATTPARAM
電源およびバッテリーパラメータを得る
struct battparam param;
ioctl(power, PWIOCBATTPARAM, ¶m);
PWIOCGETSYSDI
sysctld(8) の状態を得る
#include <machine/sysctl.h>
int state;
ioctl(power, PWIOCGETSYSDI, &state);
PWIOCPOWERPARAM
read(2) で読み出される電源値の最大、最小、実際の何倍の値が読めるかなどの パラメータを得る。最大値はメンバ maxvalue、最小値はメンバ minvalue、 メンバ scale で得られた値倍された値が read(2) で読めます。
struct powerparam param;
ioctl(power, PWIOCPOWERPARAM, ¶m);
PWIOCPOWERSTATE
現在の電源の状態を得ます。
struct powerstatus status;
ioctl(power, PWIOCPOWERSTATE, &status);
エラー
システムコールがエラーで終了した場合、 システムコールのリターン値は −1 となり、 その時のエラーコードに以下のような値が返されます。
#include <sys/errno.h>
extern int errno;
[ENXIO] open 時に指定したスペシャルデバイスが存在しない。
[EIO] そのような ioctl はサポートされていない。
[EACCES]
root 以外のユーザでシステムの状態を変更しようとした。
関連ファイル
/dev/power
関連事項
備考
NWS-3100 シリーズ、NWS-5000シリーズでのみサポートされています。 NWS-5000シリーズでは、バッテリーが搭載されていないために、 電源電圧などに関するものは任意の値がかえります。
NEWS-OSRelease 4.2.1R