From 816815ff849bafe62ac33d69c20def36f6ea12f5 Mon Sep 17 00:00:00 2001 From: Eduard Dlabal Date: Sat, 29 Mar 2025 22:45:42 +0100 Subject: [PATCH] Priprava Ncurses a vlakna pro UART --- .vscode/settings.json | 5 +++++ Makefile | 4 ++-- include/tui.h | 8 ++++++++ include/users.h | 4 ++++ output/main | Bin 0 -> 19376 bytes src/main.c | 36 +++++++++++++++++++++++++++++++++++- src/tui.c | 3 +++ 7 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 include/tui.h create mode 100755 output/main create mode 100644 src/tui.c diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..5ffbbf2 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "users.h": "c" + } +} \ No newline at end of file diff --git a/Makefile b/Makefile index bfe28d8..42ecee6 100644 --- a/Makefile +++ b/Makefile @@ -7,12 +7,12 @@ CC = gcc # define any compile-time flags -CFLAGS := -Wall -Wextra -g +CFLAGS := -Wall -Wextra -g -pedantic # define library paths in addition to /usr/lib # if I wanted to include libraries not in /usr/lib I'd specify # their path using -Lpath, something like: -LFLAGS = +LFLAGS = -lncurses # define output directory OUTPUT := output diff --git a/include/tui.h b/include/tui.h new file mode 100644 index 0000000..82fe874 --- /dev/null +++ b/include/tui.h @@ -0,0 +1,8 @@ +#ifndef __TUI_H__ +#define __TUI_H__ + +#include +#include +#include + +#endif \ No newline at end of file diff --git a/include/users.h b/include/users.h index 80091a5..b2010a9 100644 --- a/include/users.h +++ b/include/users.h @@ -1,5 +1,7 @@ #include #include +#include +#include #ifndef __USERS_H__ #define __USERS_H__ @@ -14,6 +16,8 @@ typedef struct person time_t last_timestamp; uint32_t total; + + pthread_mutex_t lock; } person_t; typedef struct node diff --git a/output/main b/output/main new file mode 100755 index 0000000000000000000000000000000000000000..02ef14f6cf11bef400d38def905fead13ff84202 GIT binary patch literal 19376 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 J%fQ8o{{%{I47LCO literal 0 HcmV?d00001 diff --git a/src/main.c b/src/main.c index 3a23773..e49f551 100644 --- a/src/main.c +++ b/src/main.c @@ -1,8 +1,42 @@ +#include #include +#include +#include +#include + #include "users.h" +void *uartListener(void *arg) +{ + + return NULL; +} + int main(int argc, char const *argv[]) { + int y_max, x_max; + pthread_t uart_thread; - return 0; + initscr(); + + getmaxyx(stdscr, y_max, x_max); + + noecho(); + noraw(); + start_color(); + curs_set(0); + + assume_default_colors(COLOR_WHITE, COLOR_BLUE); + erase(); + refresh(); + + pthread_create(&uart_thread, NULL, uartListener, NULL); + + // + + pthread_join(uart_thread, NULL); + + clear(); + endwin(); + return EXIT_SUCCESS; } diff --git a/src/tui.c b/src/tui.c new file mode 100644 index 0000000..3f492c3 --- /dev/null +++ b/src/tui.c @@ -0,0 +1,3 @@ +#include +#include +#include \ No newline at end of file