まーにゃ@エンタメ系火事場エンジニアの日々

数々の「火だるまプロジェクト」を安請け合いし何度でも復活する 「自称・不死身のエンジニア」の物欲まみれの日々をつづる

【PC編】「2020-07-03★CPUモニター@LINUX」と「縦モードを作ってみた」と私

【PC編】「★CPUモニター@LINUX」と「縦モードを作ってみた」と私
と題しまして小話を1つ。
LINUX上でシコシコ作ってる CPUMON ですが、
縦表示ができんかな?と ちょっと考えて 作ってみました。
結果) 
  文字の縦横サイズ分の2次元配列を設定して、そこに−1が入っている時は
  空白、それ以外の数値の場合は、数値に対応した文字を色を変えて
  表示するようにしました。
  (数字を見て、PRINTF文で画面に文字を表示する直前に色の設定を入れた)
  ※縦方向に変な改行が入る謎BUGが残ってます。。
  ※キャラクタを■、▲に変えたり、色を変えれば、また違った印象になると思います。
  
<縦版、横板の画面イメージ>
縦モード作ってみた@CPUモニタ.png
<縦版のソースコードはこちら>
ソースコード1Screenshot from 2020-07-03 19-40-41.png
※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の場合は、空白を描画します。
ソースコード2Screenshot from 2020-07-03 19-41-43.png
※画像の貼り付けなので、ご興味のある方は頑張って打ち込んでみてください。
 この前、全ソースコードを掲載しましたが、そこに組み込めば動きます。
 (BLOGにコードをコピペするとインデントとかが消滅してしまうので。。)
※バーグラフの”●”を”■”(全角です)に変えてみましたが、こっちのほうがいいかもね。。
 なんで、無駄な空白が入るかな・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・そのうち、あ!って気がつくんだろうな
Screenshot from 2020-07-03 21-22-48.png
では・・また・・:_;)/