Консоль печатает для отображения уровня сигнала в c - PullRequest
0 голосов
/ 01 мая 2019

Как создать индикатор мобильного сигнала и горизонтальную регулировку громкости в программе безголового c?

Я знаю, как создать индикатор выполнения ... и т. Д.Но в Linux у нас есть какая-либо библиотека, поддерживающая создание графики, например graphic.h в windows

1 Ответ

0 голосов
/ 01 мая 2019

Я нашел решение переместить курсор в нужные места с помощью escape-последовательности.С этим я могу создать индикатор мобильного сигнала, как показано ниже.

код для того же самого:

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;
}

* введите описание изображения здесь

...