ようこそゲストさん

(:3[__]) 春眠暁とは何だったのか

ネットの無い国には、わたし、住めないかも。
彼らが最初共産主義者を攻撃したとき

2008/04/27(日) DNRH-001を正しく酷使するための下準備

DNRH-001

UPSの通信を適当に解析

Windowsで使う分には何の問題もないのですが、Linuxで使うとなるとUPSからの電源断信号を受信出来ないと困ります*1。で、さっくりと解析。どうせ大したコトして無かろうと思いつつPortmonで見たら、「Test」という文字を送ってエコーバックした後にひたすらIOCTL_GET_MODEMSTATUSを発行してました。要するに延々とGetCommModemStatusを呼び続けているんだからDSR/RING/CTS/RLSDのどれかが電源断信号*2だろうと踏んでAcknowrichを起動して電源をすっこ抜くと、1秒ぐらい後*3にRLSDが来ました*4

*1 : バッテリの状況もモニタにはあるんですが…

*2 : そしてどれかがバッテリ状況信号なんだろうなぁ…

*3 : 瞬停をバックアップするキャパシタが支えてるんじゃないかなと勝手に妄想

*4 : ちなみに電源を復帰させると即座にRLSDは落ちます

で、どうしようか

WindowsではGetCommModemStatusを呼べばRLSDの様子が分かりますが、Linuxだとどうなのかさっぱり分からない。

んで、ぐぐってみる。と、どうやら/dev/ttyS1をopenする際にDCD*5が立つまでblockされるらしい。んー。シェルスクリプトでほへっと出来るのかなぁ…。取りあえずまた実験せんとね。

*追記(05 May 2008)

日記で書いてます*6がLinuxではgenpowerd使ってshutdown出来ます。まぁ作るとすればWindows版だけですね

*5 : RLSDの正式らしい名前。ちなみにLinuxで指定するときはCAR。

*6 : 後から適当に色々調べて見つけた。無いはずは無いと思ってたんだけど先送りにしてた…。

バッテリは…

誰か実験して教えてくださいなー。

ちなみにわたしのマシンではバッテリの接続を切ってても「Bat OK」と表示される有様でどうしようもありません。バッテリは電源スイッチがONの時に*7適当に充電をしているんで状況がわかると幸せっちゃ幸せなんですがなぁ。コンパレータ(LM339)いくつか積んでるし、ドライブ用と思われるトランジスタが二つあるので何が悪いのかと思ったりもしますな。

*追記 2008/05/02

何回か実験したところ、DSRがアクティブになると「Bat Low」になりました。ただ「Bat Low」と出るラインが壮絶に低い*8のか表示が出てすぐに落ちます。その割には電源が繋がっているときは「Bat OK」とか出る*9のであんまり当てになりません…。

以上の実験結果をメインの方へ書いてみました。まぁ、バッテリが死んでる個体もある*10のでUPSは動けばおめでとう程度のおまけ*11に考えた方がいいのかもしれません。

*7 : 後ろ側の電源スイッチはACとバッテリの出力線を同時に切っている様子。

*8 : あるいはバックアップ用Ni-MHバッテリがへたってる。

*9 : 「Bat Low」だけ出る時もまれにありますが、その直後にフリーズした。

*10 : わたしは三台買ったのですが、一台ダメでした。

*11 : 単三サイズのNi-MHが12本直列になってるだけくさいので、適当に用立て出来るとは思いますが、まだやってません…。


名前:  非公開コメント   

  • TB-URL(確認後に公開)  http://mono.kmc.gr.jp/~walkure/013/tb/