#include #include #include #include #include #include #include #include #include #include #define LINES_ON_SCREEN 6 #define COLUMNS_ON_SCREEN 21 static const NotificationSequence sequence_alarm = { &message_display_backlight_on, &message_red_255, //&message_vibro_on, &message_note_d5, &message_delay_100, //&message_vibro_off, &message_sound_off, &message_note_b4, &message_delay_50, &message_sound_off, &message_display_backlight_off, //&message_red_0, //&message_delay_50, NULL, }; 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, };*/