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

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

【PC編】「2020-07-05★こんな表示はどうでしょう?」と「CPUメータ@LINUX」と私

【PC編】「★こんな表示はどうでしょう?」と「CPUメータ@LINUX」と私
と題しまして小話を1つ。
エスケープシーケンスを調べてみますと、
文字を指定した色で反転表示する
機能を見つけました。
これで、コードをちょこちょこと直したのが以下のものです。
Screenshot from 2020-07-05 04-45-35.png
Screenshot from 2020-07-05 10-06-04.png
<y-crunch,prime95などの極悪非道ベンチをかけるとこんな埋蔵金みたいなイメージに>
Screenshot from 2020-07-05 10-09-17.png
バーグラフの上に数字を書くより、この方が直感的か??
ちょっとダサい気もしますが。。。。直感的かつ、見てわかりやすい点ではOK
かと思っています。
欲を言うと最後のバーグラフだけに数値をいれてくれれば。。
<最新のソースはこちら>ーーーーーーーーーーーーーーーーーーーーーーーーー
※相変わらず、全角半角がずたずたですので打ち直してもらうほうが早いです。
/#define GYOU_SIZE (13)
#define RETSU_SIZE (61)
void DisplayLevelBAR2(int NUMCORE, float *data){
static int ATTR[GYOU_SIZE][RETSU_SIZE];/*ATTRIBUTE ARRAY*/
int i ;/*NUMOFCORE*/
int j ;/*LEVEL BAR */
static int val2[128];/*MAX 128 PROCESSORS*/
/*INITIALIZE GAMEN ARRAY DATA*/
for(i=0;i<GYOU_SIZE;i++){
for(j=0;j<RETSU_SIZE;j++) ATTR[i][j]= -1;/*SPACE */
}
/*WRITE LEVEL DATA TO ARRAY*/
/*ASSGNING -1 IS SPACE ,OTHER IS REAL FREQ INFO*/
#define OFFSET_GHZ (34)
for(i=0;i<NUMCORE;i++){
val2[i] = (int)(data[i]/100.0);/*MEMORIZE GHz TO %2d ARRAY*/
int val3 = (int)val2[i] - OFFSET_GHZ ; /*GHz - 34GHz*/
for(j=0;j<val3;j++) ATTR[j][i] = val2[i];
}
/*DISPLAY CHAR GRAPHIC IMAGE */
//SET_GREEN_BACK;
SET_BLACK_BACK;
RESET_CURSOR;
CLS;
SET_WHITE;
/**PRINT HEADER*/
printf(
" +------------------------------------------------------------------------+\n");
printf(
"[GHz]::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::|\n");
#define CIRCLE "○ "
#define DOUBLE_CIRCLE "◎ "
#define FILLED_CIRCLE "●a"
#define FILLED_RECT "■k"
int flag=1;/*CTRL FLAG*/
float fval=4.7;/*MAX GHz*/
#define MAXFREQ_RANGE (12)
for(int i=MAXFREQ_RANGE;i>=0;i--){
SET_BLACK_BACK;
printf("%1.1fG|",fval);
for(j=0;j<NUMCORE;j++){
switch(ATTR[i][j]){
/*SET CHARCTOR COLOR*/
case 34:
case 35:
case 36:
case 37:SET_REV_CYAN;break;
case 38:
case 39:SET_REV_YELLOW;break;
case 40:
case 41:
case 42:
case 43:SET_REV_MAZENTA;break;
case 44:
case 45:
case 46:SET_REV_RED;break;
case -1:/*SPACE */
default:SET_BLACK_BACK;break;
}
#ifndef OLD //工事中
if(ATTR[i][j] !=-1)printf("|%2d",ATTR[i][j]);
else printf(":::");
#else
if(ATTR[i][j] != -1 && ATTR[i-1][j] == -1){
printf(" %2d",ATTR[i][j]);
}
else if(ATTR[i][j] != -1)printf("|%2d",ATTR[i][j]);
else printf(":::");
#endif
RESET_MODE;
}
RESET_MODE;
SET_WHITE;
SET_BLACK_BACK;
printf("|\n");/*End of LINE*/
fval = fval - (0.1);
}
SET_WHITE;
/**PRINT FUTTER*/
printf(
" +---+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+\n");
printf(
"[CPU] 00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|\n");
}/*End of function*/
では・・また・・:_;)/