diff options
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | sercp.c | 34 |
2 files changed, 21 insertions, 15 deletions
@@ -20,4 +20,4 @@ debug: $(PROJECT).c gcc $(PROJECT).c -o $(PROJECT) -Wall -pedantic -MP -MD -std=gnu11 -Werror=format-security -g -O0 clean: - rm -f $(PROJECT) $(PROJECT).d $(PROJECT).o + rm -f $(PROJECT) $(PROJECT).d $(PROJECT).o $(PROJECT).res $(PROJECT)*.d $(PROJECT)*.exe @@ -106,7 +106,7 @@ typedef struct { FILEINFO fileinfo; void usage(void) { - printf ("sercp %s (c)2018-2019 Pavel Vymetálek <pavel@vym.cz>\n", _version); + printf ("sercp %s (c)2018-2019 Pavel Vymetalek <pavel@vym.cz>\n", _version); printf ("serial copy for transfering file to/from ZX Spectrum 128 AY's RS232\n"); printf ("Uses 1109bytes of fileinfo - blocks sums, filename, etc.\n"); printf ("Usage:\nsercp [-v] [-h] -d /dev/serial [-b baud_rate] [-w time] [-r] <filename>\n"); @@ -355,7 +355,6 @@ uint32_t GetOverallLen(FILEINFO *p_fi) { void sercpRecv(void) { int recv_phase = 0; // 0 - fileinfo, 1 - blok 16kiB, 2 - posledni blok uint8_t block_index = 0; - int result; uint16_t len; uint16_t length = 0; uint16_t expected_len = 0; @@ -363,12 +362,16 @@ void sercpRecv(void) { // uint8_t expected_sum; uint32_t overall_length = 0; // celkova delka souboru uint32_t recv_length = 0; // zatim prijatych dat ze souboru +#ifndef __WIN32 + int result; int err; - unsigned long ulNumBytes; - +#endif FILEINFO *p_fileinfo = &fileinfo; unsigned char *p_buff = buff; tapout_fd = NULL; +#ifdef __WIN32 + unsigned long ulNumBytes; +#endif memset (p_fileinfo, 0, sizeof(fileinfo)); while (is_continue) { @@ -396,9 +399,9 @@ void sercpRecv(void) { if (length == sizeof(fileinfo)) { memcpy((unsigned char*) p_fileinfo, buff, sizeof(fileinfo)); if (CheckFileInfo(p_fileinfo) == 0) { - printf("Prijato fileinfo\n"); +// printf("Fileinfo received\n"); overall_length = GetOverallLen(p_fileinfo); - printf("Nazev souboru: \"%s\" pocet bloku:%d, delka souboru: %u\n", p_fileinfo->fi_name, p_fileinfo->fi_numblocks, overall_length); + printf("File: \"%s\" number of blocks:%d, length of file: %u\n", p_fileinfo->fi_name, p_fileinfo->fi_numblocks, overall_length); recv_phase++; // priste se uz prijimaji bloky block_index = 0; // zacina se prvnim blokem p_buff = buff; // buffer na zacatek @@ -406,17 +409,17 @@ void sercpRecv(void) { expected_len = p_fileinfo->fi_blocks[block_index].block_len; tapout_fd = fopen ((char*)p_fileinfo->fi_name, "wb"); if (tapout_fd == NULL) { - err = errno; #ifdef __WIN32 printf ("can't open output file"); exit (EXIT_FAILURE); #else + err = errno; error (1, err, "can't open output file"); #endif } } else { - printf("Fileinfo neni v cajku. Koncim...\n"); + printf("Fileinfo corrupted. End...\n"); break; } break; @@ -428,7 +431,8 @@ void sercpRecv(void) { len = read (serial_fd, p_buff, sizeof(fileinfo)); #endif - printf("Nejaky bordel. Koncim...\n"); + printf("Received unknown data. End...\n"); + exit (EXIT_FAILURE); break; } // } @@ -463,7 +467,7 @@ void sercpRecv(void) { expected_len = p_fileinfo->fi_blocks[block_index].block_len; } if (expected_len == 0 || block_index == 255) { - printf ("\nKonec prenosu\n"); + printf ("\nTransfer successful\n"); recv_phase++; is_continue = 0; break; @@ -485,7 +489,6 @@ void sercpRecv(void) { fflush (tapout_fd); fclose (tapout_fd); } - printf ("\n\nulozeno...\n"); } /************************************************************************/ @@ -494,7 +497,7 @@ void sercpSend(void) { char *bname, *basec; // pinter na kopii nazvu souboru - basename char *shortfilename; size_t fn_len; - unsigned int err, no, len; + unsigned int no, len; //err, struct stat st; FILEINFO *p_fileinfo = &fileinfo; unsigned char *p_buff = buff; @@ -504,12 +507,15 @@ void sercpSend(void) { uint32_t len_sent; uint16_t sent_size; uint32_t overall_sent; +#ifdef __WIN32 unsigned long ulNumBytes; +#endif + no = stat(sercp_file, &st); if (no != 0) { - err = errno; +// err = errno; // error(1, err, "can't stat input file"); printf ("can't stat input file\n"); exit (EXIT_FAILURE); @@ -517,7 +523,7 @@ void sercpSend(void) { tap_fd = fopen(sercp_file, "rb"); if (tap_fd == NULL) { - err = errno; +// err = errno; // error(1, err, "can't open input file"); printf ("can't open input file\n"); exit (EXIT_FAILURE); |