From 3109973fe239e60f4ec223ce95ef1609ea329e7c Mon Sep 17 00:00:00 2001 From: Fredrik Thulin Date: Wed, 18 May 2016 14:44:01 +0200 Subject: A little more robust file transfer --- projects/cli-test/cli-test.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'projects/cli-test/cli-test.c') diff --git a/projects/cli-test/cli-test.c b/projects/cli-test/cli-test.c index 86e11ce..6102d32 100644 --- a/projects/cli-test/cli-test.c +++ b/projects/cli-test/cli-test.c @@ -62,20 +62,24 @@ int cmd_filetransfer(struct cli_def *cli, const char *command, char *argv[], int cli_print(cli, "OK, write file size (4 bytes), data in 4096 byte chunks, CRC-32 (4 bytes)"); uart_receive_bytes(STM_UART_MGMT, (void *) &filesize, 4, 1000); - cli_print(cli, "Filesize %li", filesize); + cli_print(cli, "File size %li", filesize); while (filesize) { if (filesize < n) { n = filesize; } - uart_receive_bytes(STM_UART_MGMT, (void *) &buf, n, 1000); + if (uart_receive_bytes(STM_UART_MGMT, (void *) &buf, n, 1000) != HAL_OK) { + cli_print(cli, "Receive timed out"); + return CLI_ERROR; + } filesize -= n; my_crc = update_crc(my_crc, buf, n); counter++; uart_send_bytes(STM_UART_MGMT, (void *) &counter, 4); } + cli_print(cli, "Send CRC-32"); uart_receive_bytes(STM_UART_MGMT, (void *) &crc, 4, 1000); cli_print(cli, "CRC-32 %li", crc); if (crc == my_crc) { -- cgit v1.2.3