getsystempowerstatus以外での取得方法 – プログラミング – Home

通知
すべてクリア

getsystempowerstatus以外での取得方法


UPS
 UPS
(@UPS)
ゲスト
結合: 15年前
投稿: 3
Topic starter  

はじめまして

UPSを使っているのですが、
API等でバッテリーの状態を確認したいです。

そこで「getsystempowerstatus」を使用したところ、

以下の3つの項目が不明になります。

BatteryLifePercent;
バッテリ残量を0~100のパーセントで示します
不明な場合は255を示します

BatteryLifeTime;
今充電しているバッテリで稼働できる時間を秒で示します
不明な場合は-1を示します

BatteryFullLifeTime;
フル充電しているバッテリで稼働できる時間を秒で示します
不明な場合は-1を示します

この場合、この関数では取得不可能なのでしょうか?

また、それ以外に取得する方法があるのでしょうか?


引用解決済
トピックタグ
maru
 maru
(@maru)
ゲスト
結合: 17年前
投稿: 358
 

そもそも、そのUPSにそれらの機能があるのですか?
それらの項目は実際のハードウェアから情報が提供される必要があると思いますが、
そのUPSにその情報が存在しない場合、APIに関数が存在していてもそれらの項目を
返しようがないので、不明とせざるを得ないでしょう。


返信引用
仲澤@失業者
(@uncle_kei)
Prominent Member
結合: 5年前
投稿: 828
 

GetSystemPowerStatus()の対象は「そのコンピュータ」だけの
ようです(内臓電源のみ)。
外部装置であるUPSは対象外ではないでしょうか。
また、バッテリーを内蔵していないデスクトップPCなどでは
それに関する情報は取得できないと予想できます。


返信引用
UPS
 UPS
(@UPS)
ゲスト
結合: 15年前
投稿: 3
Topic starter  

maruさん、仲澤@失業者さん
お返事有難うございます。

>そもそも、そのUPSにそれらの機能があるのですか?
はい、シェアウェアとして存在しているようです。
但し、価格が高いためそのソフトを使いたくないため、
APIでどうにか確認できないかと考えているのですが、

PC側は外部電源の機構まで管理していないということでしょうか。。。

例えば、停電が発生しACへの電源供給がオフになった場合も、
GetSystemPowerStatusメソッドの取得値は変わらなかったのですが、
英語のサイト等を検索していると、
何かしらのフラグを設定した場合、
取得出来たりしたような記述がかいており、
どうにかして出来ないかと検討しています。

何かお分かりになる情報がありましたら、
コメントして頂けると幸いです。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

> はい、シェアウェアとして存在しているようです。

それはUPSメーカーのソフトではなく、サードパーティのものですか?
メーカーのソフトなら、何らかの非公開プロトコルでUPSと通信している可能性もありま
す。
また、シェアウェアでも高価なものとなると、メーカーとプロトコルの開示契約を結ん
で…といったことも想定されます。
いずれにせよ、あるソフトウェアで可能だからといって、だれにでも可能とは限らない
ということはあるかもしれません。

それはそれとして。

割と最近の過去ログに似たような話題があります。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+201002/10020012.txt


返信引用
maru
 maru
(@maru)
ゲスト
結合: 17年前
投稿: 358
 

> PC側は外部電源の機構まで管理していないということでしょうか。。。
これについては知りませんが、少なくともそのUPSのデバイスドライバが必要な気が
します(コントロールパネルの電源オプションの UPSタブを見るとUPSの推定稼働時
間等が表示されるようになっているので)。
そして、そのデバイスドライバが「要求する機能」を提供していない限りは
要求する情報は得られないでしょう。
あとはUPSメーカの情報を探してみたらどうでしょうか。


返信引用
UPS
 UPS
(@UPS)
ゲスト
結合: 15年前
投稿: 3
Topic starter  

aetos さん、maruさん
お返事有難うございます。

>それはUPSメーカーのソフトではなく、サードパーティのものですか?
>メーカーのソフトなら、何らかの非公開プロトコルでUPSと通信している可能性もあり

す。

いいえ、メーカーのソフトです。
TPC/IPプロトコル通信にて行っていました。
あまりハードウェア側の仕組みを理解していないのですが、
バッテリーの残量についてはOS側で管理外ならば、
メーカーの規約にのっとるしかなさそうですね。。。

>コントロールパネルの電源オプションの UPSタブを見るとUPSの推定稼働時
>間等が表示されるようになっているので)。

UPSの稼働時間については表示が無効になっていました。(電源のみ表示されていま
す。)
getsystempowerstatusを参照しているのではと思います。(同様の結果なので)

やはり、メーカー側からのドライバや通信インターフェイスが分からないと、
取得できないという事になるのでしょうか。


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

> バッテリーの残量についてはOS側で管理外ならば、
> メーカーの規約にのっとるしかなさそうですね。。。
 OS側の規約に沿ったドライバー等を使用すれば、OSの標準のドライバーを
使わなくてもいいのだと思います。
 使用したい関数が、OSの標準のドライバーを使うことが前提となっているならば、
使えない可能性も大きいですね。

> やはり、メーカー側からのドライバや通信インターフェイスが分からないと、
> 取得できないという事になるのでしょうか。
外部から操作されないようにメーカー側で隠している場合もありますね。
勝手に操作して、「おかしくなりました。」なんてクレーム言われても
メーカー側も困るのかと思います。

 


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました