WiFiScan.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #ifndef WiFiScan_h
  2. #define WiFiScan_h
  3. #include <BLEDevice.h>
  4. #include <BLEUtils.h>
  5. #include <BLEScan.h>
  6. #include <BLEAdvertisedDevice.h>
  7. #include "esp_wifi.h"
  8. #include "esp_wifi_types.h"
  9. #include "Display.h"
  10. //#include "MenuFunctions.h"
  11. #define bad_list_length 3
  12. #define WIFI_SCAN_OFF 0
  13. #define WIFI_SCAN_PROBE 1
  14. #define WIFI_SCAN_AP 2
  15. #define WIFI_SCAN_ST 3
  16. #define WIFI_SCAN_ALL 4
  17. #define BT_SCAN_ALL 5
  18. #define BT_SCAN_SKIMMERS 6
  19. extern Display display_obj;
  20. class WiFiScan
  21. {
  22. private:
  23. uint32_t initTime = 0;
  24. bool run_setup = true;
  25. int set_channel = 1;
  26. int bluetoothScanTime = 5;
  27. const wifi_promiscuous_filter_t filt = {.filter_mask=WIFI_PROMIS_FILTER_MASK_MGMT | WIFI_PROMIS_FILTER_MASK_DATA};
  28. BLEScan* pBLEScan;
  29. typedef struct
  30. {
  31. int16_t fctl;
  32. int16_t duration;
  33. uint8_t da;
  34. uint8_t sa;
  35. uint8_t bssid;
  36. int16_t seqctl;
  37. unsigned char payload[];
  38. } __attribute__((packed)) WifiMgmtHdr;
  39. typedef struct {
  40. WifiMgmtHdr hdr;
  41. uint8_t payload[0];
  42. } wifi_ieee80211_packet_t;
  43. void RunBeaconScan(uint8_t scan_mode, uint16_t color);
  44. void RunProbeScan(uint8_t scan_mode, uint16_t color);
  45. void RunBluetoothScan(uint8_t scan_mode, uint16_t color);
  46. static void scanCompleteCB(BLEScanResults scanResults);
  47. public:
  48. WiFiScan();
  49. void channelHop();
  50. uint8_t currentScanMode = 0;
  51. void main(uint32_t currentTime);
  52. void StartScan(uint8_t scan_mode, uint16_t color = 0);
  53. void StopScan(uint8_t scan_mode);
  54. static void getMAC(char *addr, uint8_t* data, uint16_t offset);
  55. static void beaconSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type);
  56. static void probeSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type);
  57. };
  58. #endif