wifiscan.cpp: fix wifi on/off

This commit is contained in:
Verkehrsrot 2019-11-17 14:13:48 +01:00
parent f6654a47e7
commit 41fd41b59b
2 changed files with 7 additions and 4 deletions

View File

@ -7,11 +7,11 @@
; ---> SELECT THE TARGET PLATFORM HERE! <--- ; ---> SELECT THE TARGET PLATFORM HERE! <---
[board] [board]
;halfile = generic.h halfile = generic.h
;halfile = ebox.h ;halfile = ebox.h
;halfile = eboxtube.h ;halfile = eboxtube.h
;halfile = ecopower.h ;halfile = ecopower.h
halfile = heltec.h ;halfile = heltec.h
;halfile = heltecv2.h ;halfile = heltecv2.h
;halfile = ttgov1.h ;halfile = ttgov1.h
;halfile = ttgov2.h ;halfile = ttgov2.h
@ -43,7 +43,7 @@ description = Paxcounter is a device for metering passenger flows in realtime. I
[common] [common]
; for release_version use max. 10 chars total, use any decimal format like "a.b.c" ; for release_version use max. 10 chars total, use any decimal format like "a.b.c"
release_version = 1.9.8 release_version = 1.9.81
; DEBUG LEVEL: For production run set to 0, otherwise device will leak RAM while running! ; DEBUG LEVEL: For production run set to 0, otherwise device will leak RAM while running!
; 0=None, 1=Error, 2=Warn, 3=Info, 4=Debug, 5=Verbose ; 0=None, 1=Error, 2=Warn, 3=Info, 4=Debug, 5=Verbose
debug_level = 3 debug_level = 3

View File

@ -47,6 +47,7 @@ wifi_sniffer_packet_handler(void *buff, wifi_promiscuous_pkt_type_t type) {
// Software-timer driven Wifi channel rotation callback function // Software-timer driven Wifi channel rotation callback function
void switchWifiChannel(TimerHandle_t xTimer) { void switchWifiChannel(TimerHandle_t xTimer) {
configASSERT(xTimer);
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);
@ -85,14 +86,16 @@ void wifi_sniffer_init(void) {
void switch_wifi_sniffer(uint8_t state) { void switch_wifi_sniffer(uint8_t state) {
assert(WifiChanTimer); assert(WifiChanTimer);
if ((state ? 1 : 0) == 1) { if (state) {
// switch wifi sniffer on // switch wifi sniffer on
ESP_ERROR_CHECK(esp_wifi_start());
xTimerStart(WifiChanTimer, 0); xTimerStart(WifiChanTimer, 0);
esp_wifi_set_promiscuous(true); esp_wifi_set_promiscuous(true);
} else { } else {
// switch wifi sniffer off // switch wifi sniffer off
xTimerStop(WifiChanTimer, 0); xTimerStop(WifiChanTimer, 0);
esp_wifi_set_promiscuous(false); esp_wifi_set_promiscuous(false);
ESP_ERROR_CHECK(esp_wifi_stop());
macs_wifi = 0; // clear WIFI counter macs_wifi = 0; // clear WIFI counter
} }
} }