控制台打印以在c中显示信号电平

时间:2019-05-01 11:11:25

标签: mobile signals indicator

如何在无头C程序中创建移动信号指示器和水平音量控制?

我知道如何创建进度条...等。但是在Linux中,我们是否有任何库支持图形创建,例如Windows中的graphic.h

1 个答案:

答案 0 :(得分:0)

我找到了使用转义序列将光标移动到所需位置的解决方案。这样,我可以创建如下所示的移动信号指示器。

相同的代码:

void draw_antenna(int level)
{
        static current_level = 0;
        unsigned char cnt = 0, l = 0;
        //let assume atenna having 5 level (0-5) and 5 is max
        // 5x5 matrix and color need to be controled in column
        for (cnt = 0; cnt <= ANTENNA_L; cnt++)
        {
                for (l = 0; l < cnt; l++)
                {
                        if (cnt <= level)
                                printf("\033[%d;%dH\033[0;42m\033[1;32m%c\033[0m", 15-l, 25+(cnt*2),' ');
                        else
                                printf("\033[%d;%dH\033[48;5;7m\033[1;34m%c\033[0m", 15-l, 25+(cnt*2),' ');
                        fflush(stdout);
                }
        }
        printf("\033[%d;%dH \033[1;33m%.*so\033[1;30m%*s\033[0m", 16, 25, level*2, TT,10-(level*2),"");
        //update current status
        current_level = level;
}

* enter image description here