Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Queue system #3

Open
gyoder opened this issue Apr 5, 2024 · 3 comments
Open

Implement Queue system #3

gyoder opened this issue Apr 5, 2024 · 3 comments
Assignees
Labels
enhancement New feature or request long term

Comments

@gyoder
Copy link
Contributor

gyoder commented Apr 5, 2024

Will need to make the serial always check for new data and run the speech concurrently. Not quite sure how to approach this yet

@gyoder gyoder added enhancement New feature or request long term labels Apr 5, 2024
@TheQuinbox
Copy link
Contributor

Queueing is already handled for us. Last night I added #!S to stop the speech if it was currently speaking. Plan is to add an interrupt parameter to CalcVox's speak method that sends it if true. Currently, if you send speech back-to-back, it does queue up.

@gyoder
Copy link
Contributor Author

gyoder commented Apr 5, 2024

The issue is that serial does not interrupt. #!S will only run once the serial queue has been exhausted. Espeak blocks while it is talking so some concurrency and custom queueing will need to be implemented to process whether or not the item that was sent is a speech call or system call. @TheQuinbox

@TheQuinbox
Copy link
Contributor

Oh blerg, you're right, I forgot about that incredibly annoying limitation! Honestly my thought is to approach an advisor about this, as I too have no idea how multithreading works on Arduino. I'm a Windows dev, not an Arduino one ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request long term
Projects
None yet
Development

No branches or pull requests

2 participants