Reenable BLE Wifi switching for libpax
This commit is contained in:
parent
93dcace8bd
commit
d9cdeddecf
@ -12,7 +12,7 @@
|
||||
#include "sdcard.h"
|
||||
#include "macsniff.h"
|
||||
#include "reset.h"
|
||||
#ifdef LIBPAX
|
||||
#if LIBPAX
|
||||
#include <libpax_api.h>
|
||||
#endif
|
||||
|
||||
|
@ -141,7 +141,7 @@ extern uint8_t volatile channel; // wifi channel rotation counter
|
||||
extern uint8_t volatile rf_load; // RF traffic indicator
|
||||
extern uint8_t batt_level; // display value
|
||||
extern uint16_t volatile macs_wifi, macs_ble; // display values
|
||||
#ifdef LIBPAX
|
||||
#if LIBPAX
|
||||
extern uint16_t volatile libpax_macs_ble, libpax_macs_wifi; // libpax values
|
||||
#endif
|
||||
extern bool volatile TimePulseTick; // 1sec pps flag set by GPS or RTC
|
||||
|
@ -14,7 +14,7 @@
|
||||
#include "corona.h"
|
||||
#endif
|
||||
|
||||
#if (LIBPAX)
|
||||
#if LIBPAX
|
||||
#include <libpax_api.h>
|
||||
|
||||
extern struct count_payload_t count_from_libpax;
|
||||
|
@ -89,7 +89,7 @@ lib_deps_basic =
|
||||
lewisxhe/AXP202X_Library @ ^1.1.3
|
||||
geeksville/esp32-micro-sdcard @ ^0.1.1
|
||||
256dpi/MQTT @ ^2.4.7
|
||||
https://github.com/dbSuS/libpax
|
||||
https://github.com/dbSuS/libpax#v0.1.1
|
||||
lib_deps_all =
|
||||
${common.lib_deps_basic}
|
||||
${common.lib_deps_lora}
|
||||
|
@ -1,4 +1,4 @@
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
// some code snippets taken from
|
||||
// https://github.com/nkolban/esp32-snippets/tree/master/BLE/scanner
|
||||
|
||||
|
@ -136,7 +136,7 @@ uint32_t getFreeRAM() {
|
||||
void reset_counters() {
|
||||
|
||||
#if ((WIFICOUNTER) || (BLECOUNTER))
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
macs.clear(); // clear all macs container
|
||||
macs_wifi = 0;
|
||||
macs_ble = 0;
|
||||
|
@ -262,7 +262,7 @@ void dp_drawPage(time_t t, bool nextpage) {
|
||||
|
||||
#if ((WIFICOUNTER) && (BLECOUNTER))
|
||||
if (cfg.wifiscan)
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
dp_printf("WIFI:%-5d", macs_wifi);
|
||||
#else
|
||||
dp_printf("WIFI:%-5d", libpax_macs_wifi);
|
||||
@ -275,7 +275,7 @@ void dp_drawPage(time_t t, bool nextpage) {
|
||||
dp_printf(" CWA:%-5d", cwa_report());
|
||||
else
|
||||
#endif
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
dp_printf("BLTH:%-5d", macs_ble);
|
||||
#else
|
||||
dp_printf("BLTH:%-5d", libpax_macs_ble);
|
||||
@ -284,7 +284,7 @@ void dp_drawPage(time_t t, bool nextpage) {
|
||||
dp_printf(" BLTH:off");
|
||||
#elif ((WIFICOUNTER) && (!BLECOUNTER))
|
||||
if (cfg.wifiscan)
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
dp_printf("WIFI:%-5d", macs_wifi);
|
||||
#else
|
||||
dp_printf("WIFI:%-5d", libpax_macs_wifi);
|
||||
@ -293,7 +293,7 @@ void dp_drawPage(time_t t, bool nextpage) {
|
||||
dp_printf("WIFI:off");
|
||||
#elif ((!WIFICOUNTER) && (BLECOUNTER))
|
||||
if (cfg.blescan)
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
dp_printf("BLTH:%-5d", macs_ble);
|
||||
#else
|
||||
dp_printf("BLTH:%-5d", libpax_macs_ble);
|
||||
|
@ -1,7 +1,7 @@
|
||||
#include "libpax_helpers.h"
|
||||
|
||||
// libpax payload
|
||||
#ifdef LIBPAX
|
||||
#if LIBPAX
|
||||
struct count_payload_t count_from_libpax;
|
||||
uint16_t volatile libpax_macs_ble, libpax_macs_wifi;
|
||||
|
||||
|
43
src/main.cpp
43
src/main.cpp
@ -91,11 +91,11 @@ triggers pps 1 sec impulse
|
||||
configData_t cfg; // struct holds current device configuration
|
||||
char lmic_event_msg[LMIC_EVENTMSG_LEN]; // display buffer for LMIC event message
|
||||
uint8_t batt_level = 0; // display value
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
uint8_t volatile channel = WIFI_CHANNEL_MIN; // channel rotation counter
|
||||
#endif
|
||||
uint8_t volatile rf_load = 0; // RF traffic indicator
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
uint16_t volatile macs_wifi = 0, macs_ble = 0; // globals for display
|
||||
#endif
|
||||
|
||||
@ -304,35 +304,31 @@ void setup() {
|
||||
if (RTC_runmode == RUNMODE_MAINTENANCE)
|
||||
start_boot_menu();
|
||||
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
// start mac processing task
|
||||
ESP_LOGI(TAG, "Starting MAC processor...");
|
||||
macQueueInit();
|
||||
#else
|
||||
ESP_LOGI(TAG, "Starting libpax...");
|
||||
ESP_LOGI(TAG, "Starting libpax...");
|
||||
#if (defined WIFICOUNTER || defined BLECOUNTER)
|
||||
struct libpax_config_t configuration;
|
||||
libpax_default_config(&configuration);
|
||||
ESP_LOGI(TAG, "BLESCAN: %d", cfg.blescan);
|
||||
ESP_LOGI(TAG, "WIFISCAN: %d", cfg.wifiscan);
|
||||
if(!(cfg.blescan && cfg.wifiscan)) {
|
||||
configuration.wificounter = cfg.wifiscan;
|
||||
configuration.blecounter = cfg.blescan;
|
||||
configuration.wificounter = cfg.wifiscan;
|
||||
configuration.blecounter = cfg.blescan;
|
||||
|
||||
configuration.wifi_channel_map = WIFI_CHANNEL_ALL;
|
||||
configuration.wifi_channel_switch_interval = cfg.wifichancycle;
|
||||
configuration.wifi_rssi_threshold = cfg.rssilimit;
|
||||
configuration.wifi_channel_map = WIFI_CHANNEL_ALL;
|
||||
configuration.wifi_channel_switch_interval = cfg.wifichancycle;
|
||||
configuration.wifi_rssi_threshold = cfg.rssilimit;
|
||||
|
||||
configuration.blescantime = cfg.blescantime;
|
||||
configuration.blescantime = cfg.blescantime;
|
||||
|
||||
int config_update = libpax_update_config(&configuration);
|
||||
if(config_update != 0) {
|
||||
ESP_LOGE(TAG, "Error in libpax configuration.");
|
||||
} else {
|
||||
init_libpax();
|
||||
}
|
||||
int config_update = libpax_update_config(&configuration);
|
||||
if(config_update != 0) {
|
||||
ESP_LOGE(TAG, "Error in libpax configuration.");
|
||||
} else {
|
||||
ESP_LOGE(TAG, "Error in libpax configuration: Wifi and BLE are not supported at the same time!");
|
||||
init_libpax();
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
@ -345,7 +341,7 @@ ESP_LOGI(TAG, "Starting libpax...");
|
||||
// or remove bluetooth stack from RAM, if option bluetooth is not compiled
|
||||
#if (BLECOUNTER)
|
||||
strcat_P(features, " BLE");
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
if (cfg.blescan) {
|
||||
ESP_LOGI(TAG, "Starting Bluetooth...");
|
||||
start_BLEscan();
|
||||
@ -354,14 +350,15 @@ ESP_LOGI(TAG, "Starting libpax...");
|
||||
#endif
|
||||
#else
|
||||
// remove bluetooth stack to gain more free memory
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
btStop();
|
||||
#endif
|
||||
esp_bt_mem_release(ESP_BT_MODE_BTDM);
|
||||
esp_coex_preference_set(
|
||||
ESP_COEX_PREFER_WIFI); // configure Wifi/BT coexist lib
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
// initialize gps
|
||||
#if (HAS_GPS)
|
||||
strcat_P(features, " GPS");
|
||||
@ -466,7 +463,7 @@ ESP_LOGI(TAG, "Starting libpax...");
|
||||
|
||||
#if (WIFICOUNTER)
|
||||
strcat_P(features, " WIFI");
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
// install wifi driver in RAM and start channel hopping
|
||||
wifi_sniffer_init();
|
||||
// start wifi sniffing, if enabled
|
||||
@ -485,7 +482,7 @@ ESP_LOGI(TAG, "Starting libpax...");
|
||||
// initialize salt value using esp_random() called by random() in
|
||||
// arduino-esp32 core. Note: do this *after* wifi has started, since
|
||||
// function gets it's seed from RF noise
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
reset_counters();
|
||||
#endif
|
||||
|
||||
|
@ -30,7 +30,7 @@
|
||||
#define BLESCANINTERVAL 80 // [illiseconds] scan interval, see below, 3 .. 10240, default 80ms = 100% duty cycle
|
||||
|
||||
// Use libpax instead of default counting algorithms
|
||||
#define LIBPAX 1
|
||||
#define LIBPAX 0
|
||||
|
||||
// Corona Exposure Notification Service(ENS) counter
|
||||
#define COUNT_ENS 1 // count found number of devices which advertise Exposure Notification Service
|
||||
|
@ -97,7 +97,7 @@ void set_wifichancycle(uint8_t val[]) {
|
||||
|
||||
void set_blescantime(uint8_t val[]) {
|
||||
cfg.blescantime = val[0];
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
ESP_LOGI(TAG, "Remote command: set BLE scan time to %.1f seconds",
|
||||
cfg.blescantime / float(100));
|
||||
// stop & restart BLE scan task to apply new parameter
|
||||
@ -250,24 +250,19 @@ void set_loraadr(uint8_t val[]) {
|
||||
void set_blescan(uint8_t val[]) {
|
||||
ESP_LOGI(TAG, "Remote command: set BLE scanner to %s", val[0] ? "on" : "off");
|
||||
cfg.blescan = val[0] ? 1 : 0;
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
macs_ble = 0; // clear BLE counter
|
||||
if (cfg.blescan)
|
||||
start_BLEscan();
|
||||
else
|
||||
stop_BLEscan();
|
||||
#else
|
||||
if(cfg.blescan) {
|
||||
cfg.wifiscan = 0;
|
||||
// Restart of libpax while switching scannings does not work atm
|
||||
// libpax_counter_stop();
|
||||
// libpax_config_t current_config;
|
||||
// libpax_get_current_config(¤t_config);
|
||||
// current_config.wificounter = 0;
|
||||
// current_config.blecounter = 1;
|
||||
// libpax_update_config(¤t_config);
|
||||
// init_libpax();
|
||||
}
|
||||
libpax_counter_stop();
|
||||
libpax_config_t current_config;
|
||||
libpax_get_current_config(¤t_config);
|
||||
current_config.blecounter = cfg.blescan;
|
||||
libpax_update_config(¤t_config);
|
||||
init_libpax();
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -275,21 +270,16 @@ void set_wifiscan(uint8_t val[]) {
|
||||
ESP_LOGI(TAG, "Remote command: set WIFI scanner to %s",
|
||||
val[0] ? "on" : "off");
|
||||
cfg.wifiscan = val[0] ? 1 : 0;
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
macs_wifi = 0; // clear WIFI counter
|
||||
switch_wifi_sniffer(cfg.wifiscan);
|
||||
#else
|
||||
if(cfg.wifiscan) {
|
||||
cfg.blescan = 0;
|
||||
// Restart of libpax while switching scannings does not work atm
|
||||
// libpax_counter_stop();
|
||||
// libpax_config_t current_config;
|
||||
// libpax_get_current_config(¤t_config);
|
||||
// current_config.wificounter = 1;
|
||||
// current_config.blecounter = 0;
|
||||
// libpax_update_config(¤t_config);
|
||||
// init_libpax();
|
||||
}
|
||||
libpax_counter_stop();
|
||||
libpax_config_t current_config;
|
||||
libpax_get_current_config(¤t_config);
|
||||
current_config.wificounter = cfg.wifiscan;
|
||||
libpax_update_config(¤t_config);
|
||||
init_libpax();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -107,7 +107,7 @@ void enter_deepsleep(const uint64_t wakeup_sec, gpio_num_t wakeup_gpio) {
|
||||
sendTimer.detach();
|
||||
|
||||
// switch off radio and other power consuming hardware
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
#if (WIFICOUNTER)
|
||||
switch_wifi_sniffer(0);
|
||||
#endif
|
||||
|
@ -57,7 +57,7 @@ void SendPayload(uint8_t port) {
|
||||
// write data to sdcard, if present
|
||||
#if (HAS_SDCARD)
|
||||
if (port == COUNTERPORT) {
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
sdcardWriteData(macs_wifi, macs_ble
|
||||
#else
|
||||
sdcardWriteData(libpax_macs_wifi, libpax_macs_ble
|
||||
@ -91,14 +91,14 @@ void sendData() {
|
||||
case COUNT_DATA:
|
||||
payload.reset();
|
||||
#if !(PAYLOAD_OPENSENSEBOX)
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
payload.addCount(macs_wifi, MAC_SNIFF_WIFI);
|
||||
#else
|
||||
ESP_LOGI(TAG, "Sending libpax wifi count: %d", libpax_macs_wifi);
|
||||
payload.addCount(libpax_macs_wifi, MAC_SNIFF_WIFI);
|
||||
#endif
|
||||
if (cfg.blescan) {
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
payload.addCount(macs_ble, MAC_SNIFF_BLE);
|
||||
#else
|
||||
ESP_LOGI(TAG, "Sending libpax ble count: %d", libpax_macs_ble);
|
||||
@ -117,14 +117,14 @@ void sendData() {
|
||||
}
|
||||
#endif
|
||||
#if (PAYLOAD_OPENSENSEBOX)
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
payload.addCount(macs_wifi, MAC_SNIFF_WIFI);
|
||||
#else
|
||||
ESP_LOGI(TAG, "Sending libpax wifi count: %d", libpax_macs_wifi);
|
||||
payload.addCount(libpax_macs_wifi, MAC_SNIFF_WIFI);
|
||||
#endif
|
||||
if (cfg.blescan) {
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
payload.addCount(macs_ble, MAC_SNIFF_BLE);
|
||||
#else
|
||||
ESP_LOGI(TAG, "Sending libpax ble count: %d", libpax_macs_ble);
|
||||
|
@ -1,4 +1,4 @@
|
||||
#ifndef LIBPAX
|
||||
#if !(LIBPAX)
|
||||
// Basic Config
|
||||
#include "globals.h"
|
||||
#include "wifiscan.h"
|
||||
|
Loading…
Reference in New Issue
Block a user