@chipmc, waitFor() and waitUntil() call Particle.process() while waiting. You can do the same thing with the while() using while(!Particle.connected()) Particle.process(); ![]()
Actually, thinking about this, I have a bit of a logical issue with: waitUntil(Particle.connected) or while(!Particle.connected()) Particle.process(); Is there anything to process while Particle is not connected?
Thanks,
Chip
@RWB,
Yep, It looks like EnableDPDM() fixed it.
Weird though, there is a DisableWatchdog() but there is no mention of watchdog in the link you send and there is no EnableWatchdog(). Any idea what the power.watchdog is?
Thanks,
Chip
Particle.process() (internally spark_process()) does not only attend to the cloud tasks but also allows for WiFi stuff to be done and also allows for more ยตC cycles while connecting.
Just a few things to look at ...
void spark_process(void)
{
// application thread will pump application messages
#if PLATFORM_THREADING
if (system_thread_get_state(NULL) && APPLICATION_THREAD_CURRENT())
{
ApplicationThread.process();
return;
}
#endif
// run the background processing loop, and specifically also pump cloud events
Spark_Idle_Events(true);
}
...
void Spark_Idle_Events(bool force_events/*=false*/)
{
HAL_Notify_WDT();
ON_EVENT_DELTA();
spark_loop_total_millis = 0;
process_isr_task_queue();
if (!SYSTEM_POWEROFF) {
#if Wiring_SetupButtonUX
system_handle_button_clicks(false /* isIsr */);
#endif
manage_serial_flasher();
manage_network_connection();
manage_smart_config();
manage_ip_config();
CLOUD_FN(manage_cloud_connection(force_events), (void)0);
}
else
{
system_pending_shutdown();
}
system_shutdown_if_needed();
}
