Add to 11U68 11E68

Dependencies:   DirectoryList MODSERIAL mbed

Fork of ika_shouyu_poppoyaki by Tedd OKANO

Revision:
47:e7d395119a63
Parent:
44:568799eac6df
--- a/writing.cpp	Wed Dec 10 09:42:12 2014 +0000
+++ b/writing.cpp	Tue Jan 06 11:05:29 2015 +0000
@@ -5,26 +5,28 @@
 #include    "uu_coding.h"
 #include    "serial_utilities.h"
 #include    "isp.h"
-
-
-int     write_uuencoded_data( FILE *fp, target_param *tpp, int *total_size_p );
-int     write_binary_data( FILE *fp, int ram_size, int sector_size, unsigned int ram_start, int *total_size_p );
-int     get_flash_writing_size( int ram_size, unsigned int ram_start );
+#include    "_user_settings.h"
 
 
-int write_flash( FILE *fp, target_param *tpp, int *transferred_size_p )
+int     write_uuencoded_data( FILE *fp, target_param *tpp, int *total_size_p, int file_size );
+int     write_binary_data( FILE *fp, int ram_size, int sector_size, unsigned int ram_start, int *total_size_p, int file_size );
+int     get_flash_writing_size( int ram_size, unsigned int ram_start );
+void    show_progress( int total_size, int file_size );
+
+
+int write_flash( FILE *fp, target_param *tpp, int *transferred_size_p, int file_size )
 {
     if ( tpp->write_type == BINARY )
-        return ( write_binary_data(  fp, tpp->ram_size, tpp->sector_size, tpp->ram_start_address, transferred_size_p ) );
+        return ( write_binary_data(  fp, tpp->ram_size, tpp->sector_size, tpp->ram_start_address, transferred_size_p, file_size ) );
     else // UUENCODE
-        return ( write_uuencoded_data( fp, tpp, transferred_size_p ) );
+        return ( write_uuencoded_data( fp, tpp, transferred_size_p, file_size ) );
 }
 
 
 
 
 
-int write_uuencoded_data( FILE *fp, target_param *tpp, int *total_size_p )
+int write_uuencoded_data( FILE *fp, target_param *tpp, int *total_size_p, int file_size )
 {
 #define     BYTES_PER_LINE      45
 
@@ -39,7 +41,7 @@
     int     transfer_size;
 
     char    *b;
-    
+
     int ram_size            = tpp->ram_size;
     unsigned int ram_start  = tpp->ram_start_address;
 
@@ -94,7 +96,7 @@
 
         sector_number   = find_sector( total_size, tpp );
         sprintf( command_str, "P %d %d\r\n", sector_number, sector_number );
-        
+
         if ( try_and_check( command_str, "0" ) )
             return ( ERROR_AT_PREPARE_COMMAND );
 
@@ -103,6 +105,10 @@
             return ( ERROR_AT_COPY_COMMAND );
 
         total_size  += size;
+
+#ifdef ENABLE_PROGRESS_DISPLAY
+        show_progress( total_size, file_size );
+#endif
     }
 
     free( b );
@@ -112,7 +118,7 @@
 }
 
 
-int write_binary_data( FILE *fp, int ram_size, int sector_size, unsigned int ram_start, int *total_size_p )
+int write_binary_data( FILE *fp, int ram_size, int sector_size, unsigned int ram_start, int *total_size_p, int file_size )
 {
     char    command_str[ STR_BUFF_SIZE ];
     int     total_size  = 0;
@@ -151,6 +157,9 @@
         total_size  += size;
         //printf( "  total %d bytes transferred\r", total_size );
 
+#ifdef ENABLE_PROGRESS_DISPLAY
+        show_progress( total_size, file_size );
+#endif
     }
 
     free( b );
@@ -211,4 +220,3 @@
     else
         return ( 0 );
 }
-