libpax integration fixes (sendtimer, rcommands)

This commit is contained in:
cyberman54 committed 2021-04-13 16:37:17 +02:00
1 parent 44e5daaf02
commit 71aa55863b
6 files changed
+48 -9

No files matched your search

+5 -1
View File
@@ -281,8 +281,9 @@ void setup() {
if (RTC_runmode == RUNMODE_MAINTENANCE)
start_boot_menu();
#if ((WIFICOUNTER) || (BLECOUNTER))
// use libpax timer to trigger cyclic senddata
ESP_LOGI(TAG, "Starting libpax...");
#if (defined WIFICOUNTER || defined BLECOUNTER)
struct libpax_config_t configuration;
libpax_default_config(&configuration);
@@ -304,6 +305,9 @@ void setup() {
} else {
init_libpax();
}
#else
// use stand alone timer to trigger cyclic senddata
initSendDataTimer(cfg.sendcycle * 2);
#endif
#if (BLECOUNTER)
+20 -1
View File
@@ -55,27 +55,38 @@ void set_reset(uint8_t val[]) {
void set_rssi(uint8_t val[]) {
cfg.rssilimit = val[0] * -1;
#if ((WIFICOUNTER) || (BLECOUNTER))
libpax_counter_stop();
libpax_config_t current_config;
libpax_get_current_config(&current_config);
current_config.wifi_rssi_threshold = cfg.rssilimit;
libpax_update_config(&current_config);
init_libpax();
#endif
ESP_LOGI(TAG, "Remote command: set RSSI limit to %d", cfg.rssilimit);
}
void set_sendcycle(uint8_t val[]) {
cfg.sendcycle = val[0];
if (val[0] < 5)
return;
// update send cycle interrupt [seconds / 2]
cfg.sendcycle = val[0];
ESP_LOGI(TAG, "Remote command: set send cycle to %d seconds",
cfg.sendcycle * 2);
#if ((WIFICOUNTER) || (BLECOUNTER))
libpax_counter_stop();
init_libpax();
#else
// modify senddata timer
initSendDataTimer(cfg.sendcycle * 2);
#endif
}
void set_sleepcycle(uint8_t val[]) {
// swap byte order from msb to lsb, note: this is a platform dependent hack
uint16_t t = __builtin_bswap16(*(uint16_t *)(val));
if (t == 0)
return;
cfg.sleepcycle = t;
ESP_LOGI(TAG, "Remote command: set sleep cycle to %d seconds",
cfg.sleepcycle * 10);
@@ -83,6 +94,7 @@ void set_sleepcycle(uint8_t val[]) {
void set_wifichancycle(uint8_t val[]) {
cfg.wifichancycle = val[0];
#if (WIFICOUNTER)
libpax_counter_stop();
libpax_config_t current_config;
libpax_get_current_config(&current_config);
@@ -100,16 +112,19 @@ void set_wifichancycle(uint8_t val[]) {
current_config.wifi_channel_switch_interval = cfg.wifichancycle;
libpax_update_config(&current_config);
init_libpax();
#endif
}
void set_blescantime(uint8_t val[]) {
cfg.blescantime = val[0];
#if (BLECOUNTER)
libpax_counter_stop();
libpax_config_t current_config;
libpax_get_current_config(&current_config);
current_config.blescantime = cfg.blescantime;
libpax_update_config(&current_config);
init_libpax();
#endif
}
void set_countmode(uint8_t val[]) {
@@ -257,24 +272,28 @@ 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;
#if (BLECOUNTER)
libpax_counter_stop();
libpax_config_t current_config;
libpax_get_current_config(&current_config);
current_config.blecounter = cfg.blescan;
libpax_update_config(&current_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;
#if (WIFICOUNTER)
libpax_counter_stop();
libpax_config_t current_config;
libpax_get_current_config(&current_config);
current_config.wificounter = cfg.wifiscan;
libpax_update_config(&current_config);
init_libpax();
#endif
}
void set_wifiant(uint8_t val[]) {
+17 -3
View File
@@ -1,7 +1,22 @@
// Basic Config
#include "senddata.h"
void setSendIRQ() { xTaskNotify(irqHandlerTask, SENDCYCLE_IRQ, eSetBits); }
void setSendIRQ(TimerHandle_t xTimer) {
xTaskNotify(irqHandlerTask, SENDCYCLE_IRQ, eSetBits);
}
void initSendDataTimer(uint8_t sendcycle) {
static TimerHandle_t SendDataTimer = NULL;
if (SendDataTimer == NULL) {
SendDataTimer =
xTimerCreate("SendDataTimer", pdMS_TO_TICKS(sendcycle * 1000), pdTRUE,
(void *)0, setSendIRQ);
xTimerStart(SendDataTimer, 0);
} else {
xTimerChangePeriod(SendDataTimer, pdMS_TO_TICKS(sendcycle * 1000), 0);
}
}
// put data to send in RTos Queues used for transmit over channels Lora and SPI
void SendPayload(uint8_t port) {
@@ -86,8 +101,7 @@ void sendData() {
ESP_LOGI(TAG, "Sending libpax wifi count: %d", libpax_macs_wifi);
payload.addCount(libpax_macs_wifi, MAC_SNIFF_WIFI);
if (cfg.blescan) {
ESP_LOGI(TAG, "Sending libpax ble count: %d",
libpax_macs_ble);
ESP_LOGI(TAG, "Sending libpax ble count: %d", libpax_macs_ble);
payload.addCount(libpax_macs_ble, MAC_SNIFF_BLE);
}
#endif