#include #include #include #include #include #include #include #include #include #include #define LINES_ON_SCREEN 6 #define COLUMNS_ON_SCREEN 21 typedef struct UartDumpModel UartDumpModel; typedef struct { Gui* gui; NotificationApp* notification; ViewDispatcher* view_dispatcher; View* view; FuriThread* worker_thread; FuriStreamBuffer* rx_stream; FuriHalSerialHandle* serial_handle; bool initialized; } UartEchoApp; typedef struct { FuriString* text; } ListElement; struct UartDumpModel { ListElement* list[LINES_ON_SCREEN]; uint8_t line; char last_char; bool escape; }; typedef enum { WorkerEventReserved = (1 << 0), // Reserved for StreamBuffer internal event WorkerEventStop = (1 << 1), WorkerEventRx = (1 << 2), } WorkerEventFlags; #define WORKER_EVENTS_MASK (WorkerEventStop | WorkerEventRx) const NotificationSequence sequence_notification = { &message_display_backlight_on, &message_green_255, &message_delay_10, NULL, };