Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Implement independent ASHv2 protocol parsing (#606)
* Implement independent ASHv2 protocol parsing * Implement dynamic timeout computation * Use a semaphore instead of a lock to allow concurrent sending of un-ACKed frames * Replace current ASH+EZSP implementation * Increase max concurrency to match ASH * Allow setting the ACK mode as host or NCP * [TEST] Shut down the event loop with a separate exception * Re-implement a CLI tool to parse ASH frames from debug logs * Remove `host` handling of timeouts * Properly send ACKs in response to re-transmitted frames * Set maximum command concurrency to 1 * Get ASH TX and NAK handling working reliably * Fix RStackFrame `to_bytes()` * Bump flake8 * Optimize command logging for readability * Get unit tests passing again * Revert "[TEST] Shut down the event loop with a separate exception" This reverts commit d155888. * Fix startup reset unit test * Use strict `zip` * Use better parsing errors * Revert "Use strict `zip`" This reverts commit ce3da98. * Implement both sides of ASH to make testing easier * Only pop the pending frame future if the frame number was actually assigned * Move NCP ASH implementation into tests * Ensure tests pass with 3.8 * Properly handle cancel and substitute bytes * Add a unit test * Simulate NAK state during end-to-end testing * Ensure transports are resilient when it comes to framing * Introduce random loss testing as well * Add more tests * Add more tests * Cancel all pending frames when receiving a NAK * Move reserved bytes into an enum * Send a `CANCEL` byte before the reset frame * Improve logging * Fix unit tests * Ensure codebase works with 3.8 * Almost at 100% coverage * Unit test UART callbacks * Get coverage up to 100% * Make tests less flaky
- Loading branch information