pc_monitor.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #pragma once
  2. #include <furi.h>
  3. #include <furi_hal.h>
  4. #include <furi_hal_bt.h>
  5. #include <furi_hal_bt_serial.h>
  6. #include <bt/bt_service/bt.h>
  7. #include <gui/gui.h>
  8. #include <gui/elements.h>
  9. #include <notification/notification_messages.h>
  10. #include <input/input.h>
  11. #define TAG "PCMonitor"
  12. #define BT_SERIAL_BUFFER_SIZE 128
  13. #define BAR_X 30
  14. #define BAR_MARGIN 14
  15. #define BAR_WIDTH 98
  16. typedef enum {
  17. BtStateChecking,
  18. BtStateInactive,
  19. BtStateWaiting,
  20. BtStateRecieving,
  21. BtStateNoData,
  22. BtStateLost
  23. } BtState;
  24. #pragma pack(push, 1)
  25. typedef struct {
  26. uint8_t cpu_usage;
  27. uint16_t ram_max;
  28. uint8_t ram_usage;
  29. char ram_unit[4];
  30. uint8_t gpu_usage;
  31. uint16_t vram_max;
  32. uint8_t vram_usage;
  33. char vram_unit[4];
  34. } DataStruct;
  35. #pragma pack(pop)
  36. typedef struct {
  37. Bt* bt;
  38. Gui* gui;
  39. ViewPort* view_port;
  40. FuriMutex* app_mutex;
  41. FuriMessageQueue* event_queue;
  42. NotificationApp* notification;
  43. BtState bt_state;
  44. DataStruct data;
  45. uint32_t last_packet;
  46. } PcMonitorApp;