diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2018-05-24 13:30:24 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2018-05-28 10:43:40 -0400 |
commit | 75f870994722cf2340d8bc39c0600ca592dadc7a (patch) | |
tree | 0448247983438b3786f7be1b890f86455ea09fe8 /src/command.c | |
parent | 528f9f76042a7d82a2108f4ea582c61481368ecf (diff) | |
download | kutter-75f870994722cf2340d8bc39c0600ca592dadc7a.tar.gz kutter-75f870994722cf2340d8bc39c0600ca592dadc7a.tar.xz kutter-75f870994722cf2340d8bc39c0600ca592dadc7a.zip |
command: Wait to send ack until after processing commands
Send the ack after processing commands - this gives the host code more
information on serial buffer utilization.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/command.c')
-rw-r--r-- | src/command.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/command.c b/src/command.c index 2df70d85..b0c7f882 100644 --- a/src/command.c +++ b/src/command.c @@ -257,7 +257,6 @@ command_find_block(uint8_t *buf, uint_fast8_t buf_len, uint_fast8_t *pop_count) goto nak; } next_sequence = ((msgseq + 1) & MESSAGE_SEQ_MASK) | MESSAGE_DEST; - command_sendf(&encode_acknak); return 1; need_more_data: @@ -308,13 +307,22 @@ command_dispatch(uint8_t *buf, uint_fast8_t msglen) } } +// Send an ack message to the host (notifying that it can send more data) +void +command_send_ack(void) +{ + command_sendf(&encode_acknak); +} + // Find a message block and then dispatch all the commands in it int_fast8_t command_find_and_dispatch(uint8_t *buf, uint_fast8_t buf_len , uint_fast8_t *pop_count) { int_fast8_t ret = command_find_block(buf, buf_len, pop_count); - if (ret > 0) + if (ret > 0) { command_dispatch(buf, *pop_count); + command_send_ack(); + } return ret; } |