Read operations
Read operations differ from write operations in the way they are started. The engine never explicitly requests to read a complete message. The protocol driver runtime assumes that a read operation should start when data becomes available on the line, the driver is idle, and a phrase is detected.
To the PDL program, the implicit initiation of a read operation looks the
same as the explicit initiation of the other operations: the driver moves to the
READING state and calls the hci_pd.read
procedure. The protocol driver runtime also
initiates a read operation as long as data is available in the input buffer.
To prevent an infinite loop of read operations, which fails to process an input, runtime enforces a requirement that an operation consume any input it receives. For example, using hci_pd_accept or hci_pd_ignore_input.