【PC編】「2020-07-03★CPUモニター@LINUX」と「縦モードを作ってみた」と私
【PC編】「★CPUモニター@LINUX」と「縦モードを作ってみた」と私
と題しまして小話を1つ。
LINUX上でシコシコ作ってる CPUMON ですが、
縦表示ができんかな?と ちょっと考えて 作ってみました。
結果)
文字の縦横サイズ分の2次元配列を設定して、そこに−1が入っている時は
空白、それ以外の数値の場合は、数値に対応した文字を色を変えて
表示するようにしました。
(数字を見て、PRINTF文で画面に文字を表示する直前に色の設定を入れた)
※縦方向に変な改行が入る謎BUGが残ってます。。
※キャラクタを■、▲に変えたり、色を変えれば、また違った印象になると思います。
<縦版、横板の画面イメージ>
<縦版のソースコードはこちら>
※X軸(列)ー>CPUのコアの数(この場合24ですね)
Y軸(行)ー>CPUの周波数 (3.5GHz以下にならないので、20個ぐらい)
で属性値を格納するA「周波数目盛りの数」「24」という二次元配列
(めんどくさいので配列名は単なる、”A"にしました。)
何も描画しない部分は、最初に初期値として−1を書き込んでいます。
※取得した周波数は4桁の浮動小数点データなので1桁のレベルバーの数に
変換しないといけません。
int VAL= (int)(周波数+50)/100 しますと3.6GHzなら36という数字になります。
int VAL2=VAL- 35 としますと3.6GHzなら 1 という数字になります。
この 1 が レベルバーの棒の 長さになります。
ここで、VAL2 は3.5GHzを超えると1以上になりますが、
MAX周波数が4.6GHzなので、レベルバーの数字に応じて色属性を割り当てます
0=青、1=黄色、2=赤 としました。
配列A「レベルバー数」「CPUコア番号」の所定の位置に
に対して、周波数値に応じて0,1,2を書き込んでいきます。
※下のページのPRINTFでの描画で、配列Aを参照して色属性値によって
描画する絵柄(この場合は、”●"の色をエスケープシーケンスで変えています。
値が−1の場合は、空白を描画します。
※画像の貼り付けなので、ご興味のある方は頑張って打ち込んでみてください。
この前、全ソースコードを掲載しましたが、そこに組み込めば動きます。
(BLOGにコードをコピペするとインデントとかが消滅してしまうので。。)
※バーグラフの”●”を”■”(全角です)に変えてみましたが、こっちのほうがいいかもね。。
なんで、無駄な空白が入るかな・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・そのうち、あ!って気がつくんだろうな
では・・また・・:_;)/