beacon monitor mode edits

This commit is contained in:
Klaus K Wilting 2018-07-24 21:48:11 +02:00
parent 4070d5231a
commit 9b145a95e4
3 changed files with 14 additions and 17 deletions

View File

@ -11,12 +11,12 @@
; ---> SELECT TARGET PLATFORM HERE! <---
[platformio]
env_default = generic
;env_default = generic
;env_default = heltec
;env_default = ttgov1
;env_default = ttgov2
;env_default = ttgov21
;env_default = ttgobeam
env_default = ttgobeam
;env_default = lopy
;env_default = lopy4
;env_default = fipy
@ -28,7 +28,8 @@ description = Paxcounter is a proof-of-concept ESP32 device for metering passeng
[common_env_data]
;platform_espressif32 = espressif32@1.0.2
platform_espressif32 = https://github.com/platformio/platform-espressif32.git#feature/stage
platform_espressif32 = espressif32@1.1.2
;platform_espressif32 = https://github.com/platformio/platform-espressif32.git#feature/stage
board_build.partitions = no_ota.csv
lib_deps_all =
lib_deps_display =

View File

@ -8,7 +8,7 @@
#include <esp32-hal-log.h>
// attn: increment version after modifications to configData_t truct!
#define PROGVERSION "1.3.95" // use max 10 chars here!
#define PROGVERSION "1.3.96" // use max 10 chars here!
#define PROGNAME "PAXCNT"
// std::set for unified array functions

View File

@ -12,15 +12,15 @@
// Local logging tag
static const char TAG[] = "wifi";
/* change for future Espressif v1.1.x
static wifi_country_t wifi_country = {WIFI_MY_COUNTRY, WIFI_CHANNEL_MIN,
WIFI_CHANNEL_MAX, 0,
WIFI_COUNTRY_POLICY_MANUAL};
*/
/*
static wifi_country_t wifi_country = {WIFI_MY_COUNTRY, WIFI_CHANNEL_MIN,
WIFI_CHANNEL_MAX,
WIFI_COUNTRY_POLICY_MANUAL};
*/
// globals
uint16_t salt;
@ -42,18 +42,15 @@ bool mac_add(uint8_t *paddr, int8_t rssi, bool sniff_type) {
char buff[16]; // temporary buffer for printf
bool added = false;
uint32_t addr2int, vendor2int,
tempmac; // temporary buffer for MAC and Vendor OUI
uint8_t beaconID; // beacon number in test monitor mode
uint16_t hashedmac; // temporary buffer for generated hash value
uint8_t beaconID = 0; // beacon number in test monitor mode
uint32_t addr2int, vendor2int; // temporary buffer for MAC and Vendor OUI
// only last 3 MAC Address bytes are used for MAC address anonymization
// but since it's uint32 we take 4 bytes to avoid 1st value to be 0
addr2int = ((uint32_t)paddr[2]) | ((uint32_t)paddr[3] << 8) |
((uint32_t)paddr[4] << 16) | ((uint32_t)paddr[5] << 24);
tempmac = addr2int; // temporary store mac for beacon check
#ifdef VENDORFILTER
vendor2int = ((uint32_t)paddr[2]) | ((uint32_t)paddr[1] << 8) |
((uint32_t)paddr[0] << 16);
@ -66,10 +63,9 @@ bool mac_add(uint8_t *paddr, int8_t rssi, bool sniff_type) {
// and increment counter on display
// https://en.wikipedia.org/wiki/MAC_Address_Anonymization
addr2int += (uint32_t)salt; // add 16-bit salt to pseudo MAC
snprintf(
buff, sizeof(buff), "%08X",
addr2int); // convert unsigned 32-bit salted MAC to 8 digit hex string
snprintf(buff, sizeof(buff), "%08X",
addr2int + (uint32_t)salt); // convert usigned 32-bit salted MAC to
// 8 digit hex string
hashedmac = rokkit(&buff[3], 5); // hash MAC last string value, use 5 chars
// to fit hash in uint16_t container
auto newmac = macs.insert(hashedmac); // add hashed MAC, if new unique
@ -97,7 +93,7 @@ bool mac_add(uint8_t *paddr, int8_t rssi, bool sniff_type) {
// in beacon monitor mode check if seen MAC is a known beacon
if (cfg.monitormode) {
beaconID = isBeacon(tempmac);
beaconID = isBeacon(addr2int);
if (beaconID) {
payload.reset();
payload.addAlarm(rssi, beaconID);