diff options
| author | Pavel Vymetálek <pavel@vym.cz> | 2020-04-06 10:38:31 +0200 | 
|---|---|---|
| committer | Pavel Vymetálek <pavel@vym.cz> | 2020-04-06 10:38:31 +0200 | 
| commit | 9cc1f6571b3fa961a45ef7320b66e12524fc09de (patch) | |
| tree | fab2e3969e1b32fe9b8b3cd29f4938faba2ed6a8 | |
| parent | 3c8188b0070131a5b0eddb9a57dd54722d965b4c (diff) | |
| download | sercp-pc-9cc1f6571b3fa961a45ef7320b66e12524fc09de.tar.gz | |
Fixed sending and progressbar for files smaller than 256 bytes
| -rw-r--r-- | CHANGELOG | 4 | ||||
| -rw-r--r-- | TODO | 6 | ||||
| -rw-r--r-- | sercp.c | 15 | 
3 files changed, 17 insertions, 8 deletions
| @@ -1,5 +1,7 @@ +2020-04-06	v0.3.3 fixed progressbar for files smaller than 256 bytes +2020-04-05	v0.3.2 changes for __APPLE__ and BSD - still not work on aplle :(  2020-04-03	v0.3.1 fixed complicated interrupting by ctrl-c  2019-03-26	v0.3.0 add support for time/date handling  2019-03-16	v0.2.3 fixed serial port setup to work on Mac  2019-03-09	v0.2.2 remove unnecessary waiting after last block -2019-03-02	versions before this date was unreleased
\ No newline at end of file +2019-03-02	versions before this date was unreleased @@ -1,8 +1,10 @@ +2020-04-05 +	+ for short files < 256 bytes does not work the progressbar - underflow counter +	- listing of enumerated serial ports - linux, win, mac  2020-04-04  	- add test serial line - show CTS, RTS lines state  2019-09-03 -	- fix progressbar for files smaller than 16kB - +	+ fix progressbar for files smaller than 16kB  2019-03-16      + add support for handling time/date of files @@ -65,7 +65,7 @@  #define FALSE 0  #define true 1  #define TRUE 1 -const char* _version = "v0.3.2"; +const char* _version = "v0.3.3";  // SERIAL  FILE *tapout_fd = NULL;  int is_outfile = 0; @@ -515,7 +515,7 @@ void sercpSend(void) {  	uint8_t num_blocks = 0;  	ssize_t odeslano;  	uint32_t len_sent; -	uint16_t sent_size; +	uint16_t send_size;  	uint32_t overall_sent;  #ifdef _WIN32  	unsigned long ulNumBytes; @@ -595,14 +595,18 @@ void sercpSend(void) {  	while (file_len) {  		len = fread(buff, 1, 16384, tap_fd);			// read 16kiB from file  		p_buff = buff; -		sent_size = 256; +		if (len > 256) { +			send_size = 256; +		} else { +			send_size = len; +		}  		len_sent = len;  		while (len_sent) {  #ifdef _WIN32  			WriteFile(serial_fd, (void*)p_buff, sent_size, &ulNumBytes, NULL);  			odeslano = (size_t)ulNumBytes;  #else -			odeslano = write (serial_fd, (void*)p_buff, sent_size); +			odeslano = write (serial_fd, (void*)p_buff, send_size);  			if (tcdrain(serial_fd) == -1) {  				perror("tcdrain err2: ");  				return; @@ -612,7 +616,7 @@ void sercpSend(void) {  			overall_sent += odeslano;  			len_sent -= odeslano;  			if (len_sent < 256) { -				sent_size = len_sent; +				send_size = len_sent;  			}  			DoProgress(overall_sent, st.st_size, PROGRESS_PERCENT);  		} @@ -708,6 +712,7 @@ int OpenUart() {  	cfmakeraw(&newtio);  	cfsetspeed(&newtio, baud_rate);  #if defined (__APPLE__) || defined (BSD) +	// pro jabkace | CNEW_RTSCTS  	newtio.c_cflag = CS8 | CLOCAL | CREAD | CCTS_OFLOW | CRTS_IFLOW;		// CSTOPB - two stop bits NOT  #else  	newtio.c_cflag = CS8 | CLOCAL | CREAD | CRTSCTS; | 
