parent
978df41691
commit
7ba8b8f985
@ -108,9 +108,9 @@ extern std::array<uint64_t, 0xff> beacons;
|
|||||||
|
|
||||||
extern configData_t cfg; // current device configuration
|
extern configData_t cfg; // current device configuration
|
||||||
extern char display_line6[], display_line7[]; // screen buffers
|
extern char display_line6[], display_line7[]; // screen buffers
|
||||||
|
extern uint8_t volatile channel; // wifi channel rotation counter
|
||||||
extern uint16_t volatile macs_total, macs_wifi, macs_ble,
|
extern uint16_t volatile macs_total, macs_wifi, macs_ble,
|
||||||
batt_voltage; // display values
|
batt_voltage; // display values
|
||||||
extern uint32_t volatile PacketCounter; // sniffed packet counter
|
|
||||||
extern bool volatile TimePulseTick; // 1sec pps flag set by GPS or RTC
|
extern bool volatile TimePulseTick; // 1sec pps flag set by GPS or RTC
|
||||||
extern timesource_t timeSource;
|
extern timesource_t timeSource;
|
||||||
extern hw_timer_t *displayIRQ, *matrixDisplayIRQ, *ppsIRQ, *gpsIRQ;
|
extern hw_timer_t *displayIRQ, *matrixDisplayIRQ, *ppsIRQ, *gpsIRQ;
|
||||||
|
@ -11,13 +11,12 @@ Display-Mask (128 x 64 pixel):
|
|||||||
1|PAX:aabbccddee
|
1|PAX:aabbccddee
|
||||||
2|B:a.bcV Sats:ab
|
2|B:a.bcV Sats:ab
|
||||||
3|BLTH:abcde SF:ab
|
3|BLTH:abcde SF:ab
|
||||||
4|WIFI:abcde ****
|
4|WIFI:abcde ch:ab
|
||||||
5|RLIM:abcd abcdKB
|
5|RLIM:abcd abcdKB
|
||||||
6|xxxxxxxxxxxxxxxx
|
6|xxxxxxxxxxxxxxxx
|
||||||
6|20:27:00* 27.Feb
|
6|20:27:00* 27.Feb
|
||||||
7|yyyyyyyyyyyyyyab
|
7|yyyyyyyyyyyyyyab
|
||||||
|
|
||||||
line 4: **** = Packet traffic indicator
|
|
||||||
line 6: x = Text for LORA status OR time/date
|
line 6: x = Text for LORA status OR time/date
|
||||||
line 7: y = Text for LMIC status; ab = payload queue
|
line 7: y = Text for LMIC status; ab = payload queue
|
||||||
|
|
||||||
@ -225,22 +224,11 @@ void draw_page(time_t t, uint8_t page) {
|
|||||||
u8x8.setInverseFont(0);
|
u8x8.setInverseFont(0);
|
||||||
#endif // HAS_LORA
|
#endif // HAS_LORA
|
||||||
|
|
||||||
// line 4: update wifi counter + packet density display
|
// line 4: update wifi counter + channel display
|
||||||
u8x8.setCursor(0, 4);
|
u8x8.setCursor(0, 4);
|
||||||
u8x8.printf("WIFI:%-5d", macs_wifi);
|
u8x8.printf("WIFI:%-5d", macs_wifi);
|
||||||
// display and reset packetcounter
|
u8x8.setCursor(11, 4);
|
||||||
u8x8.setCursor(12, 4);
|
u8x8.printf("ch:%02d", channel);
|
||||||
if (PacketCounter > (100000 / DISPLAYREFRESH_MS))
|
|
||||||
u8x8.printf("****");
|
|
||||||
else if (PacketCounter > (10000 / DISPLAYREFRESH_MS))
|
|
||||||
u8x8.printf(" ***");
|
|
||||||
else if (PacketCounter > (1000 / DISPLAYREFRESH_MS))
|
|
||||||
u8x8.printf(" **");
|
|
||||||
else if (PacketCounter > 0)
|
|
||||||
u8x8.printf(" *");
|
|
||||||
else
|
|
||||||
u8x8.printf(" ");
|
|
||||||
PacketCounter = 0;
|
|
||||||
|
|
||||||
// line 5: update RSSI limiter status & free memory display
|
// line 5: update RSSI limiter status & free memory display
|
||||||
u8x8.setCursor(0, 5);
|
u8x8.setCursor(0, 5);
|
||||||
|
@ -81,9 +81,9 @@ triggers pps 1 sec impulse
|
|||||||
|
|
||||||
configData_t cfg; // struct holds current device configuration
|
configData_t cfg; // struct holds current device configuration
|
||||||
char display_line6[16], display_line7[16]; // display buffers
|
char display_line6[16], display_line7[16]; // display buffers
|
||||||
|
uint8_t volatile channel = 0; // channel rotation counter
|
||||||
uint16_t volatile macs_total = 0, macs_wifi = 0, macs_ble = 0,
|
uint16_t volatile macs_total = 0, macs_wifi = 0, macs_ble = 0,
|
||||||
batt_voltage = 0; // globals for display
|
batt_voltage = 0; // globals for display
|
||||||
uint32_t volatile PacketCounter = 0; // sniffed packet counter
|
|
||||||
|
|
||||||
hw_timer_t *ppsIRQ = NULL, *displayIRQ = NULL, *matrixDisplayIRQ = NULL,
|
hw_timer_t *ppsIRQ = NULL, *displayIRQ = NULL, *matrixDisplayIRQ = NULL,
|
||||||
*gpsIRQ = NULL;
|
*gpsIRQ = NULL;
|
||||||
|
@ -37,8 +37,6 @@ IRAM_ATTR void wifi_sniffer_packet_handler(void *buff,
|
|||||||
(wifi_ieee80211_packet_t *)ppkt->payload;
|
(wifi_ieee80211_packet_t *)ppkt->payload;
|
||||||
const wifi_ieee80211_mac_hdr_t *hdr = &ipkt->hdr;
|
const wifi_ieee80211_mac_hdr_t *hdr = &ipkt->hdr;
|
||||||
|
|
||||||
PacketCounter++; // increase packets per second counter
|
|
||||||
|
|
||||||
if ((cfg.rssilimit) &&
|
if ((cfg.rssilimit) &&
|
||||||
(ppkt->rx_ctrl.rssi < cfg.rssilimit)) // rssi is negative value
|
(ppkt->rx_ctrl.rssi < cfg.rssilimit)) // rssi is negative value
|
||||||
ESP_LOGD(TAG, "WiFi RSSI %d -> ignoring (limit: %d)", ppkt->rx_ctrl.rssi,
|
ESP_LOGD(TAG, "WiFi RSSI %d -> ignoring (limit: %d)", ppkt->rx_ctrl.rssi,
|
||||||
@ -47,9 +45,8 @@ IRAM_ATTR void wifi_sniffer_packet_handler(void *buff,
|
|||||||
mac_add((uint8_t *)hdr->addr2, ppkt->rx_ctrl.rssi, MAC_SNIFF_WIFI);
|
mac_add((uint8_t *)hdr->addr2, ppkt->rx_ctrl.rssi, MAC_SNIFF_WIFI);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Software-timer driven Wifi channel rotation function
|
// Software-timer driven Wifi channel rotation callback function
|
||||||
void switchWifiChannel(TimerHandle_t xTimer) {
|
void switchWifiChannel(TimerHandle_t xTimer) {
|
||||||
static uint8_t channel = 0; // channel rotation counter
|
|
||||||
channel =
|
channel =
|
||||||
(channel % WIFI_CHANNEL_MAX) + 1; // rotate channel 1..WIFI_CHANNEL_MAX
|
(channel % WIFI_CHANNEL_MAX) + 1; // rotate channel 1..WIFI_CHANNEL_MAX
|
||||||
esp_wifi_set_channel(channel, WIFI_SECOND_CHAN_NONE);
|
esp_wifi_set_channel(channel, WIFI_SECOND_CHAN_NONE);
|
||||||
@ -60,13 +57,13 @@ void wifi_sniffer_init(void) {
|
|||||||
wificfg.nvs_enable = 0; // we don't need any wifi settings from NVRAM
|
wificfg.nvs_enable = 0; // we don't need any wifi settings from NVRAM
|
||||||
wificfg.wifi_task_core_id = 0; // we want wifi task running on core 0
|
wificfg.wifi_task_core_id = 0; // we want wifi task running on core 0
|
||||||
|
|
||||||
wifi_promiscuous_filter_t filter = {
|
// wifi_promiscuous_filter_t filter = {
|
||||||
.filter_mask = WIFI_PROMIS_FILTER_MASK_MGMT}; // only MGMT frames
|
// .filter_mask = WIFI_PROMIS_FILTER_MASK_MGMT}; // only MGMT frames
|
||||||
// .filter_mask = WIFI_PROMIS_FILTER_MASK_ALL}; // we use all frames
|
// .filter_mask = WIFI_PROMIS_FILTER_MASK_ALL}; // we use all frames
|
||||||
|
|
||||||
// wifi_promiscuous_filter_t filter = {.filter_mask =
|
wifi_promiscuous_filter_t filter = {.filter_mask =
|
||||||
// WIFI_PROMIS_FILTER_MASK_MGMT |
|
WIFI_PROMIS_FILTER_MASK_MGMT |
|
||||||
// WIFI_PROMIS_FILTER_MASK_DATA};
|
WIFI_PROMIS_FILTER_MASK_DATA};
|
||||||
|
|
||||||
ESP_ERROR_CHECK(esp_wifi_init(&wificfg)); // configure Wifi with cfg
|
ESP_ERROR_CHECK(esp_wifi_init(&wificfg)); // configure Wifi with cfg
|
||||||
ESP_ERROR_CHECK(
|
ESP_ERROR_CHECK(
|
||||||
|
Loading…
Reference in New Issue
Block a user