wardriver.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #pragma once
  2. #include <furi.h>
  3. #include <furi_hal.h>
  4. #include <gui/gui.h>
  5. #include <gui/elements.h>
  6. #include <notification/notification_messages.h>
  7. #include <assets_icons.h>
  8. #include <toolbox/stream/file_stream.h>
  9. #include <momentum/momentum.h>
  10. #include "helpers/minmea.h"
  11. #include "wardriver_icons.h"
  12. #define appname "ll-wardriver"
  13. #define RX_BUF_SIZE 2048
  14. #define MAX_ACCESS_POINTS 2048
  15. #define MAX_SSID_LENGTH 32
  16. #define MAX_BSSID_LENGTH 18
  17. #define FILE_PATH EXT_PATH("apps_data/ll-wardriver")
  18. typedef enum {
  19. EventTypeKey,
  20. EventTypeTick,
  21. } EventType;
  22. typedef struct {
  23. EventType type;
  24. InputEvent input;
  25. } Event;
  26. typedef enum {
  27. SHOW_NMEA,
  28. NORMAL,
  29. NO_APS
  30. } ViewState;
  31. typedef struct {
  32. char* recievedMac;
  33. char* sentMac;
  34. } Packet;
  35. typedef struct {
  36. char* ssid;
  37. char* bssid;
  38. int8_t rssi;
  39. uint8_t channel;
  40. DateTime datetime;
  41. uint16_t packetRxCount;
  42. uint16_t packetTxCount;
  43. float latitude;
  44. float longitude;
  45. } AccessPoint;
  46. typedef struct {
  47. float latitude;
  48. float longitude;
  49. uint8_t hour;
  50. uint8_t minute;
  51. uint8_t second;
  52. uint8_t satelites;
  53. } GpsData;
  54. typedef struct {
  55. FuriMessageQueue* queue;
  56. FuriMutex* mutex;
  57. FuriThread* thread_esp;
  58. FuriStreamBuffer* rx_stream_esp;
  59. uint8_t rx_buf_esp[2048];
  60. FuriHalSerialHandle* serial_handle_esp;
  61. FuriThread* thread_gps;
  62. FuriStreamBuffer* rx_stream_gps;
  63. uint8_t rx_buf_gps[2048];
  64. FuriHalSerialHandle* serial_handle_gps;
  65. uint16_t access_points_count;
  66. AccessPoint access_points[MAX_ACCESS_POINTS];
  67. int16_t access_points_index;
  68. AccessPoint active_access_point;
  69. bool extra_info;
  70. bool pressedButton;
  71. ViewState view_state;
  72. GpsData gps_data;
  73. } Context;