Tryout for on demand switching between BLE and Wifi counting in libpax
This commit is contained in:
parent
3f3027aa69
commit
93dcace8bd
10
include/libpax_helpers.h
Normal file
10
include/libpax_helpers.h
Normal file
@ -0,0 +1,10 @@
|
||||
#ifndef _LIBPAX_HELPERS_H
|
||||
#define _LIBPAX_HELPERS_H
|
||||
|
||||
#include "globals.h"
|
||||
#include <stdio.h>
|
||||
#include <libpax_api.h>
|
||||
|
||||
void init_libpax();
|
||||
|
||||
#endif
|
18
src/libpax_helpers.cpp
Normal file
18
src/libpax_helpers.cpp
Normal file
@ -0,0 +1,18 @@
|
||||
#include "libpax_helpers.h"
|
||||
|
||||
// libpax payload
|
||||
#ifdef LIBPAX
|
||||
struct count_payload_t count_from_libpax;
|
||||
uint16_t volatile libpax_macs_ble, libpax_macs_wifi;
|
||||
|
||||
void process_count(void) {
|
||||
printf("pax: %d; %d; %d;\n", count_from_libpax.pax, count_from_libpax.wifi_count, count_from_libpax.ble_count);
|
||||
libpax_macs_ble = count_from_libpax.ble_count;
|
||||
libpax_macs_wifi = count_from_libpax.wifi_count;
|
||||
}
|
||||
|
||||
void init_libpax() {
|
||||
libpax_counter_init(process_count, &count_from_libpax, 60*1000, 1);
|
||||
libpax_counter_start();
|
||||
}
|
||||
#endif
|
16
src/main.cpp
16
src/main.cpp
@ -86,6 +86,7 @@ triggers pps 1 sec impulse
|
||||
|
||||
// Basic Config
|
||||
#include "main.h"
|
||||
#include "libpax_helpers.h"
|
||||
|
||||
configData_t cfg; // struct holds current device configuration
|
||||
char lmic_event_msg[LMIC_EVENTMSG_LEN]; // display buffer for LMIC event message
|
||||
@ -96,8 +97,6 @@ uint8_t volatile channel = WIFI_CHANNEL_MIN; // channel rotation counter
|
||||
uint8_t volatile rf_load = 0; // RF traffic indicator
|
||||
#ifndef LIBPAX
|
||||
uint16_t volatile macs_wifi = 0, macs_ble = 0; // globals for display
|
||||
#else
|
||||
uint16_t volatile libpax_macs_ble, libpax_macs_wifi;
|
||||
#endif
|
||||
|
||||
hw_timer_t *ppsIRQ = NULL, *displayIRQ = NULL, *matrixDisplayIRQ = NULL;
|
||||
@ -119,16 +118,6 @@ TimeChangeRule myDST = DAYLIGHT_TIME;
|
||||
TimeChangeRule mySTD = STANDARD_TIME;
|
||||
Timezone myTZ(myDST, mySTD);
|
||||
|
||||
// libpax payload
|
||||
#ifdef LIBPAX
|
||||
struct count_payload_t count_from_libpax;
|
||||
|
||||
void process_count(void) {
|
||||
printf("pax: %d; %d; %d;\n", count_from_libpax.pax, count_from_libpax.wifi_count, count_from_libpax.ble_count);
|
||||
libpax_macs_ble = count_from_libpax.ble_count;
|
||||
libpax_macs_wifi = count_from_libpax.wifi_count;
|
||||
}
|
||||
#endif
|
||||
|
||||
// local Tag for logging
|
||||
static const char TAG[] = __FILE__;
|
||||
@ -340,8 +329,7 @@ ESP_LOGI(TAG, "Starting libpax...");
|
||||
if(config_update != 0) {
|
||||
ESP_LOGE(TAG, "Error in libpax configuration.");
|
||||
} else {
|
||||
libpax_counter_init(process_count, &count_from_libpax, 60*1000, 1);
|
||||
libpax_counter_start();
|
||||
init_libpax();
|
||||
}
|
||||
} else {
|
||||
ESP_LOGE(TAG, "Error in libpax configuration: Wifi and BLE are not supported at the same time!");
|
||||
|
@ -1,6 +1,7 @@
|
||||
// Basic Config
|
||||
#include "globals.h"
|
||||
#include "rcommand.h"
|
||||
#include "libpax_helpers.h"
|
||||
|
||||
// Local logging tag
|
||||
static const char TAG[] = __FILE__;
|
||||
@ -248,27 +249,47 @@ 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
|
||||
macs_ble = 0; // clear BLE counter
|
||||
cfg.blescan = val[0] ? 1 : 0;
|
||||
if (cfg.blescan)
|
||||
start_BLEscan();
|
||||
else
|
||||
stop_BLEscan();
|
||||
#else
|
||||
// TODO update libpax configuration
|
||||
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();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
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
|
||||
macs_wifi = 0; // clear WIFI counter
|
||||
cfg.wifiscan = val[0] ? 1 : 0;
|
||||
switch_wifi_sniffer(cfg.wifiscan);
|
||||
#else
|
||||
// TODO update libpax configuration
|
||||
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();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user