wardriver.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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 <xtreme/xtreme.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 { SHOW_NMEA, NORMAL, NO_APS } ViewState;
  27. typedef struct {
  28. char* recievedMac;
  29. char* sentMac;
  30. } Packet;
  31. typedef struct {
  32. char* ssid;
  33. char* bssid;
  34. int8_t rssi;
  35. uint8_t channel;
  36. FuriHalRtcDateTime datetime;
  37. uint16_t packetRxCount;
  38. uint16_t packetTxCount;
  39. float latitude;
  40. float longitude;
  41. } AccessPoint;
  42. typedef struct {
  43. float latitude;
  44. float longitude;
  45. uint8_t hour;
  46. uint8_t minute;
  47. uint8_t second;
  48. uint8_t satelites;
  49. } GpsData;
  50. typedef struct {
  51. FuriMessageQueue* queue;
  52. FuriMutex* mutex;
  53. FuriString* buffer;
  54. FuriThread* thread_esp;
  55. FuriStreamBuffer* rx_stream_esp;
  56. uint8_t rx_buf_esp[2048];
  57. FuriHalSerialHandle* serial_handle_esp;
  58. FuriThread* thread_gps;
  59. FuriStreamBuffer* rx_stream_gps;
  60. uint8_t rx_buf_gps[2048];
  61. FuriHalSerialHandle* serial_handle_gps;
  62. uint16_t access_points_count;
  63. AccessPoint access_points[MAX_ACCESS_POINTS];
  64. int16_t access_points_index;
  65. AccessPoint active_access_point;
  66. bool extra_info;
  67. bool pressedButton;
  68. ViewState view_state;
  69. GpsData gps_data;
  70. } Context;