code sanitizations
This commit is contained in:
parent
957a813226
commit
337fc64602
21
src/button.cpp
Normal file
21
src/button.cpp
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#ifdef HAS_BUTTON
|
||||||
|
|
||||||
|
#include "globals.h"
|
||||||
|
|
||||||
|
// Local logging tag
|
||||||
|
static const char TAG[] = "main";
|
||||||
|
|
||||||
|
void IRAM_ATTR ButtonIRQ() { ButtonPressedIRQ++; }
|
||||||
|
|
||||||
|
void readButton() {
|
||||||
|
if (ButtonPressedIRQ) {
|
||||||
|
portENTER_CRITICAL(&timerMux);
|
||||||
|
ButtonPressedIRQ = 0;
|
||||||
|
portEXIT_CRITICAL(&timerMux);
|
||||||
|
ESP_LOGI(TAG, "Button pressed");
|
||||||
|
payload.reset();
|
||||||
|
payload.addButton(0x01);
|
||||||
|
senddata(BUTTONPORT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
8
src/button.h
Normal file
8
src/button.h
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#ifndef _BUTTON_H
|
||||||
|
#define _BUTTON_H
|
||||||
|
|
||||||
|
|
||||||
|
void IRAM_ATTR ButtonIRQ(void);
|
||||||
|
void readButton(void);
|
||||||
|
|
||||||
|
#endif
|
@ -170,4 +170,19 @@ void refreshtheDisplay() {
|
|||||||
#endif // HAS_LORA
|
#endif // HAS_LORA
|
||||||
} // refreshDisplay()
|
} // refreshDisplay()
|
||||||
|
|
||||||
|
void IRAM_ATTR DisplayIRQ() {
|
||||||
|
portENTER_CRITICAL_ISR(&timerMux);
|
||||||
|
DisplayTimerIRQ++;
|
||||||
|
portEXIT_CRITICAL_ISR(&timerMux);
|
||||||
|
}
|
||||||
|
|
||||||
|
void updateDisplay() {
|
||||||
|
if (DisplayTimerIRQ) {
|
||||||
|
portENTER_CRITICAL(&timerMux);
|
||||||
|
DisplayTimerIRQ = 0;
|
||||||
|
portEXIT_CRITICAL(&timerMux);
|
||||||
|
refreshtheDisplay();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endif // HAS_DISPLAY
|
#endif // HAS_DISPLAY
|
@ -8,5 +8,7 @@ extern uint8_t DisplayState;
|
|||||||
void init_display(const char *Productname, const char *Version);
|
void init_display(const char *Productname, const char *Version);
|
||||||
void refreshtheDisplay(void);
|
void refreshtheDisplay(void);
|
||||||
void DisplayKey(const uint8_t *key, uint8_t len, bool lsb);
|
void DisplayKey(const uint8_t *key, uint8_t len, bool lsb);
|
||||||
|
void updateDisplay(void);
|
||||||
|
void DisplayIRQ(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -44,7 +44,8 @@ extern uint16_t macs_total, macs_wifi, macs_ble, batt_voltage; // display values
|
|||||||
extern std::set<uint16_t> macs; // temp storage for MACs
|
extern std::set<uint16_t> macs; // temp storage for MACs
|
||||||
extern hw_timer_t *channelSwitch, *sendCycle;
|
extern hw_timer_t *channelSwitch, *sendCycle;
|
||||||
extern portMUX_TYPE timerMux;
|
extern portMUX_TYPE timerMux;
|
||||||
extern volatile int SendCycleTimerIRQ;
|
extern volatile int SendCycleTimerIRQ, HomeCycleIRQ, DisplayTimerIRQ,
|
||||||
|
ChannelTimerIRQ, ButtonPressedIRQ;
|
||||||
|
|
||||||
#ifdef HAS_GPS
|
#ifdef HAS_GPS
|
||||||
#include "gps.h"
|
#include "gps.h"
|
||||||
@ -60,6 +61,10 @@ extern volatile int SendCycleTimerIRQ;
|
|||||||
#include "display.h"
|
#include "display.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAS_BUTTON
|
||||||
|
#include "button.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef BLECOUNTER
|
#ifdef BLECOUNTER
|
||||||
#include "blescan.h"
|
#include "blescan.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -37,4 +37,19 @@ void doHomework() {
|
|||||||
reset_counters(); // clear macs container and reset all counters
|
reset_counters(); // clear macs container and reset all counters
|
||||||
reset_salt(); // get new salt for salting hashes
|
reset_salt(); // get new salt for salting hashes
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void checkHousekeeping() {
|
||||||
|
if (HomeCycleIRQ) {
|
||||||
|
portENTER_CRITICAL(&timerMux);
|
||||||
|
HomeCycleIRQ = 0;
|
||||||
|
portEXIT_CRITICAL(&timerMux);
|
||||||
|
doHomework();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void IRAM_ATTR homeCycleIRQ() {
|
||||||
|
portENTER_CRITICAL(&timerMux);
|
||||||
|
HomeCycleIRQ++;
|
||||||
|
portEXIT_CRITICAL(&timerMux);
|
||||||
}
|
}
|
@ -2,5 +2,7 @@
|
|||||||
#define _HOMECYCLE_H
|
#define _HOMECYCLE_H
|
||||||
|
|
||||||
void doHomework(void);
|
void doHomework(void);
|
||||||
|
void checkHousekeeping(void);
|
||||||
|
void homeCycleIRQ(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -16,7 +16,8 @@ static wifi_country_t wifi_country = {WIFI_MY_COUNTRY, WIFI_CHANNEL_MIN,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
static wifi_country_t wifi_country = {WIFI_MY_COUNTRY, WIFI_CHANNEL_MIN,
|
static wifi_country_t wifi_country = {WIFI_MY_COUNTRY, WIFI_CHANNEL_MIN,
|
||||||
WIFI_CHANNEL_MAX, WIFI_COUNTRY_POLICY_MANUAL};
|
WIFI_CHANNEL_MAX,
|
||||||
|
WIFI_COUNTRY_POLICY_MANUAL};
|
||||||
|
|
||||||
// globals
|
// globals
|
||||||
uint16_t salt;
|
uint16_t salt;
|
||||||
@ -138,3 +139,9 @@ IRAM_ATTR void wifi_sniffer_packet_handler(void *buff,
|
|||||||
mac_add(p, ppkt->rx_ctrl.rssi, MAC_SNIFF_WIFI);
|
mac_add(p, ppkt->rx_ctrl.rssi, MAC_SNIFF_WIFI);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IRAM_ATTR ChannelSwitchIRQ() {
|
||||||
|
portENTER_CRITICAL(&timerMux);
|
||||||
|
ChannelTimerIRQ++;
|
||||||
|
portEXIT_CRITICAL(&timerMux);
|
||||||
|
}
|
||||||
|
@ -31,5 +31,6 @@ void wifi_sniffer_init(void);
|
|||||||
void wifi_sniffer_set_channel(uint8_t channel);
|
void wifi_sniffer_set_channel(uint8_t channel);
|
||||||
void wifi_sniffer_packet_handler(void *buff, wifi_promiscuous_pkt_type_t type);
|
void wifi_sniffer_packet_handler(void *buff, wifi_promiscuous_pkt_type_t type);
|
||||||
bool mac_add(uint8_t *paddr, int8_t rssi, bool sniff_type);
|
bool mac_add(uint8_t *paddr, int8_t rssi, bool sniff_type);
|
||||||
|
void ChannelSwitchIRQ(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
62
src/main.cpp
62
src/main.cpp
@ -98,68 +98,6 @@ void lorawan_loop(void *pvParameters) {
|
|||||||
|
|
||||||
#endif // HAS_LORA
|
#endif // HAS_LORA
|
||||||
|
|
||||||
// Setup IRQ handler routines
|
|
||||||
// attn see https://github.com/espressif/arduino-esp32/issues/855
|
|
||||||
|
|
||||||
void IRAM_ATTR ChannelSwitchIRQ() {
|
|
||||||
portENTER_CRITICAL(&timerMux);
|
|
||||||
ChannelTimerIRQ++;
|
|
||||||
portEXIT_CRITICAL(&timerMux);
|
|
||||||
}
|
|
||||||
|
|
||||||
void IRAM_ATTR SendCycleIRQ() {
|
|
||||||
portENTER_CRITICAL(&timerMux);
|
|
||||||
SendCycleTimerIRQ++;
|
|
||||||
portEXIT_CRITICAL(&timerMux);
|
|
||||||
}
|
|
||||||
|
|
||||||
void IRAM_ATTR homeCycleIRQ() {
|
|
||||||
portENTER_CRITICAL(&timerMux);
|
|
||||||
HomeCycleIRQ++;
|
|
||||||
portEXIT_CRITICAL(&timerMux);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef HAS_DISPLAY
|
|
||||||
void IRAM_ATTR DisplayIRQ() {
|
|
||||||
portENTER_CRITICAL_ISR(&timerMux);
|
|
||||||
DisplayTimerIRQ++;
|
|
||||||
portEXIT_CRITICAL_ISR(&timerMux);
|
|
||||||
}
|
|
||||||
void updateDisplay() {
|
|
||||||
if (DisplayTimerIRQ) {
|
|
||||||
portENTER_CRITICAL(&timerMux);
|
|
||||||
DisplayTimerIRQ = 0;
|
|
||||||
portEXIT_CRITICAL(&timerMux);
|
|
||||||
refreshtheDisplay();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void checkHousekeeping() {
|
|
||||||
if (HomeCycleIRQ) {
|
|
||||||
portENTER_CRITICAL(&timerMux);
|
|
||||||
HomeCycleIRQ = 0;
|
|
||||||
portEXIT_CRITICAL(&timerMux);
|
|
||||||
doHomework();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef HAS_BUTTON
|
|
||||||
void IRAM_ATTR ButtonIRQ() { ButtonPressedIRQ++; }
|
|
||||||
|
|
||||||
void readButton() {
|
|
||||||
if (ButtonPressedIRQ) {
|
|
||||||
portENTER_CRITICAL(&timerMux);
|
|
||||||
ButtonPressedIRQ = 0;
|
|
||||||
portEXIT_CRITICAL(&timerMux);
|
|
||||||
ESP_LOGI(TAG, "Button pressed");
|
|
||||||
payload.reset();
|
|
||||||
payload.addButton(0x01);
|
|
||||||
senddata(BUTTONPORT);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Wifi channel rotation task
|
// Wifi channel rotation task
|
||||||
void wifi_channel_loop(void *pvParameters) {
|
void wifi_channel_loop(void *pvParameters) {
|
||||||
|
|
||||||
|
@ -65,4 +65,10 @@ void sendPayload() {
|
|||||||
#endif
|
#endif
|
||||||
senddata(COUNTERPORT);
|
senddata(COUNTERPORT);
|
||||||
}
|
}
|
||||||
} // sendpayload();
|
} // sendpayload();
|
||||||
|
|
||||||
|
void IRAM_ATTR SendCycleIRQ() {
|
||||||
|
portENTER_CRITICAL(&timerMux);
|
||||||
|
SendCycleTimerIRQ++;
|
||||||
|
portEXIT_CRITICAL(&timerMux);
|
||||||
|
}
|
@ -3,5 +3,6 @@
|
|||||||
|
|
||||||
void senddata(uint8_t port);
|
void senddata(uint8_t port);
|
||||||
void sendPayload(void);
|
void sendPayload(void);
|
||||||
|
void SendCycleIRQ(void);
|
||||||
|
|
||||||
#endif // _SENDDATA_H_
|
#endif // _SENDDATA_H_
|
Loading…
Reference in New Issue
Block a user