These hypothetical situations might be valid for an in-buffer flush:
- you have a modified serial bus with some id in the beginning of a package like mentioned before, you want to talk with the next ID and do a flush before you switch to the next ID just in case?!
- something on your modified serial bus is misbehaving and spews junk. You pull its reset and flush the in-buffer and give it another try after restart or just move on to another ID?!
- some synchronous communications only happen say once a second with a package over serial. You read one of them and it's bad/not useful from reading the first few bytes, so you flush the rest and wait for the next package, assuming nothing happens between two timed packages?!
- you have a talk only device on a modified bus and it keeps talking. Now you're done with it and pull its reset, flush the in-buffer, move on to another device that might or might not be talk only?!