No guarantees, but give this a try
//SYSTEM_THREAD(ENABLED)
SYSTEM_MODE(SEMI_AUTOMATIC)
STARTUP(prepare())
#define DEBOUNCE 250
volatile uint32_t msListening;
void ISR()
{
if (millis() - msListening < DEBOUNCE) return;
msListening = millis();
// start/stop listening depending on current state
if (!WiFi.listening())
{
Particle.disconnect();
WiFi.listen();
}
else
{
WiFi.listen(false);
Particle.connect();
}
}
void prepare()
{
pinMode(D7, OUTPUT);
pinMode(D6, INPUT_PULLUP);
attachInterrupt(D6, ISR, FALLING);
Particle.connect();
}
void setup() { }
void loop() { }