* The wifi setup no longer stops after 5 minutes unless already paired (i.e. still onboarding)
* The mouth resets on wifisetup stop (clearing the scrolling home.mycroft.ai)
* Changed several ConfigurationManager.get() calls to ConfigurationManager.instance(). Exactly the same, but .instance() is clearer/preferred.
* Added a mycroft.util.stop_speaking() method. Not perfect, but works for now and can be replaced later when AudioManager is in place.
A forthcoming change to the pairing skill will utilize the stop_speaking method.
* Implementing changes to out-of-the-box experience, providing an "onboarding" process.
* Added a mycroft.api.is_paired() method
* Added mycroft.util.is_speaking and mycroft.util.wait_while_speaking() methods
* RESET now waits for the spoken notice to complete
* Stopped the "Checking for updates" and "Skills updated" prompts (commented out for now, probably will eliminate)
* Wifi setup filters out hidden ("x00") networks
* Visemes should keep up better if they get behind (will skip)
* Mimic is now searched for on the users path
* Onboarding process:
- wifi setup starts automatically
- User is walked through the process
- wake word and button pressing are ignored
- At end, a short tutorial is given
* Fixing pep8 whitespace errors... grrr
* Typo in onboarding changes prevented pairing for auto-starting
The command "pair my device" needed to be sent as an array, ["pair my device"]
* Added a mycroft.api.is_paired() method
* Added mycroft.util.is_speaking and mycroft.util.wait_while_speaking() methods
* RESET now waits for the spoken notice to complete
* Stopped the "Checking for updates" and "Skills updated" prompts (commented out for now, probably will eliminate)
* Wifi setup filters out hidden ("x00") networks
* Visemes should keep up better if they get behind (will skip)
* Mimic is now searched for on the users path
* Onboarding process:
- wifi setup starts automatically
- User is walked through the process
- wake word and button pressing are ignored
- At end, a short tutorial is given
Catching Keyboard interrupt is counter productive here as the previous
signal handler might be SIGINT which works by raising KeyboardInterrupt.
This has caused ctrl+c to remove the lock file but not stop the process.
Ignoring SIG_CHLD can be convenient but parts of the python standard
library relies on the behaviour of SIG_CHLD and will not work correctly
in this configuration.
I'm not 100% certain why this is needed, to be honest. Maybe something I don't get about Python and threads? This fixes double-announcements about connecting to the internet.